summaryrefslogtreecommitdiffstats
path: root/testsuite/lib/stap_compile.exp
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-07-09 22:44:13 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-07-09 22:44:13 -0400
commita00cc8c70d20f2f3429590b629d272c8db65b40f (patch)
tree6a90966d1a715c48db4ac35b891c46ef654f272f /testsuite/lib/stap_compile.exp
parentdf00639dbe262b8919bdf625f30d80e5b9b96346 (diff)
parent51a3785482396c9f653e3e7647945bfc24f7b160 (diff)
downloadsystemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.tar.gz
systemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.tar.xz
systemtap-steved-a00cc8c70d20f2f3429590b629d272c8db65b40f.zip
Merge commit 'origin/master' into pr6429-comp-unwindsyms
* commit 'origin/master': fix shutdown race condition for scripts that might exit during begin probes Fix PR 6732: Add runtime/autoconf-real-parent.c check for task_struct field. clarify dejagnu test case name for empty-struct changes add changelog entries for last two changes Add test suite for declaration resolution Fix semantic error: empty struct Add hack to support git 1.6 in git_version.sh Sync latest fix for git_version.sh from RadeonHD's tree Slightly cleanup code of translate.cxx PR2111: add general blurbage to stapprobes.5 on syscalls tapset Use `uname -rvm` for checking system compatibility. Generate Add section to stapex manual page on how installed examples are documented. Install examples, demos and samples. Install tutorial and langref manuals.
Diffstat (limited to 'testsuite/lib/stap_compile.exp')
-rw-r--r--testsuite/lib/stap_compile.exp39
1 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/lib/stap_compile.exp b/testsuite/lib/stap_compile.exp
new file mode 100644
index 00000000..8c6df0ee
--- /dev/null
+++ b/testsuite/lib/stap_compile.exp
@@ -0,0 +1,39 @@
+# stap_compile TEST_NAME flags script args
+# - TEST_NAME is the name of the current test
+# - compile indicates whether the script is supposed to compile
+# - script is the script to compile
+# Additional arguments are passed to stap as-is.
+proc stap_compile { TEST_NAME compile script args } {
+ set cmd [concat {stap -v -p4 -e} $script $args]
+
+ verbose -log "running $cmd"
+ eval spawn $cmd
+ set compile_errors 0
+ expect {
+ -re {^Pass\ [1234]:[^\r]*\ in\ .*\ ms.\r\n} {exp_continue}
+ -re {^Pass\ [34]: using cached [^\r\n]+\r\n} {exp_continue}
+ # pass-4 output
+ -re {^/[^\r\n]+.ko\r\n} {exp_continue}
+ -re "parse error" { incr compile_errors 1; exp_continue}
+ -re "compilation failed" {incr compile_errors 1; exp_continue}
+ -re "semantic error:" {incr compile_errors 1; exp_continue}
+ }
+ catch close
+ wait
+
+ # If we've got compile errors and the script was supposed to
+ # compile, fail.
+ if {$compile_errors > 0} {
+ if {$compile == 1} {
+ fail "$TEST_NAME compilation failed"
+ } else {
+ pass "$TEST_NAME compilation failed correctly"
+ }
+ } else {
+ if {$compile == 1} {
+ pass "$TEST_NAME compilation succeeded"
+ } else {
+ fail "$TEST_NAME compilation succeeded unexpectedly"
+ }
+ }
+}