source: branches/gsoc13-tests/tests/test.tcl @ 107883

Last change on this file since 107883 was 107883, checked in by marius@…, 7 years ago

Added color, formatted output and help proc.

File size: 2.6 KB
Line 
1set test_suite {
2    case-insensitive-deactivate
3    checksums-1
4    dependencies-a
5    dependencies-b
6    dependencies-c
7    dependencies-d
8    dependencies-e
9    envvariables
10    site-tags
11    statefile-unknown-version
12    statefile-version1
13    statefile-version1-outdated
14    statefile-version2
15    statefile-version2-invalid
16    statefile-version2-outdated
17    svn-and-patchsites
18    universal
19    variants
20    xcodeversion
21}
22set arguments ""
23set test_name ""
24
25proc print_help {arg} {
26    if { $arg == "tests" } {
27        puts "The list of abailable tests is:"
28        foreach test $::test_suite {
29            puts [puts -nonewline "  "]$test
30        }
31    } else {
32        puts "Usage: tclsh test.tcl \[-debug level\] \[-t test\] \[-l\]\n"
33        puts "  -debug LVL : sets the level of printed debug info \[0-3\]"
34        puts "  -t TEST    : run a specific test"
35        puts "  -l         : print the list of available tests"
36        puts "  -h, -help  : print this message\n"
37    }
38}
39
40# Process args
41foreach arg $argv {
42    if { $arg == "-h" || $arg == "-help" } {
43        print_help ""
44        exit 0
45    } elseif { $arg == "-debug" } {
46        set index [expr [lsearch $argv $arg] + 1]
47        set level [lindex $argv $index]
48        if { $level >= 0 && $level <= 3 } {
49            append arguments "-debug " $level
50        } else {
51            puts "Invalid debug level."
52            exit 1
53        }
54    } elseif { $arg == "-t" } {
55        set index [expr [lsearch $argv $arg] + 1]
56        set test_name [lindex $argv $index]
57        set no 0
58        foreach test $test_suite {
59            if { $test_name != $test } {
60                set no [expr $no + 1]
61            }
62        }
63        if { $no == [llength $test_suite] } {
64            print_help tests
65            exit 1
66        }
67    } elseif { $arg == "-l" } {
68        print_help tests
69        exit 0
70    }
71}
72
73
74# Run tests
75if { $test_name != ""} {
76    cd test/$test_name
77
78    set result [eval exec tclsh test.tcl $arguments]
79    puts $result
80
81} else {
82    foreach test $test_suite {
83        cd test/$test
84   
85        set result [eval exec tclsh test.tcl $arguments]
86        set total [lrange [split $result "\t"] 2 2]
87        set pass [lrange [split $result "\t"] 4 4]
88        set fail [lrange [split $result "\t"] 8 8]
89
90        set out ""
91        if { $fail != 0 } {
92            # Color failed tests.
93            append out "\x1b\[1;31mTotal:" $total " Passed:" $pass " Failed:" $fail "  \x1b\[0m" $test
94        } else {
95            append out "Total:" $total " Passed:" $pass " Failed:" $fail "  " $test
96        }
97        puts $out
98   
99        cd ../..
100    }
101}
Note: See TracBrowser for help on using the repository browser.