📄 fcmd.test
字号:
test fCmd-14.3 {copyfile: stat failing on source} { catch {file delete -force -- tfa1 tfa2} set r1 [catch {file copy tfa1 tfa2}] expr $r1 && ![file exists tfa1] && ![file exists tfa2]} {1}test fCmd-14.4 {copyfile: error copying file to directory } { catch {file delete -force -- tfa tfad} set s1 [createfile tfa ] file mkdir tfad file mkdir tfad/tfa set r1 [catch {file copy tfa tfad}] set r2 [checkcontent tfa $s1] set r3 [file isdir tfad] set r4 [file isdir tfad/tfa] set result [expr $r1 && $r2 && $r3 && $r4 ] file delete -force tfa tfad set result} {1} test fCmd-14.5 {copyfile: error copying directory to file } { catch {file delete -force -- tfa tfad} file mkdir tfa file mkdir tfad set s [createfile tfad/tfa] set r1 [catch {file copy tfa tfad}] set r2 [checkcontent tfad/tfa $s] set r3 [file isdir tfad] set r4 [file isdir tfa] set result [expr $r1 && $r2 && $r3 && $r4 ] file delete -force tfa tfad set result} {1}test fCmd-14.6 {copyfile: copy file succeeding } { catch {file delete -force -- tfa tfa2} set s [createfile tfa] file copy tfa tfa2 set result [expr [checkcontent tfa $s] && [checkcontent tfa2 $s]] file delete tfa tfa2 set result} {1}test fCmd-14.7 {copyfile: copy directory succeeding } { catch {file delete -force -- tfa tfa2} file mkdir tfa set s [createfile tfa/file] file copy tfa tfa2 set result [expr [checkcontent tfa/file $s] && [checkcontent tfa2/file $s]] file delete -force tfa tfa2 set result} {1}test fCmd-14.8 {copyfile: copy directory failing } {unixOnly} { catch {file delete -force -- tfa} file mkdir tfa/dir/a/b/c exec chmod 000 tfa/dir set r1 [catch {file copy tfa tfa2}] exec chmod 777 tfa/dir set result $r1 file delete -force tfa tfa2 set result} {1}## Coverage tests for TclMkdirCmd()#test fCmd-15.1 {TclMakeDirsCmd: target filename translation failing} { global env set temp $env(HOME) unset env(HOME) set result [catch {file mkdir ~/tfa}] set env(HOME) $temp set result} {1}## Can Tcl_SplitPath return argc == 0? If so them we need a# test for that code.#test fCmd-15.2 {TclMakeDirsCmd - one directory } { catch {file delete -force -- tfa} file mkdir tfa set result [file isdirectory tfa] file delete tfa set result} {1}test fCmd-15.3 {TclMakeDirsCmd: - two directories } { catch {file delete -force -- tfa1 tfa2} file mkdir tfa1 tfa2 set result [expr [file isdirectory tfa1] && [file isdirectory tfa2]] file delete tfa1 tfa2 set result} {1}test fCmd-15.4 {TclMakeDirsCmd - stat failing } {unixOnly} { catch {file delete -force -- tfa} file mkdir tfa createfile tfa/file exec chmod 000 tfa set result [catch {file mkdir tfa/file}] exec chmod 777 tfa file delete -force tfa set result} {1}test fCmd-15.5 {TclMakeDirsCmd: - making a directory several levels deep } { catch {file delete -force -- tfa} file mkdir tfa/a/b/c set result [file isdir tfa/a/b/c] file delete -force tfa set result} {1} test fCmd-15.6 {TclMakeDirsCmd: - trying to overwrite a file } { catch {file delete -force -- tfa} set s [createfile tfa] set r1 [catch {file mkdir tfa}] set r2 [file isdir tfa] set r3 [file exists tfa] set result [expr $r1 && !$r2 && $r3 && [checkcontent tfa $s]] file delete tfa set result} {1}test fCmd-15.7 {TclMakeDirsCmd - making several directories } { catch {file delete -force -- tfa1 tfa2} file mkdir tfa1 tfa2/a/b/c set result [expr [file isdir tfa1] && [file isdir tfa2/a/b/c]] file delete -force tfa1 tfa2 set result} {1}test fCmd-15.8 {TclFileMakeDirsCmd: trying to create an existing dir} { file mkdir tfa file mkdir tfa set result [file isdir tfa] file delete tfa set result} {1}# Coverage tests for TclDeleteFilesCommand()test fCmd-16.1 { test the -- argument } { catch {file delete -force -- tfa} createfile tfa file delete -- tfa file exists tfa} {0}test fCmd-16.2 { test the -force and -- arguments } { catch {file delete -force -- tfa} createfile tfa file delete -force -- tfa file exists tfa} {0}test fCmd-16.3 { test bad option } { catch {file delete -force -- tfa} createfile tfa set result [catch {file delete -dog tfa}] file delete tfa set result} {1}test fCmd-16.4 { test not enough args } { catch {file delete}} {1}test fCmd-16.5 { test not enough args with options } { catch {file delete --}} {1}test fCmd-16.6 {delete: source filename translation failing} { global env set temp $env(HOME) unset env(HOME) set result [catch {file delete ~/tfa}] set env(HOME) $temp set result} {1}test fCmd-16.7 {remove a non-empty directory without -force } { catch {file delete -force -- tfa} file mkdir tfa createfile tfa/a set result [catch {file delete tfa }] file delete -force tfa set result} {1}test fCmd-16.8 {remove a normal file } { catch {file delete -force -- tfa} file mkdir tfa createfile tfa/a set result [catch {file delete tfa }] file delete -force tfa set result} {1}test fCmd-16.9 {error while deleting file } {unixOnly} { catch {file delete -force -- tfa} file mkdir tfa createfile tfa/a exec chmod 555 tfa set result [catch {file delete tfa/a }] ####### ####### If any directory in a tree that is being removed does not ####### have write permission, the process will fail! ####### This is also the case with "rm -rf" ####### exec chmod 777 tfa file delete -force tfa set result} {1}test fCmd-16.10 {deleting multiple files } { catch {file delete -force -- tfa1 tfa2} createfile tfa1 createfile tfa2 file delete tfa1 tfa2 expr ![file exists tfa1] && ![file exists tfa2]} {1}test fCmd-16.11 { TclFileDeleteCmd: removing a nonexistant file} { catch {file delete -force -- tfa} file delete tfa set result 1} {1}# More coverage tests for mkpath() test fCmd-17.1 {mkdir stat failing on target but not ENOENT } {unixOnly} { catch {file delete -force -- tfa1} file mkdir tfa1 exec chmod 555 tfa1 set result [catch {file mkdir tfa1/tfa2}] exec chmod 777 tfa1 file delete -force tfa1 set result} {1}test fCmd-17.2 {mkdir several levels deep - relative } { catch {file delete -force -- tfa} file mkdir tfa/a/b set result [file isdir tfa/a/b ] file delete tfa/a/b tfa/a tfa set result} {1}test fCmd-17.3 {mkdir several levels deep - absolute } { catch {file delete -force -- tfa} set f [file join [pwd] tfa a ] file mkdir $f set result [file isdir $f ] file delete $f [file join [pwd] tfa] set result} {1}## Functionality tests for TclFileRenameCmd()#test fCmd-18.1 {TclFileRenameCmd: rename (first form) in the same directory} { catch {file delete -force -- tfad} file mkdir tfad/dir cd tfad/dir set s [createfile foo ] file rename foo bar file rename bar ./foo file rename ./foo bar file rename ./bar ./foo file rename foo ../dir/bar file rename ../dir/bar ./foo file rename ../../tfad/dir/foo ../../tfad/dir/bar file rename [file join [pwd] bar] foo file rename foo [file join [pwd] bar] set result [expr [checkcontent bar $s] && ![file exists foo]] cd ../.. file delete -force tfad set result} {1}test fCmd-18.2 {TclFileRenameCmd: single dir to nonexistant } { catch {file delete -force -- tfa1 tfa2} file mkdir tfa1 file rename tfa1 tfa2 set result [expr [file exists tfa2] && ![file exists tfa1]] file delete tfa2 set result} {1}test fCmd-18.3 {TclFileRenameCmd: mixed dirs and files into directory } { catch {file delete -force -- tfa1 tfad1 tfad2} set s [createfile tfa1 ] file mkdir tfad1 tfad2 file rename tfa1 tfad1 tfad2 set r1 [checkcontent tfad2/tfa1 $s] set r2 [file isdir tfad2/tfad1] set result [expr $r1 && $r2 && ![file exists tfa1] && ![file exists tfad1]] file delete tfad2/tfa1 file delete -force tfad2 set result} {1}test fCmd-18.4 {TclFileRenameCmd: attempt to replace non-dir with dir } { catch {file delete -force -- tfa tfad} set s [createfile tfa ] file mkdir tfad set r1 [catch {file rename tfad tfa}] set r2 [checkcontent tfa $s] set r3 [file isdir tfad] set result [expr $r1 && $r2 && $r3 ] file delete tfa tfad set result} {1}test fCmd-18.5 {TclFileRenameCmd: attempt to replace dir with non-dir } { catch {file delete -force -- tfa tfad} set s [createfile tfa ] file mkdir tfad/tfa set r1 [catch {file rename tfa tfad}] set r2 [checkcontent tfa $s] set r3 [file isdir tfad/tfa] set result [expr $r1 && $r2 && $r3 ] file delete -force tfa tfad set result} {1}## On Windows there is no easy way to determine if two files are the same#test fCmd-18.6 {TclFileRenameCmd: rename a file to itself} {macOrUnix} { catch {file delete -force -- tfa} set s [createfile tfa] set r1 [catch {file rename tfa tfa}] set result [expr $r1 && [checkcontent tfa $s]] file delete tfa set result} {1}test fCmd-18.7 {TclFileRenameCmd: rename dir on top of another empty dir w/o -force} { catch {file delete -force -- tfa tfad} file mkdir tfa tfad/tfa set r1 [catch {file rename tfa tfad}] set result [expr $r1 && [file isdir tfa]] file delete -force tfa tfad set result} {1}test fCmd-18.8 {TclFileRenameCmd: rename dir on top of another empty dir w/ -force} { catch {file delete -force -- tfa tfad} file mkdir tfa tfad/tfa file rename -force tfa tfad set result [expr ![file isdir tfa]] file delete -force tfad set result} {1}test fCmd-18.9 {TclFileRenameCmd: rename dir on top of a non-empty dir w/o -force} { catch {file delete -force -- tfa tfad} file mkdir tfa tfad/tfa/file set r1 [catch {file rename tfa tfad}] set result [expr $r1 && [file isdir tfa] && [file isdir tfad/tfa/file]] file delete -force tfa tfad set result} {1}test fCmd-18.10 {TclFileRenameCmd: rename dir on top of a non-empty dir w/ -force} { catch {file delete -force -- tfa tfad} file mkdir tfa tfad/tfa/file set r1 [catch {file rename -force tfa tfad}] set result [expr $r1 && [file isdir tfa] && [file isdir tfad/tfa/file]] file delete -force tfa tfad set result} {1}test fCmd-18.11 {TclFileRenameCmd: rename a non-existant file} { catch {file delete -force -- tfa1} set r1 [catch {file rename tfa1 tfa2}] set result [expr $r1 && ![file exists tfa1] && ![file exists tfa2]]} {1}test fCmd-18.12 {TclFileRenameCmd : rename a symbolic link to file} {unixOnly} { catch {file delete -force -- tfa1 tfa2 tfa3} set s [createfile tfa1] exec ln -s tfa1 tfa2 file rename tfa2 tfa3 set t [file type tfa3] set result [expr { $t == "link" }] file delete tfa1 tfa3 set result} {1}test fCmd-18.13 {TclFileRenameCmd : rename a symbolic link to dir} {unixOnly} { catch {file delete -force -- tfa1 tfa2 tfa3} file mkdir tfa1 exec ln -s tfa1 tfa2 file rename tfa2 tfa3 set t [file type tfa3] set result [expr { $t == "link" }] file delete tfa1 tfa3 set result} {1}test fCmd-18.14 {TclFileRenameCmd : rename a path with sym link} {unixOnly} { catch {file delete -force -- tfa1 tfa2 tfa3} file mkdir tfa1/a/b/c/d file mkdir tfa2 set f [file join [pwd] tfa1/a/b] set f2 [file join [pwd] {tfa2/b alias}] exec ln -s $f $f2 file rename {tfa2/b alias/c} tfa3 set r1 [file isdir tfa3] set r2 [file exists tfa1/a/b/c] set result [expr $r1 && !$r2]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -