summaryrefslogtreecommitdiff
path: root/tests/filecopy.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/filecopy.test')
-rw-r--r--tests/filecopy.test74
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