diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:47:21 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:47:21 (GMT) |
commit | 5514e37335c012cc70f5b9aee3cedfe3d57f583f (patch) | |
tree | 4ba7d8aad13735e52f59bdce7ca5ba3151ebd7e3 /tcl8.6/tests/fileName.test | |
parent | 768f87f613cc9789fcf8073018fa02178c8c91df (diff) | |
download | blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.zip blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.tar.gz blt-5514e37335c012cc70f5b9aee3cedfe3d57f583f.tar.bz2 |
undo subtree
Diffstat (limited to 'tcl8.6/tests/fileName.test')
-rw-r--r-- | tcl8.6/tests/fileName.test | 1633 |
1 files changed, 0 insertions, 1633 deletions
diff --git a/tcl8.6/tests/fileName.test b/tcl8.6/tests/fileName.test deleted file mode 100644 index 387d844..0000000 --- a/tcl8.6/tests/fileName.test +++ /dev/null @@ -1,1633 +0,0 @@ -# This file tests the filename manipulation routines. -# -# This file contains a collection of tests for one or more of the Tcl built-in -# commands. Sourcing this file into Tcl runs the tests and generates output -# for errors. No output means no errors were found. -# -# Copyright (c) 1995-1996 Sun Microsystems, Inc. -# Copyright (c) 1999 by Scriptics Corporation. -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. - -if {"::tcltest" ni [namespace children]} { - package require tcltest 2 - namespace import -force ::tcltest::* -} - -::tcltest::loadTestedCommands -catch [list package require -exact Tcltest [info patchlevel]] - -testConstraint testsetplatform [llength [info commands testsetplatform]] -testConstraint testtranslatefilename [llength [info commands testtranslatefilename]] -testConstraint linkDirectory 1 -testConstraint symbolicLinkFile 1 -if {[testConstraint win]} { - if {[string index $tcl_platform(osVersion) 0] < 5 \ - || [lindex [file system [temporaryDirectory]] 1] ne "NTFS"} { - testConstraint linkDirectory 0 - } - testConstraint symbolicLinkFile 0 - testConstraint sharedCdrive [expr {![catch {cd //[info hostname]/c}]}] -} -# This match compares the first two words of the result. If the wanted result -# is "equal", then this is successful if the words are equal. If the wanted -# result is "not equal", then this is successful if the words are different. -customMatch compareWords {apply {{a b} { - lassign $b w1 w2 - expr {$a eq "equal" ? $w1 eq $w2 : $w1 ne $w2} -}}} - -proc touch filename {catch {close [open $filename w]}} -global env -if {[testConstraint testsetplatform]} { - set platform [testgetplatform] -} - -# Caution: when using 'testsetplatform' to test different file name platform -# descriptions in this file, one must be very careful not to combine such -# platform manipulation with commands like 'cd', 'pwd'. That is because the -# latter commands operate on the real filesystem but will potentially have -# their logic routed through the wrong generic code paths if we've used -# 'testsetplatform'. This can lead to serious problems, even crashes. -test filename-1.1 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype / -} absolute -test filename-1.2 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype /foo -} absolute -test filename-1.3 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype foo -} relative -test filename-1.4 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype c:/foo -} relative -test filename-1.5 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype ~ -} absolute -test filename-1.6 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype ~/foo -} absolute -test filename-1.7 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype ~foo -} absolute -test filename-1.8 {Tcl_GetPathType: unix} {testsetplatform} { - testsetplatform unix - file pathtype ./~foo -} relative - -test filename-3.1 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype / -} volumerelative -test filename-3.2 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype \\ -} volumerelative -test filename-3.3 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype /foo -} volumerelative -test filename-3.4 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype \\foo -} volumerelative -test filename-3.5 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c:/ -} absolute -test filename-3.6 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c:\\ -} absolute -test filename-3.7 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c:/foo -} absolute -test filename-3.8 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c:\\foo -} absolute -test filename-3.9 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c: -} volumerelative -test filename-3.10 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype c:foo -} volumerelative -test filename-3.11 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype foo -} relative -test filename-3.12 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype //foo/bar -} absolute -test filename-3.13 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype ~foo -} absolute -test filename-3.14 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype ~ -} absolute -test filename-3.15 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype ~/foo -} absolute -test filename-3.16 {Tcl_GetPathType: windows} {testsetplatform} { - testsetplatform windows - file pathtype ./~foo -} relative - -test filename-4.1 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split / -} {/} -test filename-4.2 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split /foo -} {/ foo} -test filename-4.3 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split /foo/bar -} {/ foo bar} -test filename-4.4 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split /foo/bar/baz -} {/ foo bar baz} -test filename-4.5 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split foo/bar -} {foo bar} -test filename-4.6 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ./foo/bar -} {. foo bar} -test filename-4.7 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split /foo/../././foo/bar -} {/ foo .. . . foo bar} -test filename-4.8 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ../foo/bar -} {.. foo bar} -test filename-4.9 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split {} -} {} -test filename-4.10 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split . -} {.} -test filename-4.11 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ../ -} {..} -test filename-4.12 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ../.. -} {.. ..} -test filename-4.13 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split //foo -} "/ foo" -test filename-4.14 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split foo//bar -} {foo bar} -test filename-4.15 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ~foo -} {~foo} -test filename-4.16 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ~foo/~bar -} {~foo ./~bar} -test filename-4.17 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split ~foo/~bar/~baz -} {~foo ./~bar ./~baz} -test filename-4.18 {Tcl_SplitPath: unix} {testsetplatform} { - testsetplatform unix - file split foo/bar~/baz -} {foo bar~ baz} -if {[testConstraint testsetplatform]} { - testsetplatform $platform -} -test filename-4.19 {Tcl_SplitPath} -setup { - set oldDir [pwd] - cd [temporaryDirectory] -} -body { - file mkdir tildetmp - set nastydir [file join tildetmp ./~tilde] - file mkdir $nastydir - set norm [file normalize $nastydir] - cd tildetmp - cd ./~tilde - glob -nocomplain * - set idx [string first tildetmp $norm] - set norm [string range $norm $idx end] - # fix path away so all platforms are the same - regsub {(.*):$} $norm {\1} norm - regsub -all ":" $norm "/" norm - # make sure we can delete the directory we created - cd $oldDir - file delete -force $nastydir - return $norm -} -cleanup { - cd $oldDir - catch {file delete -force [file join [temporaryDirectory] tildetmp]} -} -result {tildetmp/~tilde} - -test filename-6.1 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split / -} {/} -test filename-6.2 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /foo -} {/ foo} -test filename-6.3 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /foo/bar -} {/ foo bar} -test filename-6.4 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /foo/bar/baz -} {/ foo bar baz} -test filename-6.5 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split foo/bar -} {foo bar} -test filename-6.6 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ./foo/bar -} {. foo bar} -test filename-6.7 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /foo/../././foo/bar -} {/ foo .. . . foo bar} -test filename-6.8 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ../foo/bar -} {.. foo bar} -test filename-6.9 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split {} -} {} -test filename-6.10 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split . -} {.} -test filename-6.11 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ../ -} {..} -test filename-6.12 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ../.. -} {.. ..} -test filename-6.13 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split //foo -} {/ foo} -test filename-6.14 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split foo//bar -} {foo bar} -test filename-6.15 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /\\/foo//bar -} {//foo/bar} -test filename-6.16 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /\\/foo//bar -} {//foo/bar} -test filename-6.17 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split /\\/foo//bar -} {//foo/bar} -test filename-6.18 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split \\\\foo\\bar -} {//foo/bar} -test filename-6.19 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split \\\\foo\\bar/baz -} {//foo/bar baz} -test filename-6.20 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:/foo -} {c:/ foo} -test filename-6.21 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:foo -} {c: foo} -test filename-6.22 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c: -} {c:} -test filename-6.23 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:\\ -} {c:/} -test filename-6.24 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:/ -} {c:/} -test filename-6.25 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:/./.. -} {c:/ . ..} -test filename-6.26 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ~foo -} {~foo} -test filename-6.27 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ~foo/~bar -} {~foo ./~bar} -test filename-6.28 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split ~foo/~bar/~baz -} {~foo ./~bar ./~baz} -test filename-6.29 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split foo/bar~/baz -} {foo bar~ baz} -test filename-6.30 {Tcl_SplitPath: win} {testsetplatform} { - testsetplatform win - file split c:~foo -} {c: ./~foo} - -test filename-7.1 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join / a -} {/a} -test filename-7.2 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join a b -} {a/b} -test filename-7.3 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join /a c /b d -} {/b/d} -test filename-7.4 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join / -} {/} -test filename-7.5 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join a -} {a} -test filename-7.6 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join {} -} {} -test filename-7.7 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join /a/ b -} {/a/b} -test filename-7.8 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join /a// b -} {/a/b} -test filename-7.9 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join /a/./../. b -} {/a/./.././b} -test filename-7.10 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join ~ a -} {~/a} -test filename-7.11 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join ~a ~b -} {~b} -test filename-7.12 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join ./~a b -} {./~a/b} -test filename-7.13 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join ./~a ~b -} {~b} -test filename-7.14 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join ./~a ./~b -} {./~a/~b} -test filename-7.15 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join a . b -} {a/./b} -test filename-7.16 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join a . ./~b -} {a/./~b} -test filename-7.17 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join //a b -} "/a/b" -test filename-7.18 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - file join /// a b -} "/a/b" - -test filename-9.1 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join a b -} {a/b} -test filename-9.2 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join /a b -} {/a/b} -test filename-9.3 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join /a /b -} {/b} -test filename-9.4 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join c: foo -} {c:foo} -test filename-9.5 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join c:/ foo -} {c:/foo} -test filename-9.6 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join c:\\bar foo -} {c:/bar/foo} -test filename-9.7 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join /foo c:bar -} {c:bar} -test filename-9.8 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ///host//share dir -} {//host/share/dir} -test filename-9.9 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ~ foo -} {~/foo} -test filename-9.10 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ~/~foo -} {~/~foo} -test filename-9.11 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ~ ./~foo -} {~/~foo} -test filename-9.12 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join / ~foo -} {~foo} -test filename-9.13 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ./a/ b c -} {./a/b/c} -test filename-9.14 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join ./~a/ b c -} {./~a/b/c} -test filename-9.15 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join // host share path -} {/host/share/path} -test filename-9.16 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join foo . bar -} {foo/./bar} -test filename-9.17 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join foo .. bar -} {foo/../bar} -test filename-9.18 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - file join foo/./bar -} {foo/./bar} -test filename-9.19 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - set res {} - lappend res \ - [file join {C:\foo\bar}] \ - [file join C:/blah {C:\foo\bar}] \ - [file join C:/blah C:/blah {C:\foo\bar}] -} {C:/foo/bar C:/foo/bar C:/foo/bar} -test filename-9.19.1 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - set res {} - lappend res \ - [file join {foo\bar}] \ - [file join C:/blah {foo\bar}] \ - [file join C:/blah C:/blah {foo\bar}] -} {foo/bar C:/blah/foo/bar C:/blah/foo/bar} -test filename-9.19.2 {Tcl_JoinPath: win} {testsetplatform win} { - testsetplatform win - set res {} - lappend res \ - [file join {foo\bar}] \ - [file join [pwd] {foo\bar}] \ - [file join [pwd] [pwd] {foo\bar}] - set nres {} - foreach elt $res { - lappend nres [string map [list [pwd] pwd] $elt] - } - set nres -} {foo/bar pwd/foo/bar pwd/foo/bar} -test filename-9.20 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - set res {} - lappend res \ - [file join {/foo/bar}] \ - [file join /x {/foo/bar}] \ - [file join /x /x {/foo/bar}] -} {/foo/bar /foo/bar /foo/bar} -test filename-9.23 {Tcl_JoinPath: win} {testsetplatform} { - testsetplatform win - set res {} - lappend res \ - [file join {foo\bar}] \ - [file join C:/blah {foo\bar}] \ - [file join C:/blah C:/blah {foo\bar}] - string map [list C:/blah ""] $res -} {foo/bar /foo/bar /foo/bar} -test filename-9.24 {Tcl_JoinPath: unix} {testsetplatform} { - testsetplatform unix - set res {} - lappend res \ - [file join {foo/bar}] \ - [file join /x {foo/bar}] \ - [file join /x /x {foo/bar}] - string map [list /x ""] $res -} {foo/bar /foo/bar /foo/bar} - -test filename-10.1 {Tcl_TranslateFileName} -body { - testsetplatform unix - testtranslatefilename foo -} -result {foo} -constraints {testsetplatform testtranslatefilename} -test filename-10.2 {Tcl_TranslateFileName} -body { - testsetplatform windows - testtranslatefilename {c:/foo} -} -result {c:\foo} -constraints {testsetplatform testtranslatefilename} -test filename-10.3 {Tcl_TranslateFileName} -body { - testsetplatform windows - testtranslatefilename {c:/\\foo/} -} -result {c:\foo} -constraints {testsetplatform testtranslatefilename} -test filename-10.3.1 {Tcl_TranslateFileName} -body { - testsetplatform windows - testtranslatefilename {c://///} -} -result c:\\ -constraints {testsetplatform testtranslatefilename} -test filename-10.6 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "/home/test" - testsetplatform unix - testtranslatefilename ~/foo -} -cleanup { - set env(HOME) $temp -} -result {/home/test/foo} -test filename-10.7 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - unset env(HOME) - testsetplatform unix - testtranslatefilename ~/foo -} -returnCodes error -cleanup { - set env(HOME) $temp -} -result {couldn't find HOME environment variable to expand path} -test filename-10.8 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "/home/test" - testsetplatform unix - testtranslatefilename ~ -} -cleanup { - set env(HOME) $temp -} -result {/home/test} -test filename-10.9 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "/home/test/" - testsetplatform unix - testtranslatefilename ~ -} -cleanup { - set env(HOME) $temp -} -result {/home/test} -test filename-10.10 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "/home/test/" - testsetplatform unix - testtranslatefilename ~/foo -} -cleanup { - set env(HOME) $temp -} -result {/home/test/foo} -test filename-10.17 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "\\home\\" - testsetplatform windows - testtranslatefilename ~/foo -} -cleanup { - set env(HOME) $temp -} -result {\home\foo} -test filename-10.18 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "\\home\\" - testsetplatform windows - testtranslatefilename ~/foo\\bar -} -cleanup { - set env(HOME) $temp -} -result {\home\foo\bar} -test filename-10.19 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "c:" - testsetplatform windows - testtranslatefilename ~/foo -} -cleanup { - set env(HOME) $temp -} -result {c:foo} -test filename-10.20 {Tcl_TranslateFileName} -returnCodes error -body { - testtranslatefilename ~blorp/foo -} -constraints {testtranslatefilename testtranslatefilename} \ - -result {user "blorp" doesn't exist} -test filename-10.21 {Tcl_TranslateFileName} -setup { - global env - set temp $env(HOME) -} -constraints {testsetplatform testtranslatefilename} -body { - set env(HOME) "c:\\" - testsetplatform windows - testtranslatefilename ~/foo -} -cleanup { - set env(HOME) $temp -} -result {c:\foo} -test filename-10.22 {Tcl_TranslateFileName} -body { - testsetplatform windows - testtranslatefilename foo//bar -} -constraints {testsetplatform testtranslatefilename} -result {foo\bar} -if {[testConstraint testsetplatform]} { - testsetplatform $platform -} -test filename-10.23 {Tcl_TranslateFileName} -body { - # this test fails if ~ouster is not /home/ouster - testtranslatefilename ~ouster -} -constraints {nonPortable testtranslatefilename} -result {/home/ouster} -test filename-10.24 {Tcl_TranslateFileName} -body { - # this test fails if ~ouster is not /home/ouster - testtranslatefilename ~ouster/foo -} -result {/home/ouster/foo} -constraints {nonPortable testtranslatefilename} - -test filename-11.1 {Tcl_GlobCmd} -returnCodes error -body { - glob -} -result {no files matched glob patterns ""} -test filename-11.2 {Tcl_GlobCmd} -returnCodes error -body { - glob -gorp -} -result {bad option "-gorp": must be -directory, -join, -nocomplain, -path, -tails, -types, or --} -test filename-11.3 {Tcl_GlobCmd} -body { - glob -nocomplai -} -result {} -test filename-11.4 {Tcl_GlobCmd} -body { - glob -nocomplain -} -result {} -test filename-11.5 {Tcl_GlobCmd} -returnCodes error -body { - glob -nocomplain * ~xyqrszzz -} -result {user "xyqrszzz" doesn't exist} -test filename-11.6 {Tcl_GlobCmd} -returnCodes error -body { - glob ~xyqrszzz -} -result {user "xyqrszzz" doesn't exist} -test filename-11.7 {Tcl_GlobCmd} -returnCodes error -body { - glob -- -nocomplain -} -result {no files matched glob pattern "-nocomplain"} -test filename-11.8 {Tcl_GlobCmd} -body { - glob -nocomplain -- -nocomplain -} -result {} -test filename-11.9 {Tcl_GlobCmd} -constraints {testsetplatform} -body { - testsetplatform unix - glob ~\\xyqrszzz/bar -} -returnCodes error -result {user "\xyqrszzz" doesn't exist} -test filename-11.10 {Tcl_GlobCmd} -constraints {testsetplatform} -body { - testsetplatform unix - glob -nocomplain ~\\xyqrszzz/bar -} -returnCodes error -result {user "\xyqrszzz" doesn't exist} -test filename-11.11 {Tcl_GlobCmd} -constraints {testsetplatform} -body { - testsetplatform unix - glob ~xyqrszzz\\/\\bar -} -returnCodes error -result {user "xyqrszzz" doesn't exist} -test filename-11.12 {Tcl_GlobCmd} -constraints {testsetplatform} -setup { - testsetplatform unix - set home $env(HOME) -} -body { - unset env(HOME) - glob ~/* -} -returnCodes error -cleanup { - set env(HOME) $home -} -result {couldn't find HOME environment variable to expand path} -if {[testConstraint testsetplatform]} { - testsetplatform $platform -} -test filename-11.13 {Tcl_GlobCmd} { - file join [lindex [glob ~] 0] -} [file join $env(HOME)] -set oldpwd [pwd] -set oldhome $env(HOME) -catch {cd [makeDirectory tcl[pid]]} -set env(HOME) [pwd] -file delete -force globTest -file mkdir globTest/a1/b1 -file mkdir globTest/a1/b2 -file mkdir globTest/a2/b3 -file mkdir globTest/a3 -touch globTest/x1.c -touch globTest/y1.c -touch globTest/z1.c -touch "globTest/weird name.c" -touch globTest/a1/b1/x2.c -touch globTest/a1/b2/y2.c -touch globTest/.1 -touch globTest/x,z1.c -test filename-11.14 {Tcl_GlobCmd} { - glob ~/globTest -} [list [file join $env(HOME) globTest]] -test filename-11.15 {Tcl_GlobCmd} { - glob ~\\/globTest -} [list [file join $env(HOME) globTest]] -test filename-11.16 {Tcl_GlobCmd} { - glob globTest -} {globTest} -set globname "globTest" -set horribleglobname "glob\[\{Test" -test filename-11.17 {Tcl_GlobCmd} {unix} { - lsort [glob -directory $globname *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.17.1 {Tcl_GlobCmd} {win} { - lsort [glob -directory $globname *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.17.2 {Tcl_GlobCmd} -setup { - set dir [pwd] -} -constraints {notRoot linkDirectory} -body { - cd $globname - file link -symbolic link a1 - cd $dir - lsort [glob -directory $globname -join * b1] -} -cleanup { - cd $dir - file delete [file join $globname link] -} -result [list [file join $globname a1 b1] \ - [file join $globname link b1]] -# Simpler version of the above test to illustrate a given bug. -test filename-11.17.3 {Tcl_GlobCmd} -setup { - set dir [pwd] -} -constraints {notRoot linkDirectory} -body { - cd $globname - file link -symbolic link a1 - cd $dir - lsort [glob -directory $globname -type d *] -} -cleanup { - cd $dir - file delete [file join $globname link] -} -result [list [file join $globname a1] \ - [file join $globname a2] \ - [file join $globname a3] \ - [file join $globname link]] -# Make sure the bugfix isn't too simple. We don't want to break 'glob -type l' -test filename-11.17.4 {Tcl_GlobCmd} -setup { - set dir [pwd] -} -constraints {notRoot linkDirectory} -body { - cd $globname - file link -symbolic link a1 - cd $dir - lsort [glob -directory $globname -type l *] -} -cleanup { - cd $dir - file delete [file join $globname link] -} -result [list [file join $globname link]] -test filename-11.17.5 {Tcl_GlobCmd} { - lsort [glob -directory $globname -tails *.c] -} [lsort [list "weird name.c" x,z1.c x1.c y1.c z1.c]] -test filename-11.17.6 {Tcl_GlobCmd} { - lsort [glob -directory $globname -tails *.c *.c] -} [lsort [concat [list "weird name.c" x,z1.c x1.c y1.c z1.c] \ - [list "weird name.c" x,z1.c x1.c y1.c z1.c]]] -test filename-11.17.7 {Tcl_GlobCmd: broken link and glob -l} -setup { - set dir [pwd] -} -constraints {linkDirectory} -body { - cd $globname - file mkdir nonexistent - file link -symbolic link nonexistent - file delete nonexistent - cd $dir - lsort [glob -nocomplain -directory $globname -type l *] -} -cleanup { - cd $dir - file delete [file join $globname link] -} -result [list [file join $globname link]] -test filename-11.17.8 {Tcl_GlobCmd: broken link and glob -l} -setup { - set dir [pwd] -} -constraints {symbolicLinkFile} -body { - cd $globname - touch "nonexistent" - file link -symbolic link nonexistent - file delete nonexistent - cd $dir - lsort [glob -nocomplain -directory $globname -type l *] -} -cleanup { - cd $dir - file delete [file join $globname link] -} -result [list [file join $globname link]] -test filename-11.18 {Tcl_GlobCmd} {unix} { - lsort [glob -path $globname/ *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.18.1 {Tcl_GlobCmd} {win} { - lsort [glob -path $globname/ *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.19 {Tcl_GlobCmd} {unix} { - lsort [glob -join -path [string range $globname 0 5] * *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.19.1 {Tcl_GlobCmd} {win} { - lsort [glob -join -path [string range $globname 0 5] * *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.20 {Tcl_GlobCmd} { - lsort [glob -type d -dir $globname *] -} [lsort [list [file join $globname a1]\ - [file join $globname a2]\ - [file join $globname a3]]] -test filename-11.21 {Tcl_GlobCmd} { - lsort [glob -type d -path $globname *] -} [list $globname] -test filename-11.21.1 {Tcl_GlobCmd} -body { - touch {[tcl].testremains} - lsort [glob -path {[tcl]} *] -} -cleanup { - file delete -force {[tcl].testremains} -} -result {{[tcl].testremains}} -# Get rid of file/dir if it exists, since it will have been left behind by a -# previous failed run. -if {[file exists $horribleglobname]} { - file delete -force $horribleglobname -} -file rename globTest $horribleglobname -set globname $horribleglobname -test filename-11.22 {Tcl_GlobCmd} {unix} { - lsort [glob -dir $globname *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.22.1 {Tcl_GlobCmd} {win} { - lsort [glob -dir $globname *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.23 {Tcl_GlobCmd} {unix} { - lsort [glob -path $globname/ *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.23.1 {Tcl_GlobCmd} {win} { - lsort [glob -path $globname/ *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.24 {Tcl_GlobCmd} {unix} { - lsort [glob -join -path [string range $globname 0 5] * *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.24.1 {Tcl_GlobCmd} {win} { - lsort [glob -join -path [string range $globname 0 5] * *] -} [lsort [list [file join $globname a1] [file join $globname a2]\ - [file join $globname .1]\ - [file join $globname a3]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-11.25 {Tcl_GlobCmd} { - lsort [glob -type d -dir $globname *] -} [lsort [list [file join $globname a1]\ - [file join $globname a2]\ - [file join $globname a3]]] -test filename-11.25.1 {Tcl_GlobCmd} { - lsort [glob -type {d r} -dir $globname *] -} [lsort [list [file join $globname a1]\ - [file join $globname a2]\ - [file join $globname a3]]] -test filename-11.25.2 {Tcl_GlobCmd} { - lsort [glob -type {d r w} -dir $globname *] -} [lsort [list [file join $globname a1]\ - [file join $globname a2]\ - [file join $globname a3]]] -test filename-11.26 {Tcl_GlobCmd} { - glob -type d -path $globname * -} [list $globname] -test filename-11.27 {Tcl_GlobCmd} -returnCodes error -body { - glob -types abcde * -} -result {bad argument to "-types": abcde} -test filename-11.28 {Tcl_GlobCmd} -returnCodes error -body { - glob -types z * -} -result {bad argument to "-types": z} -test filename-11.29 {Tcl_GlobCmd} -returnCodes error -body { - glob -types {abcd efgh} * -} -result {only one MacOS type or creator argument to "-types" allowed} -test filename-11.30 {Tcl_GlobCmd} -returnCodes error -body { - glob -types {{macintosh type TEXT} {macintosh creator ALFA} efgh} * -} -result {only one MacOS type or creator argument to "-types" allowed} -test filename-11.31 {Tcl_GlobCmd} -returnCodes error -body { - glob -types -} -result {missing argument to "-types"} -test filename-11.32 {Tcl_GlobCmd} -returnCodes error -body { - glob -path hello -dir hello * -} -result {"-directory" cannot be used with "-path"} -test filename-11.33 {Tcl_GlobCmd} -returnCodes error -body { - glob -path -} -result {missing argument to "-path"} -test filename-11.34 {Tcl_GlobCmd} -returnCodes error -body { - glob -direct -} -result {missing argument to "-directory"} -test filename-11.35 {Tcl_GlobCmd} -returnCodes error -body { - glob -paths * -} -result {bad option "-paths": must be -directory, -join, -nocomplain, -path, -tails, -types, or --} -# Test '-tails' flag to glob. -test filename-11.36 {Tcl_GlobCmd} -returnCodes error -body { - glob -tails * -} -result {"-tails" must be used with either "-directory" or "-path"} -test filename-11.37 {Tcl_GlobCmd} { - glob -type d -tails -path $globname * -} [list $globname] -test filename-11.38 {Tcl_GlobCmd} { - glob -tails -path $globname * -} [list $globname] -test filename-11.39 {Tcl_GlobCmd} { - glob -tails -join -path $globname * -} [list $globname] -test filename-11.40 {Tcl_GlobCmd} -body { - list [glob -dir [pwd] -tails *] [glob *] -} -match compareWords -result equal -test filename-11.41 {Tcl_GlobCmd} -body { - list [glob -dir [pwd] -tails *] [glob -dir [pwd] *] -} -match compareWords -result "not equal" -test filename-11.42 {Tcl_GlobCmd} -body { - set res [list] - foreach f [glob -dir [pwd] *] { - lappend res [file tail $f] - } - list $res [glob *] -} -match compareWords -result equal -test filename-11.43 {Tcl_GlobCmd} -returnCodes error -body { - glob -t * -} -result {ambiguous option "-t": must be -directory, -join, -nocomplain, -path, -tails, -types, or --} -test filename-11.44 {Tcl_GlobCmd} -returnCodes error -body { - glob -tails -path hello -directory hello * -} -result {"-directory" cannot be used with "-path"} -test filename-11.45 {Tcl_GlobCmd on root volume} -setup { - set res1 "" - set res2 "" - set tmpd [pwd] -} -body { - catch { - set res1 [glob -dir [lindex [file volumes] 0] -tails *] - } - catch { - cd [lindex [file volumes] 0] - set res2 [glob *] - } - list $res1 $res2 -} -cleanup { - cd $tmpd -} -match compareWords -result equal -test filename-11.46 {Tcl_GlobCmd} -returnCodes error -body { - glob -types abcde -dir foo * -} -result {bad argument to "-types": abcde} -test filename-11.47 {Tcl_GlobCmd} -returnCodes error -body { - glob -types abcde -path foo * -} -result {bad argument to "-types": abcde} -test filename-11.48 {Tcl_GlobCmd} -returnCodes error -body { - glob -types abcde -dir foo -join * * -} -result {bad argument to "-types": abcde} -test filename-11.49 {Tcl_GlobCmd} -returnCodes error -body { - glob -types abcde -path foo -join * * -} -result {bad argument to "-types": abcde} - -file rename $horribleglobname globTest -set globname globTest -unset horribleglobname - -test filename-12.1 {simple globbing} {unixOrPc} { - glob {} -} {.} -test filename-12.1.1 {simple globbing} -constraints {unixOrPc} -body { - glob -types f {} -} -returnCodes error -result {no files matched glob pattern ""} -test filename-12.1.2 {simple globbing} {unixOrPc} { - glob -types d {} -} {.} -test filename-12.1.3 {simple globbing} {unix} { - glob -types hidden {} -} {.} -test filename-12.1.4 {simple globbing} -constraints {win} -body { - glob -types hidden {} -} -returnCodes error -result {no files matched glob pattern ""} -test filename-12.1.5 {simple globbing} -constraints {win} -body { - glob -types hidden c:/ -} -returnCodes error -result {no files matched glob pattern "c:/"} -test filename-12.1.6 {simple globbing} {win} { - glob c:/ -} {c:/} -test filename-12.3 {simple globbing} { - glob -nocomplain \{a1,a2\} -} {} -set globPreResult globTest/ -set x1 x1.c -set y1 y1.c -test filename-12.4 {simple globbing} {unixOrPc} { - lsort [glob globTest/x1.c globTest/y1.c globTest/foo] -} "$globPreResult$x1 $globPreResult$y1" -test filename-12.5 {simple globbing} { - glob globTest\\/x1.c -} "$globPreResult$x1" -test filename-12.6 {simple globbing} { - glob globTest\\/\\x1.c -} "$globPreResult$x1" -test filename-12.7 {globbing at filesystem root} -constraints {unix} -body { - list [glob -nocomplain /*] [glob -path / *] -} -match compareWords -result equal -test filename-12.8 {globbing at filesystem root} -constraints {unix} -body { - set first [string range [lindex [glob -type d /*] 0] 0 1] - list [glob -nocomplain ${first}*] [glob -path $first *] -} -match compareWords -result equal -test filename-12.9 {globbing at filesystem root} -constraints {win} -body { - # Can't grab just anything from 'file volumes' because we need a dir that - # has subdirs - assume that C:/ exists across Windows machines. - set first [string range [lindex [glob -type d C:/*] 0] 0 3] - list [glob -nocomplain ${first}*] [glob -path $first *] -} -match compareWords -result equal -test filename-12.10 {globbing with volume relative paths} -setup { - set pwd [pwd] -} -body { - set dir [lindex [glob -type d C:/*] 0] - cd C:/ - list [glob -nocomplain [string range $dir 2 end]] [list $dir] -} -cleanup { - cd $pwd -} -constraints {win} -match compareWords -result equal - -test filename-13.1 {globbing with brace substitution} { - glob globTest/\{\} -} "$globPreResult" -test filename-13.2 {globbing with brace substitution} -body { - glob globTest/\{ -} -returnCodes error -result {unmatched open-brace in file name} -test filename-13.3 {globbing with brace substitution} -body { - glob globTest/\{\\\} -} -returnCodes error -result {unmatched open-brace in file name} -test filename-13.4 {globbing with brace substitution} -body { - glob globTest/\{\\ -} -returnCodes error -result {unmatched open-brace in file name} -test filename-13.5 {globbing with brace substitution} -body { - glob globTest/\} -} -returnCodes error -result {unmatched close-brace in file name} -test filename-13.6 {globbing with brace substitution} { - glob globTest/\{\}x1.c -} "$globPreResult$x1" -test filename-13.7 {globbing with brace substitution} { - glob globTest/\{x\}1.c -} "$globPreResult$x1" -test filename-13.8 {globbing with brace substitution} { - glob globTest/\{x\{\}\}1.c -} "$globPreResult$x1" -test filename-13.9 {globbing with brace substitution} { - lsort [glob globTest/\{x,y\}1.c] -} [list $globPreResult$x1 $globPreResult$y1] -test filename-13.10 {globbing with brace substitution} { - lsort [glob globTest/\{x,,y\}1.c] -} [list $globPreResult$x1 $globPreResult$y1] -test filename-13.11 {globbing with brace substitution} {unixOrPc} { - lsort [glob globTest/\{x,x\\,z,z\}1.c] -} [lsort {globTest/x1.c globTest/x,z1.c globTest/z1.c}] -test filename-13.13 {globbing with brace substitution} { - lsort [glob globTest/{a,b,x,y}1.c] -} [list $globPreResult$x1 $globPreResult$y1] -test filename-13.14 {globbing with brace substitution} {unixOrPc} { - lsort [glob {globTest/{x1,y2,weird name}.c}] -} {{globTest/weird name.c} globTest/x1.c} -test filename-13.16 {globbing with brace substitution} {unixOrPc} { - lsort [glob globTest/{x1.c,a1/*}] -} {globTest/a1/b1 globTest/a1/b2 globTest/x1.c} -test filename-13.18 {globbing with brace substitution} {unixOrPc} { - lsort [glob globTest/{x1.c,{a},a1/*}] -} {globTest/a1/b1 globTest/a1/b2 globTest/x1.c} -test filename-13.20 {globbing with brace substitution} {unixOrPc} { - lsort [glob globTest/{a,x}1/*/{x,y}*] -} {globTest/a1/b1/x2.c globTest/a1/b2/y2.c} -test filename-13.22 {globbing with brace substitution} -body { - glob globTest/\{a,x\}1/*/\{ -} -returnCodes error -result {unmatched open-brace in file name} - -test filename-14.1 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob glo*/*.c] -} {{globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c} -test filename-14.3 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob globTest/?1.c] -} {globTest/x1.c globTest/y1.c globTest/z1.c} -test filename-14.5 {asterisks, question marks, and brackets} -setup { - # The current directory could be anywhere; do this to stop spurious - # matches - file mkdir globTestContext - file rename globTest [file join globTestContext globTest] - set savepwd [pwd] - cd globTestContext -} -constraints {unixOrPc} -body { - lsort [glob */*/*/*.c] -} -cleanup { - # Reset to where we were - cd $savepwd - file rename [file join globTestContext globTest] globTest - file delete globTestContext -} -result {globTest/a1/b1/x2.c globTest/a1/b2/y2.c} -test filename-14.7 {asterisks, question marks, and brackets} {unix} { - lsort [glob globTest/*] -} {globTest/a1 globTest/a2 globTest/a3 {globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c} -test filename-14.7.1 {asterisks, question marks, and brackets} {win} { - lsort [glob globTest/*] -} {globTest/.1 globTest/a1 globTest/a2 globTest/a3 {globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c} -test filename-14.9 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob globTest/.*] -} {globTest/. globTest/.. globTest/.1} -test filename-14.11 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob globTest/*/*] -} {globTest/a1/b1 globTest/a1/b2 globTest/a2/b3} -test filename-14.13 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob {globTest/[xyab]1.*}] -} {globTest/x1.c globTest/y1.c} -test filename-14.15 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob globTest/*/] -} {globTest/a1/ globTest/a2/ globTest/a3/} -test filename-14.17 {asterisks, question marks, and brackets} -setup { - global env - set temp $env(HOME) -} -body { - set env(HOME) [file join $env(HOME) globTest] - glob ~/z* -} -cleanup { - set env(HOME) $temp -} -result [list [file join $env(HOME) globTest z1.c]] -test filename-14.18 {asterisks, question marks, and brackets} {unixOrPc} { - lsort [glob globTest/*.c goo/*] -} {{globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c} -test filename-14.20 {asterisks, question marks, and brackets} { - glob -nocomplain goo/* -} {} -test filename-14.21 {asterisks, question marks, and brackets} -body { - glob globTest/*/gorp -} -returnCodes error -result {no files matched glob pattern "globTest/*/gorp"} -test filename-14.22 {asterisks, question marks, and brackets} -body { - glob goo/* x*z foo?q -} -returnCodes error -result {no files matched glob patterns "goo/* x*z foo?q"} -test filename-14.23 {slash globbing} {unix} { - glob / -} / -test filename-14.23.2 {slash globbing} {win} { - glob / -} [file norm /] -test filename-14.24 {slash globbing} {win} { - glob {\\} -} [file norm /] -test filename-14.25 {type specific globbing} {unix} { - lsort [glob -dir globTest -types f *] -} [lsort [list \ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-14.25.1 {type specific globbing} {win} { - lsort [glob -dir globTest -types f *] -} [lsort [list \ - [file join $globname .1]\ - [file join $globname "weird name.c"]\ - [file join $globname x,z1.c]\ - [file join $globname x1.c]\ - [file join $globname y1.c] [file join $globname z1.c]]] -test filename-14.26 {type specific globbing} { - glob -nocomplain -dir globTest -types {readonly} * -} {} -test filename-14.27 {Bug 2710920} {unixOrPc} { - file tail [lindex [lsort [glob globTest/*/]] 0] -} a1 -test filename-14.28 {Bug 2710920} {unixOrPc} { - file dirname [lindex [lsort [glob globTest/*/]] 0] -} globTest -test filename-14.29 {Bug 2710920} {unixOrPc} { - file extension [lindex [lsort [glob globTest/*/]] 0] -} {} -test filename-14.30 {Bug 2710920} {unixOrPc} { - file rootname [lindex [lsort [glob globTest/*/]] 0] -} globTest/a1/ - -test filename-14.31 {Bug 2918610} -setup { - set d [makeDirectory foo] - makeFile {} bar.soom $d -} -body { - foreach fn [glob $d/bar.soom] { - set root [file rootname $fn] - close [open $root {WRONLY CREAT}] - } - llength [glob -directory $d *] -} -cleanup { - file delete -force $d/bar - removeFile bar.soom $d - removeDirectory foo -} -result 2 - -unset globname - -# The following tests are only valid for Unix systems. On some systems, like -# AFS, "000" protection doesn't prevent access by owner, so the following test -# is not portable. - -catch {file attributes globTest/a1 -permissions 0000} -test filename-15.1 {unix specific globbing} {unix nonPortable} { - string tolower [list [catch {glob globTest/a1/*} msg] $msg $errorCode] -} {1 {couldn't read directory "globtest/a1": permission denied} {posix eacces {permission denied}}} -test filename-15.2 {unix specific no complain: no errors} {unix nonPortable} { - glob -nocomplain globTest/a1/* -} {} -test filename-15.3 {unix specific no complain: no errors, good result} \ - {unix nonPortable} { - # test fails because if an error occurs, the interp's result is reset... - glob -nocomplain globTest/a2 globTest/a1/* globTest/a3 -} {globTest/a2 globTest/a3} -catch {file attributes globTest/a1 -permissions 0755} -test filename-15.4 {unix specific no complain: no errors, good result} \ - {unix nonPortable} { - # test fails because if an error occurs, the interp's result is reset... - # or you don't run at scriptics where the outser and welch users exists - glob -nocomplain ~ouster ~foo ~welch -} {/home/ouster /home/welch} -test filename-15.4.1 {no complain: errors, sequencing} { - # test used to fail because if an error occurs, the interp's result is - # reset... But, the sequence means we throw a different error first. - list [catch {glob -nocomplain ~wontexist ~blahxyz ~} res1] $res1 \ - [catch {glob -nocomplain ~ ~blahxyz ~wontexist} res2] $res2 -} {1 {user "wontexist" doesn't exist} 1 {user "blahxyz" doesn't exist}} -test filename-15.4.2 {no complain: errors, sequencing} -body { - # test used to fail because if an error occurs, the interp's result is - # reset... - list [list [catch {glob -nocomplain ~wontexist *} res1] $res1] \ - [list [catch {glob -nocomplain * ~wontexist} res2] $res2] -} -match compareWords -result equal -test filename-15.5 {unix specific globbing} {unix nonPortable} { - glob ~ouster/.csh* -} "/home/ouster/.cshrc" -touch globTest/odd\\\[\]*?\{\}name -test filename-15.6 {unix specific globbing} -constraints {unix} -setup { - global env - set temp $env(HOME) -} -body { - set env(HOME) $env(HOME)/globTest/odd\\\[\]*?\{\}name - glob ~ -} -cleanup { - set env(HOME) $temp -} -result [list [lindex [glob ~] 0]/globTest/odd\\\[\]*?\{\}name] -catch {file delete -force globTest/odd\\\[\]*?\{\}name} -test filename-15.7 {win specific globbing} -constraints {win} -body { - glob ~ -} -match regexp -result {[^/]$} -test filename-15.8 {win and unix specific globbing} -constraints {unixOrWin} -setup { - global env - set temp $env(HOME) -} -body { - touch $env(HOME)/globTest/anyname - set env(HOME) $env(HOME)/globTest/anyname - glob ~ -} -cleanup { - set env(HOME) $temp - catch {file delete -force $env(HOME)/globTest/anyname} -} -result [list [lindex [glob ~] 0]/globTest/anyname] - -# The following tests are only valid for Windows systems. -set oldDir [pwd] -if {[testConstraint win]} { - cd c:/ - file delete -force globTest - file mkdir globTest - touch globTest/x1.BAT - touch globTest/y1.Bat - touch globTest/z1.bat -} - -test filename-16.1 {windows specific globbing} {win} { - lsort [glob globTest/*.bat] -} {globTest/x1.BAT globTest/y1.Bat globTest/z1.bat} -test filename-16.2 {windows specific globbing} {win} { - glob c: -} c: -test filename-16.2.1 {windows specific globbing} -constraints {win} -setup { - set dir [pwd] -} -body { - cd C:/ - glob c: -} -cleanup { - cd $dir -} -result c: -test filename-16.3 {windows specific globbing} {win} { - glob -nocomplain c:\\\\ -} c:/ -test filename-16.4 {windows specific globbing} {win} { - glob -nocomplain c:/ -} c:/ -test filename-16.5 {windows specific globbing} {win} { - glob -nocomplain c:*bTest -} c:globTest -test filename-16.6 {windows specific globbing} {win} { - glob -nocomplain c:\\\\*bTest -} c:/globTest -test filename-16.7 {windows specific globbing} {win} { - glob -nocomplain c:/*bTest -} c:/globTest -test filename-16.8 {windows specific globbing} {win} { - lsort [glob -nocomplain c:globTest/*.bat] -} {c:globTest/x1.BAT c:globTest/y1.Bat c:globTest/z1.bat} -test filename-16.9 {windows specific globbing} {win} { - lsort [glob -nocomplain c:/globTest/*.bat] -} {c:/globTest/x1.BAT c:/globTest/y1.Bat c:/globTest/z1.bat} -test filename-16.10 {windows specific globbing} {win} { - lsort [glob -nocomplain c:globTest\\\\*.bat] -} {c:globTest/x1.BAT c:globTest/y1.Bat c:globTest/z1.bat} -test filename-16.11 {windows specific globbing} {win} { - lsort [glob -nocomplain c:\\\\globTest\\\\*.bat] -} {c:/globTest/x1.BAT c:/globTest/y1.Bat c:/globTest/z1.bat} -# some tests require a shared C drive -test filename-16.12 {windows specific globbing} {win sharedCdrive} { - cd //[info hostname]/c - glob //[info hostname]/c/*Test -} //[info hostname]/c/globTest -test filename-16.13 {windows specific globbing} {win sharedCdrive} { - cd //[info hostname]/c - glob "\\\\\\\\[info hostname]\\\\c\\\\*Test" -} //[info hostname]/c/globTest -test filename-16.14 {windows specific globbing} {win} { - cd [lindex [glob -types d -dir C:/ *] 0] - expr {".." in [glob {{.,*}*}]} -} {1} -test filename-16.15 {windows specific globbing} {win} { - cd [lindex [glob -types d -dir C:/ *] 0] - glob .. -} {..} -test filename-16.16 {windows specific globbing} {win} { - file tail [lindex [glob -nocomplain "[lindex [glob -types d -dir C:/ *] 0]/.."] 0] -} {..} -test filename-16.17 {windows specific globbing} -constraints {win} -body { - cd C:/ - # Ensure correct trimming of tails with absolute and volume relative - # globbing. - list [glob -nocomplain -tails -dir C:/ *] \ - [glob -nocomplain -tails -dir C: *] -} -match compareWords -result equal - -# Put the working directory back now that we're done with globbing in C:/ -if {[testConstraint win]} { - cd $oldDir -} - -test filename-17.1 {windows specific special files} {testsetplatform} { - testsetplatform win - list [file pathtype com1] [file pathtype con] [file pathtype lpt3] \ - [file pathtype prn] [file pathtype nul] [file pathtype aux] \ - [file pathtype foo] -} {absolute absolute absolute absolute absolute absolute relative} -if {[testConstraint testsetplatform]} { - testsetplatform $platform -} -test filename-17.2 {windows specific glob with executable} -body { - makeDirectory execglob - foreach ext {exe com cmd bat notexecutable} { - makeFile contents execglob/abc.$ext - } - lsort [glob -nocomplain -dir [temporaryDirectory]/execglob -tails -types x *] -} -constraints {win} -cleanup { - foreach ext {exe com cmd bat ps1 notexecutable} { - removeFile execglob/abc.$ext - } - removeDirectory execglob -} -result {abc.bat abc.cmd abc.com abc.exe} -test filename-17.3 {Bug 2571597} win { - set p /a - file pathtype $p - file normalize $p - file pathtype $p -} volumerelative - -test fileName-18.1 {windows - split ADS name correctly} {win} { - # bug 1194458 - set x [file split c:/c:d] - list $x [file join {*}$x] -} {{c:/ ./c:d} c:/c:d} - -test fileName-19.1 {ensure that [Bug 1325099] stays fixed} { - # Any non-crashing result is OK - list [file exists ~//.nonexistant_file] [file exists ~///.nonexistant_file] -} {0 0} - -test fileName-20.1 {Bug 1750300} -setup { - set d [makeDirectory foo] - makeFile {} TAGS $d -} -body { - llength [glob -nocomplain -directory $d -- TAGS one two] -} -cleanup { - removeFile TAGS $d - removeDirectory foo -} -result 1 -test fileName-20.2 {Bug 1750300} -setup { - set d [makeDirectory foo] - makeFile {} TAGS $d -} -body { - llength [glob -nocomplain -directory $d -types {} -- TAGS one two] -} -cleanup { - removeFile TAGS $d - removeDirectory foo -} -result 1 -test fileName-20.3 {Bug 1750300} -setup { - set d [makeDirectory foo] - makeFile {} TAGS $d -} -body { - llength [glob -nocomplain -directory $d -types {} -- *U*] -} -cleanup { - removeFile TAGS $d - removeDirectory foo -} -result 0 -test fileName-20.4 {Bug 1750300} -setup { - set d [makeDirectory foo] - makeFile {} TAGS $d -} -body { - llength [glob -nocomplain -directory $d -types {} -- URGENT Urkle] -} -cleanup { - removeFile TAGS $d - removeDirectory foo -} -result 0 -test fileName-20.5 {Bug 2837800} -setup { - set dd [makeDirectory isolate] - set d [makeDirectory ./~foo $dd] - makeFile {} test $d - set savewd [pwd] - cd $dd -} -body { - glob -nocomplain */test -} -cleanup { - cd $savewd - removeFile test $d - removeDirectory ./~foo $dd - removeDirectory isolate -} -result ~foo/test -test fileName-20.6 {Bug 2837800} -setup { - # Recall that we have $env(HOME) set so that references - # to ~ point to [temporaryDirectory] - makeFile {} test ~ - set dd [makeDirectory isolate] - set d [makeDirectory ./~ $dd] - set savewd [pwd] - cd $dd -} -body { - glob -nocomplain */test -} -cleanup { - cd $savewd - removeDirectory ./~ $dd - removeDirectory isolate - removeFile test ~ -} -result {} -test fileName-20.7 {Bug 2806250} -setup { - set savewd [pwd] - cd [temporaryDirectory] - set d [makeDirectory isolate] - makeFile {} ./~test $d -} -body { - file exists [lindex [glob -nocomplain isolate/*] 0] -} -cleanup { - removeFile ./~test $d - removeDirectory isolate - cd $savewd -} -result 1 -test fileName-20.8 {Bug 2806250} -setup { - set savewd [pwd] - cd [temporaryDirectory] - set d [makeDirectory isolate] - makeFile {} ./~test $d -} -body { - file tail [lindex [glob -nocomplain isolate/*] 0] -} -cleanup { - removeFile ./~test $d - removeDirectory isolate - cd $savewd -} -result ./~test -test fileName-20.9 {globbing for special chars} -setup { - makeFile {} test ~ - set d [makeDirectory isolate] - set savewd [pwd] - cd $d -} -body { - glob -nocomplain -directory ~ test -} -cleanup { - cd $savewd - removeDirectory isolate - removeFile test ~ -} -result ~/test -test fileName-20.10 {globbing for special chars} -setup { - set s [makeDirectory sub ~] - makeFile {} fileName-20.10 $s - set d [makeDirectory isolate] - set savewd [pwd] - cd $d -} -body { - glob -nocomplain -directory ~ -join * fileName-20.10 -} -cleanup { - cd $savewd - removeDirectory isolate - removeFile fileName-20.10 $s - removeDirectory sub ~ -} -result ~/sub/fileName-20.10 - -# cleanup -catch {file delete -force C:/globTest} -cd [temporaryDirectory] -file delete -force globTest -cd $oldpwd -catch {removeDirectory tcl[pid]} -set env(HOME) $oldhome -if {[testConstraint testsetplatform]} { - testsetplatform $platform - catch {unset platform} -} -catch {unset oldhome temp result globPreResult} -::tcltest::cleanupTests -return - -# Local Variables: -# mode: tcl -# End: |