diff options
Diffstat (limited to 'tests/filecopy.test')
-rw-r--r-- | tests/filecopy.test | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/filecopy.test b/tests/filecopy.test new file mode 100644 index 0000000..fea3d33 --- /dev/null +++ b/tests/filecopy.test @@ -0,0 +1,74 @@ +source [file dirname [info script]]/testing.tcl + +needs constraint jim +needs cmd file +needs cmd exec +needs cmd parray tclcompat + +cd [file dirname [info script]] + +file mkdir tempdir + +test filecopy-1.1 "Simple case" { + file copy testio.in tempfile +} {} + +test filecopy-1.2 "Target exists" { + list [catch {file copy testio.in tempfile} msg] $msg +} {1 {error copying "testio.in" to "tempfile": file already exists}} + +test filecopy-1.3 "Source doesn't exist" { + list [catch {file copy missing tempfile} msg] $msg +} {1 {missing: No such file or directory}} + +test filecopy-1.4 "Can't write to target" { + list [catch {file copy testio.in tempdir} msg] $msg +} {1 {error copying "testio.in" to "tempdir": file already exists}} + +test filecopy-1.5 "Source doesn't exist and can't write to target" { + list [catch {file copy missing tempdir} msg] $msg +} {1 {missing: No such file or directory}} + +test filecopy-1.6 "Wrong args" { + list [catch {file copy onearg} msg] $msg +} {1 {wrong # args: should be "file copy ?-force? source dest"}} + +test filecopy-1.7 "Wrong args" { + list [catch {file copy too many args here} msg] $msg +} {1 {wrong # args: should be "file copy ?-force? source dest"}} + +test filecopy-1.8 "Wrong args" { + list [catch {file copy -blah testio.in tempfile} msg] $msg +} {1 {bad option "-blah": should be -force}} + +file delete tempfile + +test filecopy-2.1 "Simple case (-force)" { + file copy -force testio.in tempfile +} {} + +test filecopy-2.2 "Target exists (-force)" { + file copy -force testio.in tempfile +} {} + +test filecopy-2.3 "Source doesn't exist (-force)" { + list [catch {file copy -force missing tempfile} msg] $msg +} {1 {missing: No such file or directory}} + +test filecopy-2.4 "Can't write to target (-force)" -body { + file copy -force testio.in tempdir +} -returnCodes error -match glob -result {tempdir: *} + +test filecopy-2.5 "Source doesn't exist and can't write to target (-force)" { + list [catch {file copy -force missing tempdir} msg] $msg +} {1 {missing: No such file or directory}} + +test filecopy-2.6 "Source and target identical (-force)" { + file copy -force tempfile tempfile + file size tempfile +} 16 + +file delete tempfile +file delete --force tempdir + +testreport |