cp.test revision dd282026714cb3bf4a1b98f0ecd360c980bc65b0
1dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley#!/bin/bash
2dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
3dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley[ -f testing.sh ] && . testing.sh
4dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
5dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley# Create test file
6dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleydd if=/dev/urandom of=random bs=64 count=1 > /dev/null
7dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
8dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley#testing "name" "command" "result" "infile" "stdin"
9dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
10dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp not enough arguments [fail]" "cp one 2>/dev/null || echo yes" \
11dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
12dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -missing source [fail]" "cp missing two 2>/dev/null || echo yes" \
13dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
14dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file->file" "cp random two && cmp random two && echo yes" \
15dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
16dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm two
17dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
18dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleymkdir two
19dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file->dir" "cp random two && cmp random two/random && echo yes" \
20dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
21dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm two/random
22dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file->dir/file" \
23dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp random two/random && cmp random two/random && echo yes" \
24dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
25dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -r dir->missing" \
26dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp -r two three && cmp random three/random && echo yes" \
27dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" "" 
28dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch walrus
29dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -r dir->file [fail]" \
30dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp -r two walrus 2>/dev/null || echo yes" "yes\n" "" ""
31dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch two/three
32dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -r dir hits file." \
33dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp -r three two 2>/dev/null || echo yes" "yes\n" "" ""
34dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm -rf two three walrus
35dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
36dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch two
37dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleychmod 000 two
38dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file->inaccessable [fail]" \
39dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp random two 2>/dev/null || echo yes" "yes\n" "" ""
40dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm -f two
41dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
42dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch two
43dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleychmod 000 two
44dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -f file->inaccessable" \
45dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp -f random two && cmp random two && echo yes" "yes\n" "" ""
46dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleymkdir sub
47dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleychmod 000 sub
48dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file->inaccessable_dir [fail]" \
49dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp random sub 2>/dev/null || echo yes" "yes\n" "" ""
50dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm two
51dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrmdir sub
52dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
53dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleymkdir dir
54dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch file
55dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -rf dir file [fail]" "cp -rf dir file 2>/dev/null || echo yes" \
56dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
57dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm -rf dir file
58dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
59dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytouch one two
60dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file1 file2 missing [fail]" \
61dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp one two missing 2>/dev/null || echo yes" "yes\n" "" ""
62dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleymkdir dir
63dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp dir file missing [fail]" \
64dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
65dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp -rf dir file missing [fail]" \
66dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
67dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file1 file2 file [fail]" \
68dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp random one two 2>/dev/null || echo yes" "yes\n" "" ""
69dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleytesting "cp file1 file2 dir" \
70dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"cp random one dir && cmp random dir/random && cmp one dir/one && echo yes" \
71dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley	"yes\n" "" ""
72dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm one two random
73dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landleyrm -rf dir
74dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley
75dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley# cp file1 file2 dir
76dd282026714cb3bf4a1b98f0ecd360c980bc65b0Rob Landley# cp file1 missing file2 -> dir
77