Blob Blame History Raw
# 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 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