1#! /usr/bin/env tclsh
2
3package require tcltest 2.5
4namespace import ::tcltest::*
5testConstraint exec          [llength [info commands exec]]
6if {[namespace which testdebug] ne {}} {
7	testConstraint debug         [testdebug]
8	testConstraint purify        [testpurify]
9	testConstraint debugpurify   [
10		expr {
11		![testConstraint memory]
12		&&
13		[testConstraint debug]
14		&&
15		[testConstraint purify]
16	}]
17}
18testConstraint fcopy         [llength [info commands fcopy]]
19testConstraint fileevent     [llength [info commands fileevent]]
20testConstraint thread        [
21    expr {0 == [catch {package require Thread 2.7-}]}]
22testConstraint notValgrind   [expr {![testConstraint valgrind]}]
23
24
25namespace eval ::tcltests {
26
27
28    proc init {} {
29	if {[namespace which ::tcl::file::tempdir] eq {}} {
30	    interp alias {} [namespace current]::tempdir {} [
31		namespace current]::tempdir_alternate
32	} else {
33	    interp alias {} [namespace current]::tempdir {} ::tcl::file::tempdir
34	}
35    }
36
37
38    proc tempdir_alternate {} {
39	close [file tempfile tempfile]
40	set tmpdir [file dirname $tempfile]
41	set execname [info nameofexecutable]
42	regsub -all {[^[:alpha:][:digit:]]} $execname _ execname
43	for {set i 0} {$i < 10000} {incr i} {
44	    set time [clock milliseconds]
45	    set name $tmpdir/${execname}_${time}_$i
46	    if {![file exists $name]} {
47		file mkdir $name
48		return $name
49	    }
50	}
51	error [list {could not create temporary directory}]
52    }
53
54    init
55
56    package provide tcltests 0.1
57}
58
59