aboutsummaryrefslogtreecommitdiff
path: root/testsuite/runtest.all/utils.test
blob: b8e05da748114aa80996872c89f86d9ed4723d4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Test procedures in lib/utils.exp.

set srcdir [lindex $argv 0]
set subdir [lindex $argv 1]
set objdir [lindex $argv 2]

if [ file exists $objdir/setval.tmp ] {
    source $objdir/setval.tmp
} else {
    puts "ERROR: $objdir/setval.tmp doesn't exist"
}
if [ file exists $srcdir/$subdir/default_procs.tcl ] {
    source "$srcdir/$subdir/default_procs.tcl"
} else {
    puts "ERROR: $srcdir$subdir/default_procs.tcl doesn't exist"
}

set file $srcdir/../lib/utils.exp
if [ file exists $file] {
    source $file
} else {
    puts "ERROR: $file doesn't exist"
}

# Test getdirs:
#
if [lib_pat_test "getdirs" "${srcdir}/runtest.all" "runtest.all/topdir" ] {
    puts "FAILED: getdirs toplevel, no arguments"
} else {
    puts "PASSED: getdirs toplevel, no arguments"
}

if [lib_pat_test "getdirs" "${srcdir}/runtest.all top*" "runtest.all/topdir" ] {
    puts "FAILED: getdirs toplevel, one subdir"
} else {
    puts "PASSED: getdirs toplevel, one subdir"
}

if [lib_pat_test "getdirs" "${srcdir}/runtest.all/topdir" "subdir1*subdir2" ] {
    puts "FAILED: getdirs toplevel, two subdirs"
} else {
    puts "PASSED: getdirs toplevel, two subdirs"
}

# Test relative_filename:
#
if { [relative_filename "/foo/test" "/foo/test/bar/baz" ] == "bar/baz" } {
    puts "PASSED: relative_filename, simple prefix"
} else {
    puts "FAILED: relative_filename, simple prefix"
}
if { [relative_filename "/foo/test" "/bar/test" ] == "../../bar/test" } {
    puts "PASSED: relative_filename, up to top"
} else {
    puts "FAILED: relative_filename, up to top"
}
if { [relative_filename "/tmp/foo-test" "/tmp/bar/test" ] == "../bar/test" } {
    puts "PASSED: relative_filename, up one level"
} else {
    puts "FAILED: relative_filename, up one level"
}
if { [relative_filename "/tmp/foo-test" "/tmp/foo-test" ] == "" } {
    puts "PASSED: relative_filename, same name"
} else {
    puts "FAILED: relative_filename, same name"
}

# Test find:
#
if [string match "*/subdir2/subfile2" "[find ${srcdir}/runtest.all/topdir/subdir2 sub*]"] {
    puts "PASSED: find, only one level deep"
} else {
    puts "FAILED: find, only one level deep"
}

if [regexp ".*/subdir1/subsubdir1/subsubfile1( |$)" "[find ${srcdir}/runtest.all/topdir/subdir1 sub*]"] {
    puts "PASSED: find, two levels deep"
} else {
    puts "FAILED: find, two  levels deep"
}

# Environment varible utility tests.
#

if [info exists env(TESTRUN)] {
    unset env(TESTRUN)
}

# Test setenv:
#
setenv TESTRUN FooBar
if [info exists env(TESTRUN)] {
    if { $env(TESTRUN) == "FooBar" } {
        pass "setenv, set an environment variable"
    } else {
        fail "setenv, set an environment variable"
    }
} else {
    fail "setenv, set an environment variable"
}

# Test getenv:
#
if [info exists env(TESTRUN)] {
    if { [getenv TESTRUN] == "FooBar" } {
        pass "getenv, get an environment variable"
    } else {
        fail "getenv, get an environment variable"
    }
} else {
    untested "getenv, get an environment variable"
}

# Test unsetenv:
#
if [info exists env(TESTRUN)] {
    unsetenv TESTRUN
    if [info exists env(TESTRUN)] {
        fail "unsetenv, unset an environment variable"
    } else {
        pass "unsetenv, unset an environment variable"
    }
} else {
    untested "unsetenv, unset an environment variable"
}

# Test 'which' using a relative path.
#
if {[which ./config.status] != 0} {
  pass "which, relative path to config.status"
} else {
  fail "which, relative path to config.status"
}

# Test 'which' using an absolute path.
#
if {[which [file join $objdir config.status]] != 0} {
  pass "which, absolute path to config.status"
} else {
  fail "which, absolute path to config.status"
}

# Test 'which make'.
#
if {[which make] != 0} {
  pass "which, make"
} else {
  pass "which, make"
}

# grep args
# diff file_1 file_2
# runtest_file_p