source [file dirname [info script]]/testing.tcl needs constraint jim needs cmd file needs cmd exec needs cmd parray tclcompat constraint expr unix {$tcl_platform(platform) eq "unix"} 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 test file-tempfile-1.1 {file tempfile - simple} { set f [file tempfile] set ret [file exists $f] file delete $f set ret } {1} # Note that Windows doesn't provide much control over the tempfile. # Only the first 3 chars of the pattern are used, so ignore these tests on that platform test file-tempfile-1.2 {file tempfile with pattern} unix { set f [file tempfile /tmp/file-tempfile.XXXXXX] set ret [file exists $f] file delete $f set ret } {1} test file-tempfile-1.3 {file tempfile with invalid path} -constraints unix -body { set f [file tempfile /doesnotexist/file-tempfile.XXXXXX] puts $f set ret [file exists $f] file delete $f set $f } -returnCodes error -match glob -result {/doesnotexist/file-tempfile.*} file delete tempfile file delete --force tempdir testreport