summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2009-10-31 13:54:41 -0400
committerFrank Ch. Eigler <fche@elastic.org>2009-10-31 13:58:38 -0400
commit2c279bc4231e44dba80e5fdb10aa1626e412eab3 (patch)
treec931b7a898830dea6684b091e9f2c2c9585d241c
parent5b8642a208b614769f934c6a4ce2991658025a57 (diff)
downloadsystemtap-steved-2c279bc4231e44dba80e5fdb10aa1626e412eab3.tar.gz
systemtap-steved-2c279bc4231e44dba80e5fdb10aa1626e412eab3.tar.xz
systemtap-steved-2c279bc4231e44dba80e5fdb10aa1626e412eab3.zip
reorganize app tests; rewrite tcl as sample of improvements
* testsuite/configure.ac (--enable-testapps): New option. * testsuite/Makefile.am (TESTAPPS): Pass to dejagnu. * testsuite/systemtap.base/{xulrunner,tcl,mysql,postgres}: Moved under new systemtap.apps/ subdirectory. * testsuite/systemtap.apps/stap-tcl.sh: New file to build tcl. * testsuite/systemtap.apps/stap-tcl.stp: New file to test tcl. * testsuite/systemtap.apps/tcl.exp: New simplified test driver. * dtrace.in: Disable STAP_HAS_SEMAPHORES as they don't work on shlibs yet. * includes/sys/sdt.h (STAP_SEMAPHORE): Include __builtin_expect for unlikely.
-rwxr-xr-xdtrace.in2
-rw-r--r--includes/sys/sdt.h2
-rw-r--r--testsuite/Makefile.am4
-rw-r--r--testsuite/Makefile.in4
-rwxr-xr-xtestsuite/configure20
-rw-r--r--testsuite/configure.ac12
-rw-r--r--testsuite/systemtap.apps/mysql.exp (renamed from testsuite/systemtap.base/mysql.exp)0
-rw-r--r--testsuite/systemtap.apps/postgres.exp (renamed from testsuite/systemtap.base/postgres.exp)0
-rw-r--r--testsuite/systemtap.apps/stap-tcl.sh25
-rw-r--r--testsuite/systemtap.apps/stap-tcl.stp30
-rw-r--r--testsuite/systemtap.apps/tcl.exp67
-rw-r--r--testsuite/systemtap.apps/xulrunner.exp (renamed from testsuite/systemtap.base/xulrunner.exp)0
-rw-r--r--testsuite/systemtap.base/tcl.exp165
13 files changed, 161 insertions, 170 deletions
diff --git a/dtrace.in b/dtrace.in
index d147addb..74d70e77 100755
--- a/dtrace.in
+++ b/dtrace.in
@@ -46,7 +46,7 @@ class provider:
self.f = open(provider)
self.h = open(header,mode='w')
self.h.write("/* Generated by the Systemtap dtrace wrapper */\n")
- self.h.write("\n#define STAP_HAS_SEMAPHORES 1\n\n")
+ # self.h.write("\n#define STAP_HAS_SEMAPHORES 1\n\n")
self.h.write("\n#include <sys/sdt.h>\n\n")
in_comment = False
typedefs = ""
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
index d31d7326..3847c497 100644
--- a/includes/sys/sdt.h
+++ b/includes/sys/sdt.h
@@ -42,7 +42,7 @@
#if defined STAP_HAS_SEMAPHORES && defined EXPERIMENTAL_UTRACE_SDT
#define STAP_SEMAPHORE(probe) \
- if ( probe ## _semaphore )
+ if (__builtin_expect ( probe ## _semaphore , 0))
#else
#define STAP_SEMAPHORE(probe)
#endif
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 9607ebe3..248a0fb3 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -12,7 +12,7 @@ clean-local:
-rm -rf .systemtap* .cache_test* 2>/dev/null
DEJAZILLA=@dejazilla@
-
+TESTAPPS=@enable_testapps@
TOOL_OPTS=
# automake's dejagnu library already runs check-DEJAGNU before check-local
@@ -37,4 +37,4 @@ SYSTEMTAP_INCLUDES=$(DESTDIR)$(includedir)
RUNTESTDEFAULTFLAGS = --tool $$tool --tool_opts \'$(TOOL_OPTS)\' --srcdir $$srcdir
EXPECT = expect
-RUNTEST="env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest"
+RUNTEST="env SYSTEMTAP_TESTAPPS=$(TESTAPPS) SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest"
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
index 7358bd2c..3853cdd4 100644
--- a/testsuite/Makefile.in
+++ b/testsuite/Makefile.in
@@ -95,6 +95,7 @@ datarootdir = @datarootdir@
dejazilla = @dejazilla@
docdir = @docdir@
dvidir = @dvidir@
+enable_testapps = @enable_testapps@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
@@ -122,6 +123,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = dejagnu no-dist
DEJAZILLA = @dejazilla@
+TESTAPPS = @enable_testapps@
TOOL_OPTS =
# $(srcdir)/These values point the test suite to the install tree, and
@@ -134,7 +136,7 @@ SYSTEMTAP_PATH = $(DESTDIR)$(bindir)
SYSTEMTAP_INCLUDES = $(DESTDIR)$(includedir)
RUNTESTDEFAULTFLAGS = --tool $$tool --tool_opts \'$(TOOL_OPTS)\' --srcdir $$srcdir
EXPECT = expect
-RUNTEST = "env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest"
+RUNTEST = "env SYSTEMTAP_TESTAPPS=$(TESTAPPS) SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH SYSTEMTAP_PATH=$(SYSTEMTAP_PATH) SYSTEMTAP_INCLUDES=$(SYSTEMTAP_INCLUDES) $(srcdir)/execrc runtest"
all: all-am
.SUFFIXES:
diff --git a/testsuite/configure b/testsuite/configure
index 5e75929c..d64ca089 100755
--- a/testsuite/configure
+++ b/testsuite/configure
@@ -602,6 +602,7 @@ PACKAGE_BUGREPORT='systemtap@sources.redhat.com'
ac_subst_vars='LTLIBOBJS
LIBOBJS
+enable_testapps
dejazilla
MAINT
MAINTAINER_MODE_FALSE
@@ -671,6 +672,7 @@ ac_user_opts='
enable_option_checking
enable_maintainer_mode
enable_dejazilla
+enable_testapps
'
ac_precious_vars='build_alias
host_alias
@@ -1308,6 +1310,9 @@ Optional Features:
results to a central public collection point
(default is disabled). Optional EMAIL overrides the
default email address.
+ --enable-testapps=foo,bar or all
+ enable rebuilding of large external apps for testing
+ <sdt.h> markers
Report bugs to <systemtap@sources.redhat.com>.
_ACEOF
@@ -2317,6 +2322,21 @@ $as_echo "$as_me: A \"make *check\" will email results to $dejazilla" >&6;}
fi
+apps=
+for exp in $srcdir/systemtap.apps/*.exp
+do
+ app=`basename $exp .exp`
+ apps="$app $apps"
+done
+# Check whether --enable-testapps was given.
+if test "${enable_testapps+set}" = set; then
+ enableval=$enable_testapps;
+fi
+
+{ $as_echo "$as_me:$LINENO: Will test ${enable_testapps-none} from: $apps" >&5
+$as_echo "$as_me: Will test ${enable_testapps-none} from: $apps" >&6;}
+
+
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
diff --git a/testsuite/configure.ac b/testsuite/configure.ac
index 5166d226..bc5aed17 100644
--- a/testsuite/configure.ac
+++ b/testsuite/configure.ac
@@ -23,5 +23,17 @@ if test -n "$dejazilla"; then
fi
AC_SUBST(dejazilla)
+apps=
+for exp in $srcdir/systemtap.apps/*.exp
+do
+ app=`basename $exp .exp`
+ apps="$app $apps"
+done
+AC_ARG_ENABLE([testapps],
+ AC_HELP_STRING([--enable-testapps=foo,bar or all],
+ [enable rebuilding of large external apps for testing <sdt.h> markers]))
+AC_MSG_NOTICE([Will test ${enable_testapps-no} apps from: $apps])
+AC_SUBST(enable_testapps)
+
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
diff --git a/testsuite/systemtap.base/mysql.exp b/testsuite/systemtap.apps/mysql.exp
index efeffbae..efeffbae 100644
--- a/testsuite/systemtap.base/mysql.exp
+++ b/testsuite/systemtap.apps/mysql.exp
diff --git a/testsuite/systemtap.base/postgres.exp b/testsuite/systemtap.apps/postgres.exp
index 2d58a54f..2d58a54f 100644
--- a/testsuite/systemtap.base/postgres.exp
+++ b/testsuite/systemtap.apps/postgres.exp
diff --git a/testsuite/systemtap.apps/stap-tcl.sh b/testsuite/systemtap.apps/stap-tcl.sh
new file mode 100644
index 00000000..919f632d
--- /dev/null
+++ b/testsuite/systemtap.apps/stap-tcl.sh
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+set -e
+
+tclreleasemajor="8.6"
+tclrelease="8.6b1"
+tcldir=`pwd`/tcl/install/
+
+mkdir -p tcl
+
+if [ ! -r tcl$tclrelease-src.tar.gz ] ; then
+ wget http://sourceforge.net/projects/tcl/files/Tcl/$tclrelease/tcl$tclrelease-src.tar.gz/download
+fi
+
+if [ ! -d tcl/src ] ; then
+ tar -x -z -f tcl$tclrelease-src.tar.gz
+ mv tcl$tclrelease tcl/src
+fi
+
+cd tcl/src/unix
+env CPPFLAGS="-I$SYSTEMTAP_INCLUDES" CFLAGS="-g -O2" ./configure --prefix=$tcldir --enable-dtrace
+make -j2
+make install
+
+exit 0
diff --git a/testsuite/systemtap.apps/stap-tcl.stp b/testsuite/systemtap.apps/stap-tcl.stp
new file mode 100644
index 00000000..d3293b09
--- /dev/null
+++ b/testsuite/systemtap.apps/stap-tcl.stp
@@ -0,0 +1,30 @@
+global counts
+
+probe process(@1).mark("*") {
+ counts[$$name]<<<1 # PR10878; check also $$parms length
+}
+
+function judge(name, minvalue) {
+ value = @count(counts[name])
+ printf("%s %s %d %d\n", ((value>=minvalue)?"OK":"KO"), name, value, minvalue)
+}
+
+probe end,error {
+ /* foreach (name in counts-) {
+ printf("== %s %d\n", name, @count(counts[name]))
+ } */
+ judge("proc__entry", 9000)
+ judge("proc__return", 9000)
+ judge("proc__result", 9000)
+ judge("proc__args", 9000)
+ judge("proc__info", 9000)
+ judge("cmd__entry", 37000)
+ judge("cmd__return", 37000)
+ judge("cmd__result", 37000)
+ judge("cmd__args", 3700 /* not 37000? */)
+ judge("cmd__info", 37000)
+ judge("inst__start", 542000)
+ judge("inst__done", 542000)
+ judge("obj__create", 723000)
+ judge("obj__free", 704000)
+}
diff --git a/testsuite/systemtap.apps/tcl.exp b/testsuite/systemtap.apps/tcl.exp
new file mode 100644
index 00000000..bfcf2239
--- /dev/null
+++ b/testsuite/systemtap.apps/tcl.exp
@@ -0,0 +1,67 @@
+set test "tcl"
+
+# Test sdt support in tcl.
+
+global env
+
+if {! [info exists env(SYSTEMTAP_TESTAPPS)] || (
+ ! [string match "tcl" $env(SYSTEMTAP_TESTAPPS)] &&
+ ! [string match "all" $env(SYSTEMTAP_TESTAPPS)])} {
+ untested "$test sdt app"
+ return
+}
+
+########## Create /tmp/stap-tcl.stp ##########
+set tclreleasemajor "8.6"
+set tclrelease "8.6b1"
+set tcldir "[pwd]/tcl/install/"
+set testsuite "[pwd]"
+
+verbose -log "Building tcl"
+set test "tcl${tclreleasemajor} build"
+set rc [catch {exec sh $srcdir/$subdir/stap-tcl.sh 2>@ stdout} out]
+if {$rc != 0} {
+ clone_output $out
+ fail $test
+ return
+} else {
+ pass $test
+}
+
+set test "stap-tcl.stp compilation"
+set rc [catch {exec stap -DMAXSKIPPED=8024 -t -p4 $srcdir/$subdir/stap-tcl.stp tcl/install/lib/libtcl${tclreleasemajor}.so} out]
+clone_output $out
+if {$rc != 0} {
+ fail $test
+ return
+} else {
+ pass $test
+}
+
+set test "stap-tcl.stp execution"
+if {![installtest_p]} {
+ untested $test
+ return
+}
+
+set ok 0
+set ko 0
+set lines 0
+spawn stap -DMAXSKIPPED=8024 -t -c "tcl/install/bin/tclsh${tclreleasemajor} tcl/src/tests/all.tcl > tcl-test.out" $srcdir/$subdir/stap-tcl.stp tcl/install/lib/libtcl${tclreleasemajor}.so
+expect {
+ -timeout 1000
+ -re {^OK [^\r\n]*[\r\n]} { incr ok; exp_continue }
+ -re {^KO [^\r\n]*[\r\n]} { incr ko; exp_continue }
+ -re {^ERROR[^\r\n]*[\r\n]} { incr ko; exp_continue }
+ -re {^[^\r\n]*[\r\n]} { incr lines; exp_continue }
+ timeout { fail "$test (timeout)" }
+ eof { }
+}
+catch {close}; catch {wait}
+
+if {$ok == 14 && $ko == 0} {
+ pass "$test ($ok $ko $lines)"
+} else {
+ fail "$test ($ok $ko $lines)"
+}
+
diff --git a/testsuite/systemtap.base/xulrunner.exp b/testsuite/systemtap.apps/xulrunner.exp
index be2db0c7..be2db0c7 100644
--- a/testsuite/systemtap.base/xulrunner.exp
+++ b/testsuite/systemtap.apps/xulrunner.exp
diff --git a/testsuite/systemtap.base/tcl.exp b/testsuite/systemtap.base/tcl.exp
deleted file mode 100644
index 8056f5e5..00000000
--- a/testsuite/systemtap.base/tcl.exp
+++ /dev/null
@@ -1,165 +0,0 @@
-set test "tcl"
-
-# Test sdt support in tcl.
-
-global env
-
-if {! [info exists env(SYSTEMTAP_TEST_SDT)]} {
- unsupported "tcl (\"SYSTEMTAP_TEST_SDT\" not in env)"
- return
-}
-
-########## Create /tmp/stap-tcl.stp ##########
-set tclreleasemajor "8.6"
-set tclrelease "8.6b1"
-set tcldir "[pwd]/tcl/install/"
-set testsuite "[pwd]"
-
-set fp [open "$testsuite/stap-tcl.stp" "w"]
-puts $fp "
-probe process(@1).mark(\"proc__entry\")
-{
- printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3)
-}
-probe process(@1).mark(\"proc__return\")
-{
- printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2)
-}
-probe process(@1).mark(\"proc__result\")
-{
- printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4)
-}
-probe process(@1).mark(\"proc__args\")
-{
- printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10)
-}
-probe process(@1).mark(\"proc__info\")
-{
- printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6)
-}
-probe process(@1).mark(\"cmd__entry\")
-{
- printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3)
-}
-probe process(@1).mark(\"cmd__return\")
-{
- printf (\"%s %#x,%#x\\n\",\$\$name, \$arg1,\$arg2)
-}
-probe process(@1).mark(\"cmd__result\")
-{
- printf (\"%s %#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4)
-}
-probe process(@1).mark(\"cmd__args\")
-{
- printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10)
-}
-probe process(@1).mark(\"cmd__info\")
-{
- printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6)
-}
-probe process(@1).mark(\"inst__start\")
-{
- printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3)
-}
-probe process(@1).mark(\"inst__done\")
-{
- printf (\"%s %#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3)
-}
-probe process(@1).mark(\"obj__create\")
-{
- printf (\"%s %#x\\n\",\$\$name, \$arg1)
-}
-probe process(@1).mark(\"obj__free\")
-{
- printf (\"%s %#x\\n\",\$\$name, \$arg1)
-}
-probe process(@1).mark(\"tcl__probe\")
-{
- printf (\"%s %#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x,%#x\\n\",\$\$name, \$arg1,\$arg2,\$arg3,\$arg4,\$arg5,\$arg6,\$arg7,\$arg8,\$arg9,\$arg10)
-}
-"
-close $fp
-
-########## Begin /tmp/stap-tcl.sh ##########
-set fp [open "$testsuite/stap-tcl.sh" "w"]
-puts $fp "
-##### begin run_tests #####
-function run_tests \{
-(cd $tcldir/..
-MOD=stapsdt_\$(date +%j%k%M%N | sed 's/ //')
-$env(SYSTEMTAP_PATH)/stap -m \$MOD -c install/bin/tclsh$tclreleasemajor $testsuite/stap-tcl.stp $testsuite/tcl/install/lib//libtcl$tclreleasemajor.so << END >$testsuite/stap-tcl-markers.log 2>&1
-source src/tests/all.tcl
-quit
-END
-)
-
-PROC_ENTRY=\$(grep 'proc__entry' $testsuite/stap-tcl-markers.log | wc -l)
-PROC_RETURN=\$(grep 'proc__return' $testsuite/stap-tcl-markers.log | wc -l)
-PROC_RESULT=\$(grep 'proc__result' $testsuite/stap-tcl-markers.log | wc -l)
-PROC_ARGS=\$(grep 'proc__args' $testsuite/stap-tcl-markers.log | wc -l)
-PROC_INFO=\$(grep 'proc__info' $testsuite/stap-tcl-markers.log | wc -l)
-CMD_ENTRY=\$(grep 'cmd__entry' $testsuite/stap-tcl-markers.log | wc -l)
-CMD_RETURN=\$(grep 'cmd__return' $testsuite/stap-tcl-markers.log | wc -l)
-CMD_RESULT=\$(grep 'cmd__result' $testsuite/stap-tcl-markers.log | wc -l)
-CMD_ARGS=\$(grep 'cmd__args' $testsuite/stap-tcl-markers.log | wc -l)
-CMD_INFO=\$(grep 'cmd__info' $testsuite/stap-tcl-markers.log | wc -l)
-INST_START=\$(grep 'inst__start' $testsuite/stap-tcl-markers.log | wc -l)
-INST_DONE=\$(grep 'inst__done' $testsuite/stap-tcl-markers.log | wc -l)
-OBJ_CREATE=\$(grep 'obj__create' $testsuite/stap-tcl-markers.log | wc -l)
-OBJ_FREE=\$(grep 'obj__free' $testsuite/stap-tcl-markers.log | wc -l)
-
-echo PROC_ENTRY=\$PROC_ENTRY PROC_RETURN=\$PROC_RETURN PROC_RESULT=\$PROC_RESULT PROC_ARGS=\$PROC_ARGS PROC_INFO=\$PROC_INFO CMD_ENTRY=\$CMD_ENTRY CMD_RETURN=\$CMD_RETURN CMD_RESULT=\$CMD_RESULT CMD_ARGS=\$CMD_ARGS CMD_INFO=\$CMD_INFO INST_START=\$INST_START INST_DONE=\$INST_DONE OBJ_CREATE=\$OBJ_CREATE OBJ_FREE=\$OBJ_FREE
-
-if \[ \$PROC_ENTRY -gt 9000 -a \$PROC_RETURN -gt 9000 -a \$PROC_RESULT -gt 9000 -a \$PROC_ARGS -gt 9000 -a \$PROC_INFO -gt 9000 -a \$CMD_ENTRY -gt 37000 -a \$CMD_RETURN -gt 37000 -a \$CMD_RESULT -gt 37000 -a \$CMD_ARGS -gt 3700 -a \$CMD_INFO -gt 37000 -a \$INST_START -gt 542000 -a \$INST_DONE -gt 542000 -a \$OBJ_CREATE -gt 723000 -a \$OBJ_FREE -gt 704000 \] ; then
- echo PASS: tcl markers \$1
-else
- echo FAIL: tcl markers \$1
-fi
-
-\}
-##### end run_tests #####
-
-if \[ ! -r tcl$tclrelease-src.tar.gz \] ; then
-wget http://sourceforge.net/projects/tcl/files/Tcl/$tclrelease/tcl$tclrelease-src.tar.gz/download
-fi
-
-if \[ ! -d tcl/src \] ; then
-tar -x -z -f tcl$tclrelease-src.tar.gz
-mkdir tcl
-mv tcl$tclrelease tcl/src
-fi
-
-if \[ ! -d tcl/install/bin \] ; then
-cd tcl/src/unix
-./configure --prefix=$tcldir --enable-dtrace CFLAGS='-I$env(SYSTEMTAP_INCLUDES) -g'
-
-make -j2
-make install
-fi
-
-run_tests uprobe
-"
-########## End /tmp/stap-tcl.sh ##########
-close $fp
-
-########## /tmp/stap-tcl.sh does most of the work ##########
-verbose -log Running tcl testsuite
-spawn sh stap-tcl.sh 2>&1
-expect {
- -timeout 1000
- -re {FAIL: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s;
- fail "$s"; exp_continue }
- -re {PASS: [a-z_ ]+} { regexp " .*$" $expect_out(0,string) s;
- pass "$s"; exp_continue }
- -re {UNSUPPORTED: [a-zA-Z_/: ]+} { regexp " .*$" $expect_out(0,string) s;
- verbose -log "$s"
- unsupported "$s"; exp_continue }
- timeout { fail "$test (timeout)" }
- eof { }
-}
-
-if { $verbose == 0 } {
-catch {exec rm -rf $testsuite/stap-tcl.stp tcl$tclrelease-src.tar.gz \
- $testsuite/stap-tcl-markers.log $testsuite/stap-tcl.sh }
-catch {exec rm -rf tcl}
-}