summaryrefslogtreecommitdiff
path: root/test/file1.test
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
committercashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
commit4f49b16079b27d7ce633619e4cddfdf2bffbc952 (patch)
treec296c1e7f3c3e2f6859c6d3a1b1b208779b89679 /test/file1.test
downloadrelic-master.tar.gz
initial commitHEADmaster
Diffstat (limited to 'test/file1.test')
-rw-r--r--test/file1.test104
1 files changed, 104 insertions, 0 deletions
diff --git a/test/file1.test b/test/file1.test
new file mode 100644
index 0000000..501d1d5
--- /dev/null
+++ b/test/file1.test
@@ -0,0 +1,104 @@
+#
+# Copyright (c) 2011 D. Richard Hipp
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the Simplified BSD License (also
+# known as the "2-Clause License" or "FreeBSD License".)
+#
+# This program is distributed in the hope that it will be useful,
+# but without any warranty; without even the implied warranty of
+# merchantability or fitness for a particular purpose.
+#
+# Author contact information:
+# drh@hwaci.com
+# http://www.hwaci.com/drh/
+#
+############################################################################
+#
+# File utilities
+#
+
+test_setup
+
+proc simplify-name {testname args} {
+ set i 1
+ foreach {path result} $args {
+ fossil test-simplify-name $path
+ test simplify-name-$testname.$i {$::RESULT=="\[$path\] -> \[$result\]"}
+ incr i
+ }
+}
+
+proc relative-name {testname args} {
+ set i 1
+ foreach {subdir path result} $args {
+ fossil test-relative-name --chdir $subdir $path
+ test relative-name-$testname.$i {$::RESULT==$result}
+ incr i
+ }
+}
+
+proc relative-tree-name {testname args} {
+ set i 1
+ foreach {subdir path result} $args {
+ fossil test-tree-name --chdir $subdir $path
+ test relative-tree-name-$testname.$i {$::RESULT==$result}
+ incr i
+ }
+}
+
+proc absolute-tree-name {testname args} {
+ set i 1
+ foreach {subdir path result} $args {
+ fossil test-tree-name --chdir $subdir --absolute $path
+ test absolute-tree-name-$testname.$i {$::RESULT==$result}
+ incr i
+ }
+}
+
+simplify-name 100 . . .// . .. .. ..///// ..
+simplify-name 101 {} {} / / ///////// / ././././ .
+simplify-name 102 x x /x /x ///x //x
+simplify-name 103 a/b a/b /a/b /a/b a///b a/b ///a///b///// //a/b
+simplify-name 104 a/b/../c/ a/c /a/b/../c /a/c /a/b//../c /a/c /a/b/..///c /a/c
+simplify-name 105 a/b/../../x/y x/y /a/b/../../x/y /x/y
+simplify-name 106 a/b/../../../x/y ../x/y /a/b/../../../x/y /../x/y
+simplify-name 107 a/./b/.././../x/y x/y a//.//b//..//.//..//x//y/// x/y
+
+if {$::tcl_platform(os)=="Windows NT"} {
+ simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {}
+ simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {}
+}
+
+# This is needed because we are now running outside of the Fossil checkout.
+file mkdir file1; set savedPwd [pwd]; cd file1
+
+# Those directories are only needed for the testcase being able to "--chdir" to it.
+file mkdir test1
+file mkdir test1/test2
+
+relative-name 100 . . . test1 [pwd] .. test1 [pwd]/ .. test1 [pwd]/test ../test
+relative-name 101 test1/test2 [pwd] ../.. test1/test2 [pwd]/ ../.. test1/test2 [pwd]/test ../../test
+relative-name 102 test1 [pwd]/test ../test . [pwd]/file1 ./file1 . [pwd]/file1/file2 ./file1/file2
+relative-name 103 . [pwd] .
+
+relative-tree-name 100 . . file1 test1 [pwd] file1 test1 [pwd]/ file1 test1 [pwd]/test file1/test
+relative-tree-name 101 test1/test2 [pwd] file1 test1/test2 [pwd]/ file1 test1/test2 [pwd]/test file1/test
+relative-tree-name 102 test1 [pwd]/test file1/test . [pwd]/file1 file1/file1 . [pwd]/file1/file2 file1/file1/file2
+relative-tree-name 103 . [pwd] file1
+
+set dirname [file normalize [file dirname [pwd]]]
+
+absolute-tree-name 100 . . $dirname test1 [pwd] [pwd] test1 [pwd]/ $dirname/file1 test1 [pwd]/test $dirname/file1/test
+absolute-tree-name 101 test1/test2 [pwd] $dirname/file1 test1/test2 [pwd]/ $dirname/file1 test1/test2 [pwd]/test $dirname/file1/test
+absolute-tree-name 102 test1 [pwd]/test $dirname/file1/test . [pwd]/file1 $dirname/file1/file1 . [pwd]/file1/file2 $dirname/file1/file1/file2
+absolute-tree-name 103 . [pwd] $dirname/file1
+
+catch {file delete test1/test2}
+catch {file delete test1}
+
+if {[info exists savedPwd]} {cd $savedPwd; unset savedPwd}
+
+###############################################################################
+
+test_cleanup