]> sourceware.org Git - systemtap.git/commitdiff
(PR14574 partial fix) Make the systemtap.pass1-4/*.exp tests use dyninst also.
authorDavid Smith <dsmith@redhat.com>
Wed, 26 Sep 2012 19:31:31 +0000 (14:31 -0500)
committerDavid Smith <dsmith@redhat.com>
Wed, 26 Sep 2012 19:31:31 +0000 (14:31 -0500)
* testsuite/lib/systemtap.exp (print_systemtap_version): New function.
  (get_runtime_list): Ditto.
  (setup_systemtap_environment): Remember whether we've got dyninst
  support.
  (stap_run_batch): Allow passing args and the filename.
* testsuite/systemtap.pass1-4/buildok-dyninst.exp: New test.
* testsuite/systemtap.pass1-4/buildko.exp: Add dyninst support.
* testsuite/systemtap.pass1-4/parseko.exp: Ditto.
* testsuite/systemtap.pass1-4/parseok.exp: Ditto.
* testsuite/systemtap.pass1-4/semko.exp: Ditto.
* testsuite/systemtap.pass1-4/semok.exp: Ditto.
* testsuite/systemtap.pass1-4/transko.exp: Ditto.
* testsuite/systemtap.pass1-4/transok.exp: Ditto.
* testsuite/buildok/cmdline01.stp: Allow extra args to be passed in.
* testsuite/buildok/fortytwo.stp: Ditto.
* testsuite/buildok/oldlocals01.stp: Ditto.
* testsuite/buildok/scsi-detailed.stp: Ditto.
* testsuite/buildok/thirtythree.stp: Ditto.
* testsuite/buildok/thirtytwo.stp: Ditto.
* testsuite/parseko/bad_tapset.stp: Ditto.
* testsuite/parseko/cmdline02.stp: Ditto.
* testsuite/parseko/cmdline03.stp: Ditto.
* testsuite/parseko/cmdline04.stp: Ditto.
* testsuite/parseko/cmdline06.stp: Ditto.
* testsuite/parseko/cmdline07.stp: Ditto.
* testsuite/parseko/cmdline08.stp: Ditto.
* testsuite/parseko/cmdline15.stp: Ditto.
* testsuite/parseko/cmdline22.stp: Ditto.
* testsuite/parseko/deprecated01.stp: Ditto.
* testsuite/parseko/preprocess13.stp: Ditto.
* testsuite/parseko/preprocess16.stp: Ditto.
* testsuite/parseko/preprocess17.stp: Ditto.
* testsuite/parseko/twentyseven.stp: Ditto.
* testsuite/parseko/twentythree.stp: Ditto.
* testsuite/parseok/all_tapsets.stp: Ditto.
* testsuite/parseok/bad_tapset.stp: Ditto.
* testsuite/parseok/cmdline01.stp: Ditto.
* testsuite/parseok/cmdline02.stp: Ditto.
* testsuite/parseok/deprecated01.stp: Ditto.
* testsuite/parseok/fourteen.stp: Ditto.
* testsuite/parseok/macros05.stp: Ditto.
* testsuite/parseok/macros08.stp: Ditto.
* testsuite/parseok/nineteen.stp: Ditto.
* testsuite/parseok/semko.stp: Ditto.
* testsuite/parseok/unparser.stp: Ditto.
* testsuite/semko/fifty.stp: Ditto.
* testsuite/semko/nodwf01.stp: Ditto.
* testsuite/semko/nodwf02.stp: Ditto.
* testsuite/semko/nodwf03.stp: Ditto.
* testsuite/semko/nodwf04.stp: Ditto.
* testsuite/semko/nodwf05.stp: Ditto.
* testsuite/semko/nodwf06.stp: Ditto.
* testsuite/semko/nodwf07.stp: Ditto.
* testsuite/semko/nodwf08.stp: Ditto.
* testsuite/semko/nodwf09.stp: Ditto.
* testsuite/semko/plt2.stp: Ditto.
* testsuite/semko/target_lvalue.stp: Ditto.
* testsuite/semok/args.stp: Ditto.
* testsuite/semok/badvar.stp: Ditto.
* testsuite/semok/badvar_undefined.stp: Ditto.
* testsuite/semok/bz11911.stp: Ditto.
* testsuite/semok/defined_list_vars.stp: Ditto.
* testsuite/semok/eight.stp: Ditto.
* testsuite/semok/nine.stp: Ditto.
* testsuite/semok/nodwf01.stp: Ditto.
* testsuite/semok/nodwf02.stp: Ditto.
* testsuite/semok/nodwf03.stp: Ditto.
* testsuite/semok/nodwf04.stp: Ditto.
* testsuite/semok/nodwf05.stp: Ditto.
* testsuite/semok/nodwf06.stp: Ditto.
* testsuite/semok/nodwf07.stp: Ditto.
* testsuite/semok/plt2.stp: Ditto.
* testsuite/semok/pr11808.stp: Ditto.
* testsuite/semok/pr11809.stp: Ditto.
* testsuite/semok/syscall_return.stp: Ditto.
* testsuite/semok/transko.stp: Ditto.
* testsuite/semok/twenty.stp: Ditto.
* testsuite/semok/twentyfive.stp: Ditto.
* testsuite/transok/buildko.stp: Ditto.
* testsuite/transok/eleven.stp: Ditto.

76 files changed:
testsuite/buildok/cmdline01.stp
testsuite/buildok/fortytwo.stp
testsuite/buildok/oldlocals01.stp
testsuite/buildok/scsi-detailed.stp
testsuite/buildok/thirtythree.stp
testsuite/buildok/thirtytwo.stp
testsuite/lib/systemtap.exp
testsuite/parseko/bad_tapset.stp
testsuite/parseko/cmdline02.stp
testsuite/parseko/cmdline03.stp
testsuite/parseko/cmdline04.stp
testsuite/parseko/cmdline06.stp
testsuite/parseko/cmdline07.stp
testsuite/parseko/cmdline08.stp
testsuite/parseko/cmdline15.stp
testsuite/parseko/cmdline22.stp
testsuite/parseko/deprecated01.stp
testsuite/parseko/preprocess13.stp
testsuite/parseko/preprocess16.stp
testsuite/parseko/preprocess17.stp
testsuite/parseko/twentyseven.stp
testsuite/parseko/twentythree.stp
testsuite/parseok/all_tapsets.stp
testsuite/parseok/bad_tapset.stp
testsuite/parseok/cmdline01.stp
testsuite/parseok/cmdline02.stp
testsuite/parseok/deprecated01.stp
testsuite/parseok/fourteen.stp
testsuite/parseok/macros05.stp
testsuite/parseok/macros08.stp
testsuite/parseok/nineteen.stp
testsuite/parseok/semko.stp
testsuite/parseok/unparser.stp
testsuite/semko/fifty.stp
testsuite/semko/nodwf01.stp
testsuite/semko/nodwf02.stp
testsuite/semko/nodwf03.stp
testsuite/semko/nodwf04.stp
testsuite/semko/nodwf05.stp
testsuite/semko/nodwf06.stp
testsuite/semko/nodwf07.stp
testsuite/semko/nodwf08.stp
testsuite/semko/nodwf09.stp
testsuite/semko/plt2.stp
testsuite/semko/target_lvalue.stp
testsuite/semok/args.stp
testsuite/semok/badvar.stp
testsuite/semok/badvar_undefined.stp
testsuite/semok/bz11911.stp
testsuite/semok/defined_list_vars.stp
testsuite/semok/eight.stp
testsuite/semok/nine.stp
testsuite/semok/nodwf01.stp
testsuite/semok/nodwf02.stp
testsuite/semok/nodwf03.stp
testsuite/semok/nodwf04.stp
testsuite/semok/nodwf05.stp
testsuite/semok/nodwf06.stp
testsuite/semok/nodwf07.stp
testsuite/semok/plt2.stp
testsuite/semok/pr11808.stp
testsuite/semok/pr11809.stp
testsuite/semok/syscall_return.stp
testsuite/semok/transko.stp
testsuite/semok/twenty.stp
testsuite/semok/twentyfive.stp
testsuite/systemtap.pass1-4/buildko.exp
testsuite/systemtap.pass1-4/buildok-dyninst.exp [new file with mode: 0644]
testsuite/systemtap.pass1-4/parseko.exp
testsuite/systemtap.pass1-4/parseok.exp
testsuite/systemtap.pass1-4/semko.exp
testsuite/systemtap.pass1-4/semok.exp
testsuite/systemtap.pass1-4/transko.exp
testsuite/systemtap.pass1-4/transok.exp
testsuite/transok/buildko.stp
testsuite/transok/eleven.stp

index 67372defd28b5a6a0d1a7943127362530c8e9c95..14e2afd1f17a37b12f0a6f3ca80ebfe6c3fecb7c 100755 (executable)
@@ -9,7 +9,7 @@
 # Test '-g' and '-D'.  The code below will give an error at
 # compilation stage unless 'FOO' is defined.
 
-stap -g -p4 -DFOO=1 - <<EOF
+stap $@ -g -p4 -DFOO=1 - <<EOF
 
 function footest:string()
 %{
index a59df7ab56688bb0ecd4f345acaebf0c9454661c..f2ba504b8c51344236c34dd4a5a7fa06608cabbb 100755 (executable)
@@ -7,7 +7,7 @@ set -e
 fn="do_readv_writev@fs/read_write.c"
 var="file"
 
-fullfn=`stap -wp2 -e 'probe kernel.statement("'$fn'") {}' | grep kernel | cut -f2 -d'"'`
+fullfn=`stap $@ -wp2 -e 'probe kernel.statement("'$fn'") {}' | grep kernel | cut -f2 -d'"'`
 lineno=`echo $fullfn | cut -f2 -d:`
 
 echo "$0: $fn found, starting line $lineno"
@@ -15,7 +15,7 @@ echo "$0: $fn found, starting line $lineno"
 for i in 0 1 2 4 6 10 15 20 25 # some random numbers, not larger than the number of lines in fn
 do
     ilineno=`expr $lineno + $i`
-    errors=`stap -u -p4 -e 'probe kernel.statement("'$fn':'$ilineno'") {$'$var'}' 2>&1 >/dev/null ||true `
+    errors=`stap $@ -u -p4 -e 'probe kernel.statement("'$fn':'$ilineno'") {$'$var'}' 2>&1 >/dev/null ||true `
     if echo "$errors" | grep -q unable.to.find.local
     then
        echo "Unexpected error $errors"; exit 1
index 2b0fee17c7cc2516c45231208dd095ba6d2f4312..76ea9943891102b33362cf5f1b966bbe4f0264d2 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 
-stap -g -p4 --compatible=1.7.9 -e '
+stap $@ -g -p4 --compatible=1.7.9 -e '
 # test accessing locals using THIS->foo in legacy mode
 function baz:long(foo:long, bar:string)
 %{
-        printk("%s\n", THIS->bar);
+        _stp_printf("%s\n", THIS->bar);
         THIS->__retvalue = 600 + THIS->foo;
 %}
 
index 9c53c1728008e5246bf15b00fdb5647fe1260d2c..64530e62abd49eafc8a4c9030aa6be3159fd2cd8 100755 (executable)
@@ -12,7 +12,7 @@ if ! grep scsi_dispatch_cmd /proc/kallsyms >/dev/null 2>&1 ; then
 fi
 
 
-stap -p4 - << EOF
+stap $@ -p4 - << EOF
 probe scsi.ioentry
 {
        printf("%20s, disk_major=%d, disk_minor=%d, device_state=%s, req_addr=%p\n",
index cd704bdf6f83f0915cc4a4a5f42b4d2f95aab40a..5cbb41504af3e25b928f1476f1ed13aade2e6c74 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
 
-stap --ldd -vvv -p4 -e 'probe begin {}' -t -d /bin/ls
+stap $@ --ldd -vvv -p4 -e 'probe begin {}' -t -d /bin/ls
 
 
index d97aa50bc60e8a1b4593c17cc3bc0a4d9cf089a4..aaaa45db2a455f19c8cab4dc77c507a1e2cc9a19 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-stap -t -p4 -DKRETACTIVE=8888 -e '
+stap $@ -t -p4 -DKRETACTIVE=8888 -e '
 probe kprobe.function("sys_open").return {}
 probe kprobe.function("sys_open").return.maxactive(100) {}
 probe kernel.function("sys_open").return {}
index 15c9c6c7f54212cd95b005669cc64a60ffae1063..7d5060afef0b285ec353359f55faff8b16084a13 100644 (file)
@@ -61,6 +61,29 @@ proc uprobes_p {} {
 }
 
 
+proc dyninst_p {} {
+    global env
+
+    # Was this version of systemtap compiled with dyninst support?
+    # (Use the cached value from setup_systemtap_environment().)
+    if {[info exists env(SYSTEMTAP_DYNINST)] && $env(SYSTEMTAP_DYNINST) == 1} {
+       return 1
+    }
+    return 0
+}
+
+
+proc get_runtime_list {} {
+    # Always return the default runtime.
+    set runtime_list [list ""]
+
+    if {[dyninst_p]} {
+       lappend runtime_list "dyninst"
+    }
+    return $runtime_list
+}
+
+
 proc print_systemtap_version {} {
     set version [exec /bin/uname -r]
     set location "/boot/vmlinux-$version"
@@ -132,6 +155,10 @@ proc setup_systemtap_environment {} {
         }
     }
 
+    # Remember if  this version of systemtap compiled with dyninst support
+    if {! [catch {exec sh -c "stap -V 2>&1 | grep -q DYNINST"} dummy]} {
+       set env(SYSTEMTAP_DYNINST) 1
+    }
     return 1
 }
 
@@ -371,8 +398,8 @@ proc cleanup {} {
 }
 
 
-proc stap_run_batch {args} {
-    verbose -log "starting $args"
+proc stap_run_batch {filename args} {
+    verbose -log "starting $filename $args"
 
     # Many of our test cases use "#! stap ...".  Since these lack
     # /full/paths, they are not really executable.  (We can't have
@@ -383,15 +410,15 @@ proc stap_run_batch {args} {
     # stap manually here (relying on $PATH).  Otherwise, we presume
     # the file properly executable.
 
-    set file [open [lindex $args 0] r]
+    set file [open $filename r]
     set firstbits [gets $file]
     close $file
     if [regexp -line {\#! stap (.*)} $firstbits -> stap_args] {
-        verbose -log "spawn1 stap $stap_args [lindex $args 0]"
-        spawn stap $stap_args [lindex $args 0]
+        verbose -log "spawn1 stap $stap_args $filename $args"
+        spawn stap $stap_args $filename $args
     } else {
-        verbose -log "spawn2 $args"
-        spawn $args
+        verbose -log "spawn2 $filename $args"
+        spawn $filename $args
     }
 
     expect {
index bd15577f0060a74a8ee57691be2f5f8905fe91ac..6e1bc0653ea9167d008a761c9f1305b1658a63a2 100755 (executable)
@@ -3,4 +3,4 @@
 # PR11405: with -W, bad tapsets should still be an error
 
 TAPSET=`dirname $0`/bad_tapset/
-stap -p1 -e 'probe begin {}' -I $TAPSET -W
+stap $@ -p1 -e 'probe begin {}' -I $TAPSET -W
index feca762bd275eef48d59a090a22dbadd36e594f3..36a51a929c6da4c4878d06c0c7dfe3808bed6821 100755 (executable)
@@ -5,4 +5,4 @@
 #
 # NUM must be between 1 and 64 
 
-stap -p1 -s 0 -e 'probe begin { exit() }'
+stap $@ -p1 -s 0 -e 'probe begin { exit() }'
index 9b4b2553d73c063041c87bd98cc05d0344f117fa..c42fc519dad8444fb57bcf4760c0cb8bfc232d01 100755 (executable)
@@ -5,4 +5,4 @@
 #
 # NUM must be between 1 and 5
 
-stap -p0 -e 'probe begin { exit() }'
+stap $@ -p0 -e 'probe begin { exit() }'
index d58cd70df6878731ed154407c98fa54e8b85d5be..e2b590a24f1d7543068392bcf112d18096ebabe4 100755 (executable)
@@ -2,4 +2,4 @@
 
 # multiple '-e' (script) options cannot be specified
 
-stap -p1 -e 'probe begin { exit() }' -e 'probe end { exit() }'
+stap $@ -p1 -e 'probe begin { exit() }' -e 'probe end { exit() }'
index 6bb310f8b4896a34b10b69f3873600b9ed297587..0b47c7adf3a36da2f506968169ea5e9286720b84 100755 (executable)
@@ -2,4 +2,4 @@
 
 # Bad TMPDIR environment variable should cause exit
 
-TMPDIR=/dev/null/BADTMPDIR stap -p1 -e 'probe begin { exit() }'
+TMPDIR=/dev/null/BADTMPDIR stap $@ -p1 -e 'probe begin { exit() }'
index aee03a914ce7bae46f26e9ab39ba9bf8f12eac5b..f359e20a59098aef3138478fac42b553ebbae1d8 100755 (executable)
@@ -3,4 +3,4 @@
 # A module name must be specified when using '-m' - the module name
 # can't be empty
 
-stap -p1 -m "" -e 'probe begin { exit() }'
+stap $@ -p1 -m "" -e 'probe begin { exit() }'
index 19730b808c15e0f3da9f86576fe071a5c1a3bbf6..fa7a97727a7c162fc968114e8c2e8843a74a262a 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 # A module name can only be composed of chars [_a-zA-Z0-9]
-stap -p1 -m x^y -e 'probe begin { exit() }'
+stap $@ -p1 -m x^y -e 'probe begin { exit() }'
index c02f97ae9616436e75a228e3cf3693fcef780566..f17cdfaaa518aad79c8c515b176b1b06c689642e 100755 (executable)
@@ -4,4 +4,4 @@
 #
 # -c CMD     start the probes, run CMD, and exit when it finishes
 # -x PID     sets target() to PID
-stap -p1 -c /bin/ls -x 100 -e 'probe begin { exit() }'
+stap $@ -p1 -c /bin/ls -x 100 -e 'probe begin { exit() }'
index d71ebebedd0613321e804144ae4e39bbf2142895..bc742b61b0b5aacdba9f8d03e8fc3d561d6191d5 100755 (executable)
@@ -8,7 +8,7 @@ export TMPDIR
 
 mkdir "$TMPDIR" || exit 0  # "success" signals a problem for parseko
 
-stap -p1 -e 'probe begin { exit() }'
+stap $@ -p1 -e 'probe begin { exit() }'
 RC=$?
 
 rmdir "$TMPDIR" || exit 0
index 197492e87ea364a9a9ee53b34add930af6674084..da79c61cf2fdee25f616ea21a16a478939980cdb 100755 (executable)
@@ -2,4 +2,4 @@
 
 # We shouldn't be able to parse a deprecated function
 
-stap --check-version --compatible=1.4 -W -p2 -e 'probe nd_syscall.accept { println(flag_str++) }'
+stap $@ --check-version --compatible=1.4 -W -p2 -e 'probe nd_syscall.accept { println(flag_str++) }'
index 9ef34f59c1c330828557459892a79e13ccb66309..9879fad240f902703a0946c4c14e421213a8963d 100755 (executable)
@@ -1,4 +1,4 @@
 #! /bin/sh
 
 # recursive 
-stap -p1 -e '$1' '$1'
+stap $@ -p1 -e '$1' '$1'
index 364bad6fabee83b3729e56bef3f51494fcc7819f..c92f70d3c51a181f7c4ca6e578b016a8ef186b57 100755 (executable)
@@ -1,4 +1,4 @@
 #! /bin/sh
 
 # recursive after the first token (PR11195)
-stap -p1 -e 'probe begin {$1}' 'x $1'
+stap $@ -p1 -e 'probe begin {$1}' 'x $1'
index b447776d9893330a17ca84d447c5935528c6dfcb..62034483fb64a89bed5b0b4103105d5124a347c7 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap --compatible=1.0 -p1 -e 'global %( systemtap_v >= "1.2" %? PASS %: "FAIL" %)'
+stap $@ --compatible=1.0 -p1 -e 'global %( systemtap_v >= "1.2" %? PASS %: "FAIL" %)'
index 631879b509d69841932a4e0d0855c2cde1341be4..8b9adf321d445ac9347f4f21e90722278f7e9483 100755 (executable)
@@ -1,4 +1,4 @@
 #! /bin/sh
 
 # PR 14360 supersedes PR 11208, except with --compatible < 2.0
-stap -p2 --compatible=1.8 -e 'probe kernel.function ("sys_" /* this comment no longer prevents string gluing */ "open") {}'
+stap $@ -p2 --compatible=1.8 -e 'probe kernel.function ("sys_" /* this comment no longer prevents string gluing */ "open") {}'
index 3390a6073a767c128801c4d9c37370dd02dfd522..a6e7e4db0f9ca06fc8b4a915184b9a2617d6e210 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p1 $SYSTEMTAP_TAPSET/indent.stp
+stap $@ -p1 $SYSTEMTAP_TAPSET/indent.stp
index 1777cc10953ecedaf19fb275ff9281312fad0c59..990ae8e3a0010ed2ae5bd6c0760d65d27a90ce86 100755 (executable)
@@ -2,4 +2,4 @@
 
 # PR11405: all the default tapsets should succeed even with -W
 
-stap -p1 -e 'probe begin {}' -W
+stap $@ -p1 -e 'probe begin {}' -W
index a97c037f360dc54aa8109b4439b2431673c297fe..98b25e04f011f23d1d32b5a12053a68bad578e97 100755 (executable)
@@ -3,4 +3,4 @@
 # PR11405: without -W, bad tapsets will be warned but shouldn't be an error
 
 TAPSET=`dirname $0`/../parseko/bad_tapset/
-stap -p1 -e 'probe begin {}' -I $TAPSET
+stap $@ -p1 -e 'probe begin {}' -I $TAPSET
index 4bb1d6ea8cc54459b4626f804231e22fbe2c0ba8..d3468ccfc531729a3b188bef9304526802a9587a 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 
 echo "output version"
-stap -V
+stap $@ -V
 if [ $? != 0 ]; then
    exit $?
 fi
 
 echo "output version and help"
-stap -h
+stap $@ -h
index 37b73303752e2e4f57a3c30bfe0a7ace60d47114..33bcbd6e157d9d986aa692a92bbbbdde066ee9bb 100755 (executable)
@@ -2,4 +2,4 @@
 
 # Make sure verbose ('-v') option is accepted.
 
-stap -v -p1 -e 'probe begin { exit() }'
+stap $@ -v -p1 -e 'probe begin { exit() }'
index caa0089e2269c89ae70916158a374aafafb25668..223555b8e4ff92e74458d7e7adb4c61d9e5d5890 100755 (executable)
@@ -2,4 +2,4 @@
 
 # We should be able to parse this function
 
-stap --check-version --compatible=1.5 -p2 -e 'probe nd_syscall.accept { println(flag_str++) }'
+stap $@ --check-version --compatible=1.5 -p2 -e 'probe nd_syscall.accept { println(flag_str++) }'
index bdd314690e1919b7c7300af85bc45ba6a486576e..c9e49db2de2aabeb713d03f398e7701d7e20307c 100755 (executable)
@@ -5,7 +5,7 @@ global
    %( kernel_vr != "2.9.77-2873NOTHING" %? /* and */
       %( kernel_v <= "3.5" %? /* and */
          %( kernel_vr == "2.3.5-2.43.54.2" %? "FAIL1" %: PASS %)
-      %: "FAIL2" %)
+      %: %( kernel_vr == "3.6-1NOTHING" %? "FAIL2" %: PASS %) %)
    %: "FAIL3" %)
 %: "FAIL4" %)
 
index 625aa85ec05127d5cebed08ca5a98c884aae362c..294a3b99e1990c57b47575d2bf116c774e93aa80 100755 (executable)
@@ -2,7 +2,7 @@
 
 # test interaction between conditionals and macro expansion
 
-stap -p2 - 1 2 3 4 5 <<'END'
+stap $@ -p2 - 1 2 3 4 5 <<'END'
 
 @define foo %( %( $# >= 5 %? @5 %: "" %) %)
 
index e97cf4bfa89c457b58bdbc13d2f4ba4bc8346c1b..7239a012b65649a793a46299730bc6d6a85a114a 100755 (executable)
@@ -2,7 +2,7 @@
 
 # test interaction between conditionals and macro expansion
 
-stap -p2 - 1 2 3 4 <<'END'
+stap $@ -p2 - 1 2 3 4 <<'END'
 
 @define foo %( %( $# >= 5 %? @5 %: "" %) %)
 
index 1d36b590479dd5c796c3a7292518be18a1e61bc2..47904d08c3c9f1ce6599ede0b5fd391113910baa 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p1 -e '$1 {log (@1.@2)}' 'probe foo' '\v\f' # <- control codes
+stap $@ -p1 -e '$1 {log (@1.@2)}' 'probe foo' '\v\f' # <- control codes
index d1df34e56bf6bc088556c4df181c07bd2676e2d9..a269294c5209020b583d245417d94826645e1145 100755 (executable)
@@ -10,6 +10,6 @@ do
   if grep -q /bin/sh $file; then
     true # can't override stap options
   else
-    stap -p1 $file
+    stap $@ -p1 $file
   fi
 done
index 41dac9a0061807d179b10a38237ac4cbf0484608..31a5d0f147eb8d41e092317e816cebe5cc73a6e9 100755 (executable)
@@ -19,7 +19,7 @@ do
          else guru=
          fi
          echo $file $guru
-          stap $guru -p1 $file | stap $guru -p1 - > /dev/null
+          stap $guru -p1 $file | stap $@ $guru -p1 - > /dev/null
       fi
    done
 done
index c876aff2b98f959912c02d150f7df0b09e27a754..5283e47aa5ba7db552713f1d31ed9225e05b46ef 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-stap -g -p2 -e '
+stap $@ -g -p2 -e '
 
 # PR 13876
 
index 25217bac7abf7f3ca48170d672b509d520b74a56..8a5c37ea1b14e8186b8ef8183e7ac050be25448f 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Verify that --ignore-vmlinux "hides" vmlinux.
 
-stap -p2 --ignore-vmlinux -e '
+stap $@ -p2 --ignore-vmlinux -e '
 probe kernel.function("printk") {
        printf("%s called\n", probefunc())
        exit()
index 8f82d54b43ef2259220a2b892c4b4fdbbfb92918..16e4e437c218bf758c16f500e707bcbea314d331 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Verify that --ignore-dwarf "hides" dwarf info.
 
-stap -p2 --ignore-dwarf -e '
+stap $@ -p2 --ignore-dwarf -e '
 probe kernel.function("printk") {
        printf("%s called\n", probefunc())
        exit()
index 6b66f2e9935829d66c9b5302b8f246f43b048acb..4e4eb528f7776cd94c4742140c8ad868767509ff 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # --kelf doesn't work if vmlinux can't be found.
 
-stap -p2 --ignore-vmlinux --kelf -e '
+stap $@ -p2 --ignore-vmlinux --kelf -e '
 probe kernel.function("printk") {
        printf("%s called\n", probefunc())
        exit()
index c20dec4f4f9297cc506427619edc6320b6a4db05..8d491b18a25ce6588c885989ab11039fb6aff85e 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # The symbol table doesn't give us enough info to probe inline functions.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.function("list_empty").inline {
        printf("%s called\n", probefunc())
        exit()
index 83fcfa3d1fad65525ac5142eba76cbfc95ee2eb9..d3bd3df6d9ac08ed36c6f651a530a1ff5ec75d97 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # The symbol table doesn't give us enough info to map source files to functions.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.function("*@kernel/printk.c") {
        printf("%s called\n", probefunc())
        exit()
index 7318cbec884e6525b0952d0dee6c803c9f901ca4..0de31c131e8a54d78c15cd6d113fdb2e0c795a50 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # The symbol table doesn't give us enough info to probe statements.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.statement("*@kernel/printk.c:639") {
        printf("probe hit: %s\n", pp())
        exit()
index b48562f9494b3761098afa967b33ce0c204e07cf..cd056fe0e8cf9916b21fe8f2be96228aadee337f 100755 (executable)
@@ -3,7 +3,7 @@
 # This should fail until/unless we expand our blacklist to cover symbols
 # in the symbol table that don't show up in dwarf.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.function("*") {
        printf("%s called\n", probefunc())
        exit()
index 4b6d9da59a6a88a5811421fb620a367ba6b0c0d9..2c10b2adba71a95e126d9461c0e4867bc1a3c878 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # The regular blacklist should thwart this.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.function("register_kprobe") {
        printf("%s called\n", probefunc())
        exit()
index e103833f1a224012606d1666e9b8f869b9a2033c..aa07c540061fea907eccf8aa7b031b73c41e59cc 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # The symbol table doesn't give us enough info to evaluate target variables.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 probe kernel.function("printk") {
        printf("%s called; fmt = \"%s\"\n", probefunc(), kernel_string($fmt))
        exit()
index d366e710ed8c1151ac5347221cd663776ff8aead..512f1ce81ed35054a2d0aec779f3f8cb6d0a36a4 100755 (executable)
@@ -1,4 +1,4 @@
 #! /bin/sh
 
 # this is an error without a -c cmd
-stap -p2 -e 'probe process.plt { exit() }'
+stap $@ -p2 -e 'probe process.plt { exit() }'
index 6b90486ad269bdc5d4ba332d311d8d36362d07d1..45830b561276c0b4f24c4b8a992f4b8bbf734c92 100755 (executable)
@@ -7,16 +7,16 @@
 # Since this is a semko, we exit 1 if they all fail correctly,
 # else we exit 0 for success or crash.
 
-stap -e 'probe syscall.read { ++$fd }' -p2 -g
+stap $@ -e 'probe syscall.read { ++$fd }' -p2 -g
 [ $? -eq 1 ] || exit 0
 
-stap -e 'probe syscall.read { $fd++ }' -p2 -g
+stap $@ -e 'probe syscall.read { $fd++ }' -p2 -g
 [ $? -eq 1 ] || exit 0
 
-stap -e 'probe syscall.read { delete $fd }' -p2 -g
+stap $@ -e 'probe syscall.read { delete $fd }' -p2 -g
 [ $? -eq 1 ] || exit 0
 
-stap -e 'probe syscall.read { ++$fd = 42 }' -p2 -g
+stap $@ -e 'probe syscall.read { ++$fd = 42 }' -p2 -g
 [ $? -eq 1 ] || exit 0
 
 exit 1
index bc1931693095962226ffcd416b3af702ad6c942f..25a2c210bffd5aa13f0580c074509d73fe938c10 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p2 -e 'probe begin { log (@1 . sprint($2)) }' hello 0xdeadbeef
+stap $@ -p2 -e 'probe begin { log (@1 . sprint($2)) }' hello 0xdeadbeef
index 677187a387fc1dd6636434f72080443f574ba0a7..b6f87073318463d43e9efc5b17528243e0e07011 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-stap -p2 --skip-badvars -e '
+stap $@ -p2 --skip-badvars -e '
 probe syscall.read {
   if ($foo == 0)
     printf ("Voila! It works..\n")
index 05023ef042b7c12f191512475f9a9e58690710d3..ede9e5f74132ad85ec57e8121ce738672bd8f6fd 100755 (executable)
@@ -3,5 +3,5 @@
 # PR11346: We shouldn't even see a warning when a would-be skip-badvars
 # replacement is masked by a @defined condition.
 
-stap -W -p2 --skip-badvars -e 'probe kernel.function("sys_getxattr")
+stap $@ -W -p2 --skip-badvars -e 'probe kernel.function("sys_getxattr")
 { printf("%s\n", user_string(@defined($pathname) ? $pathname : $path)) }'
index e5161206da227e03a3c0cdd89c7911ecdaa0cb4d..4e211bb70785eb97516cd2c337d20e516b4b240f 100755 (executable)
@@ -20,5 +20,5 @@ main (void)
 }
 ' | gcc -g -o $TESTBIN -xc - || clean_exit $?
 
-stap -L 'process("'$TESTBIN'").function("foo")' | grep '\$p:struct point'
+stap $@ -L 'process("'$TESTBIN'").function("foo")' | grep '\$p:struct point'
 clean_exit $?
index a44ee2c049e0ef3fea95d679f365707476e36be8..3caad3dde3f338a1e028d72684236979891dcecb 100755 (executable)
@@ -8,7 +8,7 @@
 # NB: This is abusing the fact that -l/-L work by wrapping the input string
 # with "probe " and "{}"
 
-stap -L '
+stap $@ -L '
 my_syscall.poll = kernel.function("sys_poll").call
 {
   timeout = (@defined($timeout_msecs) ? $timeout_msecs : $timeout)
index dd7f71edbb9f6b2b6e3c22a6ab1f27a86ce7cf76..fca5e0d567b2184897109b41758641e2ec21237c 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p2 -I${SRCDIR}/testsuite/semlib -e 'probe begin { a = f1 (); }'
+stap $@ -p2 -I${SRCDIR}/testsuite/semlib -e 'probe begin { a = f1 (); }'
index b95eefcf6f23cacf446c04b1cadb45668bd94685..c3833291e878ae5d6e5f78a8d8a6f829f6a880a8 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p2 -I${SRCDIR}/testsuite/semlib -e 'probe begin { g2[1] = 0 }'
+stap $@ -p2 -I${SRCDIR}/testsuite/semlib -e 'probe begin { g2[1] = 0 }'
index c7a08f2a61cb2c01a8d2d843372394363ad58819..3e08e5b368b0353cd0031a94c77313d9769051d3 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 global nret
 
 probe syscall.*.return {
index b6df44e5a318de69bf6cfb21a4955678871a2ed1..003d28e1bcfdbecfcd6b39d109a2e13cc2caebda 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 global ncall
 
 /*
index 6f8b36294932d696ab8c724b66b3c657e3de01db..3f0fc1d8b72af6b8f92e1644e35770e0a738a127 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Test function-name wildcard.
 
-stap -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
+stap $@ -p2 --ignore-vmlinux --kmap=/proc/kallsyms -e '
 global ncall
 
 probe kernel.function("sys_*") {
index 84438fdaeed1b30270152b8085f79616173be4eb..2f5991193963398f5a14a87e4a8ff2cf73e23cb6 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Like nodwf01.stp, but extract the symbol table from vmlinux.
 
-stap -p2 --ignore-dwarf --kelf -e '
+stap $@ -p2 --ignore-dwarf --kelf -e '
 global nret
 
 probe syscall.*.return {
index 8c9dda2cea5a01ff7a1f523e8728fcde9be4039e..f5514f0748653812e1d69d59120b03dbf18d6001 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Like nodwf02.stp, but extract the symbol table from vmlinux.
 
-stap -p2 --ignore-dwarf --kelf -e '
+stap $@ -p2 --ignore-dwarf --kelf -e '
 global ncall
 
 /*
index d27e3f843651827aa1523f4993f2138a6cf2d5c0..3e2af6205f12fba09c495f6855dd589a220a13a9 100755 (executable)
@@ -3,7 +3,7 @@
 # Test function-name wildcard.
 # Like nodwf03.stp, but extract the symbol table from vmlinux.
 
-stap -p2 --ignore-dwarf --kelf -e '
+stap $@ -p2 --ignore-dwarf --kelf -e '
 global ncall
 
 probe kernel.function("sys_*") {
index d886ac79259d266ba87e28ac74709b1bba66d55d..5a150f08044bd8aeed41119664d00e2fafd04dc1 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Test module-name and function-name wildcards.
 
-stap -p2 --ignore-dwarf --kelf -e '
+stap $@ -p2 --ignore-dwarf --kelf -e '
 global ncall
 
 probe module("*").function("*_probe") {
index 22253d33f1136faf837417e7a2b0db8adfd8f344..a6b05510ffe1dd32588e2c2d203aa4b171a924a0 100755 (executable)
@@ -1,4 +1,4 @@
 #! /bin/sh
 
 # this should read the plt from -c stap
-stap -p2 -e 'probe process.plt { exit() }' -c stap
+stap $@ -p2 -e 'probe process.plt { exit() }' -c stap
index a55a3d0dcabc46ceba0898da95e6cc5bfd95152a..29c69a1a755f731584689af7721e246c82921f65 100755 (executable)
@@ -3,5 +3,5 @@
 # PR11808
 # This stap command may or may not fail, depending on function/var
 # availability.  It should not abort() though.
-stap -e 'probe kernel.function("next_tgid").return { println($return->tgid) }' -p2
+stap $@ -e 'probe kernel.function("next_tgid").return { println($return->tgid) }' -p2
 [ "$?" -le 1 ]
index f1eb477285b51ed4424ae78166abb78ac88bfea4..e4249d9bf564935e34f4b324a43b2e5bd63e7615 100755 (executable)
@@ -3,6 +3,6 @@
 # PR11809
 # This stap command may or may not fail, depending on function/var
 # availability.  When it does fail, it should not be with "stack underflow".
-stap -e 'probe kernel.function("next_tgid") { println($iter->tgid) }' -p2 2>&1 |
+stap $@ -e 'probe kernel.function("next_tgid") { println($iter->tgid) }' -p2 2>&1 |
 grep "stack underflow"
 [ "$?" -eq 1 ]
index 9a0ca7c48df35f8ee63ff5d8d4b1b59b28f70f53..49297c6cc1bb67bad3a1b0b363892296f9fb2541 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/sh
 # Per bz6588, this should get through the semantic pass without warnings.
-stap -p2 -e 'probe syscall.*.return { printf("%s returns %s\n", name, retstr) }' 2>&1 | grep -q WARNING && exit 1
+stap $@ -p2 -e 'probe syscall.*.return { printf("%s returns %s\n", name, retstr) }' 2>&1 | grep -q WARNING && exit 1
 exit 0
index 0ea2fe749b29b873148de101b79e7e5660711522..d68184ffe874a23268fc92a659a9cea4b1e2d867 100755 (executable)
@@ -9,6 +9,6 @@ do
   if grep -q /bin/sh $file; then
     true # can't override stap options
   else
-    stap -p2 $file
+    stap $@ -p2 $file
   fi
 done
index 73dbb3bfa29e63001bab864fa15593a946d1c10b..958be6166a7e03cdfbc820aa4606ebb76e2a4f18 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 set -e
-stap -wp2 -e '
+stap $@ -wp2 -e '
 probe kernel.function("*") {}
 probe module("*").function("*") {}
 probe kernel.function("*").call {}
index fadca484f29df13f3d33b39e5e7a81532ad43311..0ee980be7f4465d3e6efd0e1442a39b6b009ab25 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 
 set -e
-stap -p2 -e 'probe begin {foo$1$2$3}' # $-expansion only at token head
-stap -p2 -e 'probe $1 $2' 'syscall.open,begin' '{log ("hello\n")}'
-stap -p2 -e 'probe begin {@1 @2}' 'syscall.open,begin' '{log ("hello\n")}'
-stap -p2 -e 'probe begin {log (@1.@2)}' 'syscall.open,begin' '{log ("hello\n")}'
+stap $@ -p2 -e 'probe begin {foo$1$2$3}' # $-expansion only at token head
+stap $@ -p2 -e 'probe $1 $2' 'syscall.open,begin' '{log ("hello\n")}'
+stap $@ -p2 -e 'probe begin {@1 @2}' 'syscall.open,begin' '{log ("hello\n")}'
+stap $@ -p2 -e 'probe begin {log (@1.@2)}' 'syscall.open,begin' '{log ("hello\n")}'
 
index a5560511ddad3635cc2b3892b8deb80e612c1356..98acd5f37c7c3643fce0f9bede0fa7fc01d11f38 100644 (file)
@@ -1,13 +1,21 @@
 set self buildko
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc < 0} {
-       # crashed
-       fail $test
-    } else {
-       setup_xfail *-*-*
-       if {$rc == 0} { pass $test } else { fail $test }
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           lappend test "($runtime)"
+       } else {
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc < 0} {
+           # crashed
+           fail $test
+       } else {
+           setup_xfail *-*-*
+           if {$rc == 0} { pass $test } else { fail $test }
+       }
     }
 }
diff --git a/testsuite/systemtap.pass1-4/buildok-dyninst.exp b/testsuite/systemtap.pass1-4/buildok-dyninst.exp
new file mode 100644 (file)
index 0000000..c3f4ad9
--- /dev/null
@@ -0,0 +1,186 @@
+set self buildok
+set runtime dyninst
+
+if {![dyninst_p]} {
+    untested "$self ($runtime) : no $runtime support found"
+    return
+}
+
+foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+    set test $self/[file tail $file]
+    verbose -log "Running $file ($runtime)"
+    set rc [stap_run_batch $file --runtime=$runtime]
+
+    # Use setup_kfail <pr number> <target triplet> for known bugs.
+    #
+    # (Note that tcl doesn't like comments directly inside the switch
+    # statement, but comments can go in sub-blocks.)
+    switch $test {
+       buildok/alias_suffixes02.stp -
+       buildok/alias_suffixes03.stp -
+       buildok/alias_suffixes04.stp -
+       buildok/alias_suffixes05.stp -
+       buildok/alias_suffixes06.stp -
+       buildok/atomic.stp -
+       buildok/aux_syscalls-embedded.stp -
+       buildok/conversions-embedded.stp -
+       buildok/conversions-guru-embedded.stp -
+       buildok/conversions.stp -
+       buildok/dentry-embedded.stp -
+       buildok/dev-embedded.stp -
+       buildok/eighteen.stp -
+       buildok/fifteen.stp -
+       buildok/five.stp -
+       buildok/fortyfive.stp -
+       buildok/fortysix.stp -
+       buildok/fortytwo.stp -
+       buildok/guru.stp -
+       buildok/hwbkpt.stp -
+       buildok/inet_sock-embedded.stp -
+       buildok/ioblock-all-probes.stp -
+       buildok/ioblock-detailed.stp -
+       buildok/ioblock-embedded.stp -
+       buildok/ioscheduler-all-probes.stp -
+       buildok/ioscheduler-detailed.stp -
+       buildok/ioscheduler-embedded.stp -
+       buildok/ip-embedded.stp -
+       buildok/ipmib-all-probes.stp -
+       buildok/ipmib-detailed.stp -
+       buildok/ipmib-embedded.stp -
+       buildok/kprocess-all-probes.stp -
+       buildok/kprocess-detailed.stp -
+       buildok/kprocess-embedded.stp -
+       buildok/linuxmib-all-probes.stp -
+       buildok/linuxmib-detailed.stp -
+       buildok/logging-embedded.stp -
+       buildok/maxactive01.stp -
+       buildok/memory-all-probes.stp -
+       buildok/memory-detailed.stp -
+       buildok/memory-embedded.stp -
+       buildok/memory-mmap.stp -
+       buildok/memory.stp -
+       buildok/nd_syscalls-all-probes.stp -
+       buildok/nd_syscalls-arch-detailed.stp -
+       buildok/nd_syscalls-detailed.stp -
+       buildok/nd_syscalls2-detailed.stp -
+       buildok/netfilter01.stp -
+       buildok/netfilter02.stp -
+       buildok/netfilter03.stp -
+       buildok/netfilter04.stp -
+       buildok/networking-all-probes.stp -
+       buildok/networking-detailed.stp -
+       buildok/networking-embedded.stp -
+       buildok/newlocals01.stp -
+       buildok/nfs-all-probes.stp -
+       buildok/nfs-detailed.stp -
+       buildok/nfs-embedded.stp -
+       buildok/nfs-fop.check_flags.stp -
+       buildok/nfs_proc-detailed.stp -
+       buildok/nfs_proc-embedded.stp -
+       buildok/nfsd-all-probes.stp -
+       buildok/nfsd-detailed.stp -
+       buildok/nfsd-embedded.stp -
+       buildok/nfsderrno-embedded.stp -
+       buildok/oldlocals02.stp -
+       buildok/pr10678.stp -
+       buildok/pr13284.stp -
+       buildok/pretty.stp -
+       buildok/proc_mem-embedded.stp -
+       buildok/process_test.stp -
+       buildok/procfs01.stp -
+       buildok/queue_stats-embedded.stp -
+       buildok/rpc-all-probes.stp -
+       buildok/rpc-detailed.stp -
+       buildok/rpc-embedded.stp -
+       buildok/scheduler-all-probes.stp -
+       buildok/scheduler-cpu_off.stp -
+       buildok/scheduler-ctxswitch.stp -
+       buildok/scheduler-detailed.stp -
+       buildok/scheduler-embedded.stp -
+       buildok/scsi-all-probes.stp -
+       buildok/scsi-embedded.stp -
+       buildok/seven.stp -
+       buildok/seventeen.stp -
+       buildok/signal-all-probes.stp -
+       buildok/signal-check_ignored.stp -
+       buildok/signal-detailed.stp -
+       buildok/signal-embedded.stp -
+       buildok/signal-handle.stp -
+       buildok/six.stp -
+       buildok/socket-all-probes.stp -
+       buildok/socket-detailed.stp -
+       buildok/socket-embedded.stp -
+       buildok/stopwatches.stp -
+       buildok/syscall.stp -
+       buildok/syscalls-arch-detailed.stp -
+       buildok/syscalls-detailed.stp -
+       buildok/syscalls2-detailed.stp -
+       buildok/tcp-all-probes.stp -
+       buildok/tcp-detailed.stp -
+       buildok/tcp-embedded.stp -
+       buildok/tcp_test.stp -
+       buildok/tcpmib-all-probes.stp -
+       buildok/tcpmib-detailed.stp -
+       buildok/tcpmib-embedded.stp -
+       buildok/thirteen.stp -
+       buildok/thirtyone.stp -
+       buildok/thirtytwo.stp -
+       buildok/three.stp -
+       buildok/tty-detailed.stp -
+       buildok/tty-resize.stp -
+       buildok/twenty.stp -
+       buildok/twentyeight.stp -
+       buildok/twentyfive.stp -
+       buildok/twentynine.stp -
+       buildok/twentyseven.stp -
+       buildok/twentythree.stp -
+       buildok/twentytwo.stp -
+       buildok/two.stp -
+       buildok/udp-all-probes.stp -
+       buildok/udp-detailed.stp -
+       buildok/udp_test.stp -
+       buildok/vfs-all-probes.stp -
+       buildok/vfs-detailed.stp -
+       buildok/vfs-embedded.stp -
+       buildok/xtime.stp {
+           # Use setup_kfail DYNINST <target triplet> for known
+           # failures when running with the dyninst runtime (scripts
+           # that use kernel features or kernel-only tapset
+           # functions).
+           if {$rc != 0} { setup_kfail DYNINST *-*-* } }
+    }
+
+    # tests that need more investigation/work:
+    # - buildok/context-embedded.stp
+    # - buildok/context-symbols-embedded.stp
+    # - buildok/context-unwind-embedded.stp    
+    # - buildok/fourteen-plus.stp - no timer probes
+    # - buildok/fourteen.stp - no timer probes
+    # - buildok/gtod_init.stp - no gettimeofday
+    # - buildok/gtod_noinit.stp - ditto
+    # - buildok/histogram_operator_in.stp - no timer probes
+    # - buildok/indent.stp - missing 'execname'
+    # - buildok/iterate_histogram_buckets.stp - no timer probes
+    # - buildok/per-process-syscall.stp - process.syscall
+    #   probes implementable?
+    # - buildok/pretty-uprobes.stp - needs _stp_strncpy_from_user
+    # - buildok/print_histogram_entry.stp - no timer probes
+    # - buildok/print_histograms.stp - no timer probes
+    # - buildok/printf.stp
+    # - buildok/stat_extract.stp - missing timer probes
+    # - buildok/string-embedded.stp
+    # - buildok/system-embedded.stp
+    # - buildok/task-embedded.stp - should these functions
+    #   work? task_current, etc.
+    # - buildok/task_test.stp
+    # - buildok/task_time-embedded.stp
+    # - buildok/timestamp-embedded.stp
+    # - buildok/timestamp_monotonic-embedded.stp
+    # - buildok/twentyeightprime.stp - could
+    #   process.statement.absolute probes work?
+    # - buildok/ucontext-embedded.stp
+    # - buildok/ucontext-symbols-embedded.stp
+    # - buildok/ucontext-unwind-embedded.stp
+    # - buildok/utrace.stp
+    if {$rc == 0} { pass "$test ($runtime)" } else { fail "$test ($runtime)" }
+}
index 658a295778e10bd8047137f7578feff218fd639e..7455b8e32d41dbd347b98fecdd28fc5f3189c432 100644 (file)
@@ -1,13 +1,21 @@
 set self parseko
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc < 0} {
-       # crashed
-       fail $test
-    } else {
-       setup_xfail *-*-*
-       if {$rc == 0} { pass $test } else { fail $test }
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           lappend test "($runtime)"
+       } else {
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc < 0} {
+           # crashed
+           fail $test
+       } else {
+           setup_xfail *-*-*
+           if {$rc == 0} { pass $test } else { fail $test }
+       }
     }
 }
index e96e74f2fcac116387327b895abf0c48250a967f..1fab31f8c01bca16444a1f6050c259d35060ee07 100644 (file)
@@ -1,7 +1,33 @@
 set self parseok
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc == 0} { pass $test } else { fail $test }
+
+proc dyninst_kfails {test} {
+    # Use setup_kfail <pr number> <target triplet> for known bugs.
+    #
+    # (Note that tcl doesn't like comments directly inside the switch
+    # statement, but comments can go in sub-blocks.)
+    switch $test {
+       parseok/deprecated01.stp {
+           # Use setup_kfail DYNINST <target triplet> for known
+           # failures when running with the dyninst runtime (scripts
+           # that use kernel features or kernel-only tapset
+           # functions).
+           setup_kfail DYNINST *-*-*
+       }
+    }
+}
+
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           if {$rc != 0} { ${runtime}_kfails $test }
+           lappend test "($runtime)"
+       } else {
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc == 0} { pass $test } else { fail $test }
+    }
 }
index 5cf21f4296e5dd7f7bf62155ea76729de1e5135c..ca1c0c8dc7ccfc2a732847ebb10ff8e41e5f85b7 100644 (file)
@@ -1,19 +1,27 @@
 set self semko
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    switch $test {
-       semko/utrace.stp {
-           # These tests require a system without utrace.
-           if {[utrace_p]} { untested $test; continue } }
-    }
-
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc < 0} {
-       # crashed
-       fail $test
-    } else {
-       setup_xfail *-*-*
-       if {$rc == 0} { pass $test } else { fail $test }
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           lappend test "($runtime)"
+       } else {
+           switch $test {
+               semko/utrace.stp {
+                   # These tests require a system without utrace.
+                   if {[utrace_p]} { untested $test; continue } }
+           }
+           
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc < 0} {
+           # crashed
+           fail $test
+       } else {
+           setup_xfail *-*-*
+           if {$rc == 0} { pass $test } else { fail $test }
+       }
     }
 }
index 700eb92514091a37718f3eb28d45377432435a53..70e56b2d804ba79c3eefd19089cbde150a173336 100644 (file)
@@ -1,29 +1,75 @@
 set self semok
-set uprobes_p [uprobes_p]
-set utrace_p [utrace_p]
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    switch $test {
-       semok/thirtysix-utrace.stp -
-       semok/utrace01.stp {
-           # These tests need utrace
-           if {!$utrace_p} { untested $test; continue } }
 
-       semok/bz11911.stp -
-       semok/mangled.stp -
-       semok/pretty-uprobes.stp {
-           # These tests need uprobes
-           if {!$uprobes_p} { untested $test; continue } }
-
-       semok/plt1.stp -
-       semok/plt2.stp {
-           # The .plt tests need uprobes and x86
-           if {![regexp "^(x86_64|i.86)$" $::tcl_platform(machine)]} {
-               untested $test; continue }
-           if {!$uprobes_p} { untested $test; continue } }
+proc dyninst_kfails {test} {
+    # Use setup_kfail <pr number> <target triplet> for known bugs.
+    #
+    # (Note that tcl doesn't like comments directly inside the switch
+    # statement, but comments can go in sub-blocks.)
+    switch $test {
+       semok/badvar.stp -
+       semok/doubleglob.stp -
+       semok/entry01.stp -
+       semok/entry02.stp -
+       semok/entry03.stp -
+       semok/entry04.stp -
+       semok/gurufunc.stp -
+       semok/kretprobe-data.stp -
+       semok/nodwf01.stp -
+       semok/nodwf02.stp -
+       semok/nodwf03.stp -
+       semok/nodwf04.stp -
+       semok/nodwf05.stp -
+       semok/nodwf06.stp -
+       semok/nodwf07.stp -
+       semok/pretty.stp -
+       semok/pretty2.stp -
+       semok/thirtysix.stp -
+       semok/thirtytwo.stp -
+       semok/twentyfive.stp -
+       semok/twentyfour.stp {
+           # Use setup_kfail DYNINST <target triplet> for known
+           # failures when running with the dyninst runtime (scripts
+           # that use kernel features or kernel-only tapset
+           # functions).
+           setup_kfail DYNINST *-*-*
+       }
     }
+    # semok/thirtysix-utrace.stp - could it be made to work
+}
 
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc == 0} { pass $test } else { fail $test }
+set uprobes_p [uprobes_p]
+set utrace_p [utrace_p]
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           if {$rc != 0} { ${runtime}_kfails $test }
+           lappend test "($runtime)"
+       } else {
+           switch $test {
+               semok/thirtysix-utrace.stp -
+               semok/utrace01.stp {
+                   # These tests need utrace
+                   if {!$utrace_p} { untested $test; continue } }
+               
+               semok/bz11911.stp -
+               semok/mangled.stp -
+               semok/pretty-uprobes.stp {
+                   # These tests need uprobes
+                   if {!$uprobes_p} { untested $test; continue } }
+               
+               semok/plt1.stp -
+               semok/plt2.stp {
+                   # The .plt tests need uprobes and x86
+                   if {![regexp "^(x86_64|i.86)$" $::tcl_platform(machine)]} {
+                       untested $test; continue }
+                   if {!$uprobes_p} { untested $test; continue } }
+           }
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc == 0} { pass $test } else { fail $test }
+    }
 }
index abda0286f18d2d263be528c7f3626efeff206842..75b9c15574908ab95158de7a1d5e65f5045ed411 100644 (file)
@@ -1,13 +1,21 @@
 set self transko
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc < 0} {
-       # crashed
-       fail $test
-    } else {
-       setup_xfail *-*-*
-       if {$rc == 0} { pass $test } else { fail $test }
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           lappend test "($runtime)"
+       } else {
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc < 0} {
+           # crashed
+           fail $test
+       } else {
+           setup_xfail *-*-*
+           if {$rc == 0} { pass $test } else { fail $test }
+       }
     }
 }
index 0b94ee9c04c3676bfb07d5eda3220064823cebb5..c05d588468199b0bb514de6aff0bb3358cad6492 100644 (file)
@@ -1,7 +1,15 @@
 set self transok
-foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
-    set test $self/[file tail $file]
-    verbose -log "Running $file"
-    set rc [stap_run_batch $file]
-    if {$rc == 0} { pass $test } else { fail $test }
+foreach runtime [get_runtime_list] {
+    foreach file [lsort [glob -nocomplain $srcdir/$self/*.stp]] {
+       set test $self/[file tail $file]
+       if {$runtime != ""} {
+           verbose -log "Running $file ($runtime)"
+           set rc [stap_run_batch $file --runtime=$runtime]
+           lappend test "($runtime)"
+       } else {
+           verbose -log "Running $file"
+           set rc [stap_run_batch $file]
+       }
+       if {$rc == 0} { pass $test } else { fail $test }
+    }
 }
index 7917a1e5fca34e061e2cc2dc091f109fbe29b69a..19c8c0de1af8ca19a4cd9c903259771d3a84afc7 100755 (executable)
@@ -9,8 +9,8 @@ do
   if grep -q /bin/sh $file; then
     true # can't override stap options
   elif head -n 1 $file | grep -q g ; then
-    stap -gp3 $file
+    stap $@ -gp3 $file
   else
-    stap -p3 $file
+    stap $@ -p3 $file
   fi
 done
index 7fb8e98690aa049679d6e13caf75fa9570e269f9..ce95386a47796f6148ae0c4ed49e75b7ea0b397e 100755 (executable)
@@ -1,3 +1,3 @@
 #! /bin/sh
 
-stap -p3 -d /zoo/poo/in/the/loo --ldd -e 'probe begin {exit()}' >/dev/null
+stap $@ -p3 -d /zoo/poo/in/the/loo --ldd -e 'probe begin {exit()}' >/dev/null
This page took 0.103586 seconds and 5 git commands to generate.