Fossil SCM

fossil-scm / test / file1.test
Blame History Raw 105 lines
1
#
2
# Copyright (c) 2011 D. Richard Hipp
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the Simplified BSD License (also
6
# known as the "2-Clause License" or "FreeBSD License".)
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but without any warranty; without even the implied warranty of
10
# merchantability or fitness for a particular purpose.
11
#
12
# Author contact information:
13
# [email protected]
14
# http://www.hwaci.com/drh/
15
#
16
############################################################################
17
#
18
# File utilities
19
#
20
21
test_setup
22
23
proc simplify-name {testname args} {
24
set i 1
25
foreach {path result} $args {
26
fossil test-simplify-name $path
27
test simplify-name-$testname.$i {$::RESULT=="\[$path\] -> \[$result\]"}
28
incr i
29
}
30
}
31
32
proc relative-name {testname args} {
33
set i 1
34
foreach {subdir path result} $args {
35
fossil test-relative-name --chdir $subdir $path
36
test relative-name-$testname.$i {$::RESULT==$result}
37
incr i
38
}
39
}
40
41
proc relative-tree-name {testname args} {
42
set i 1
43
foreach {subdir path result} $args {
44
fossil test-tree-name --chdir $subdir $path
45
test relative-tree-name-$testname.$i {$::RESULT==$result}
46
incr i
47
}
48
}
49
50
proc absolute-tree-name {testname args} {
51
set i 1
52
foreach {subdir path result} $args {
53
fossil test-tree-name --chdir $subdir --absolute $path
54
test absolute-tree-name-$testname.$i {$::RESULT==$result}
55
incr i
56
}
57
}
58
59
simplify-name 100 . . .// . .. .. ..///// ..
60
simplify-name 101 {} {} / / ///////// / ././././ .
61
simplify-name 102 x x /x /x ///x //x
62
simplify-name 103 a/b a/b /a/b /a/b a///b a/b ///a///b///// //a/b
63
simplify-name 104 a/b/../c/ a/c /a/b/../c /a/c /a/b//../c /a/c /a/b/..///c /a/c
64
simplify-name 105 a/b/../../x/y x/y /a/b/../../x/y /x/y
65
simplify-name 106 a/b/../../../x/y ../x/y /a/b/../../../x/y /../x/y
66
simplify-name 107 a/./b/.././../x/y x/y a//.//b//..//.//..//x//y/// x/y
67
68
if {$::tcl_platform(os)=="Windows NT"} {
69
simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {}
70
simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {}
71
}
72
73
# This is needed because we are now running outside of the Fossil checkout.
74
file mkdir file1; set savedPwd [pwd]; cd file1
75
76
# Those directories are only needed for the testcase being able to "--chdir" to it.
77
file mkdir test1
78
file mkdir test1/test2
79
80
relative-name 100 . . . test1 [pwd] .. test1 [pwd]/ .. test1 [pwd]/test ../test
81
relative-name 101 test1/test2 [pwd] ../.. test1/test2 [pwd]/ ../.. test1/test2 [pwd]/test ../../test
82
relative-name 102 test1 [pwd]/test ../test . [pwd]/file1 ./file1 . [pwd]/file1/file2 ./file1/file2
83
relative-name 103 . [pwd] .
84
85
relative-tree-name 100 . . file1 test1 [pwd] file1 test1 [pwd]/ file1 test1 [pwd]/test file1/test
86
relative-tree-name 101 test1/test2 [pwd] file1 test1/test2 [pwd]/ file1 test1/test2 [pwd]/test file1/test
87
relative-tree-name 102 test1 [pwd]/test file1/test . [pwd]/file1 file1/file1 . [pwd]/file1/file2 file1/file1/file2
88
relative-tree-name 103 . [pwd] file1
89
90
set dirname [file normalize [file dirname [pwd]]]
91
92
absolute-tree-name 100 . . $dirname test1 [pwd] [pwd] test1 [pwd]/ $dirname/file1 test1 [pwd]/test $dirname/file1/test
93
absolute-tree-name 101 test1/test2 [pwd] $dirname/file1 test1/test2 [pwd]/ $dirname/file1 test1/test2 [pwd]/test $dirname/file1/test
94
absolute-tree-name 102 test1 [pwd]/test $dirname/file1/test . [pwd]/file1 $dirname/file1/file1 . [pwd]/file1/file2 $dirname/file1/file1/file2
95
absolute-tree-name 103 . [pwd] $dirname/file1
96
97
catch {file delete test1/test2}
98
catch {file delete test1}
99
100
if {[info exists savedPwd]} {cd $savedPwd; unset savedPwd}
101
102
###############################################################################
103
104
test_cleanup
105

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button