diff options
-rwxr-xr-x | dtrace.in | 14 | ||||
-rw-r--r-- | testsuite/systemtap.base/dtrace.exp | 23 |
2 files changed, 34 insertions, 3 deletions
@@ -137,6 +137,7 @@ i = 1 build_header = False build_source = False add_typedefs = False +use_cpp = False h_ext = '.h' filename = "" while (i < len (sys.argv)): @@ -146,6 +147,8 @@ while (i < len (sys.argv)): elif (sys.argv[i] == "-s"): i += 1 s_filename = sys.argv[i] + elif (sys.argv[i] == "-C"): + use_cpp = True elif (sys.argv[i] == "-h"): build_header = True elif (sys.argv[i] == "-G"): @@ -159,6 +162,14 @@ if (build_header == False and build_source == False): usage() sys.exit(1) +if (s_filename != "" and use_cpp): + (d,fn) = mkstemp(suffix=".d") + retcode = call(["cpp", s_filename, fn]) + if (retcode != 0): + print "\"cpp s_filename\" failed" + usage() + sys.exit(1) + s_filename = fn if (filename == ""): if (s_filename != ""): (filename,ext) = os.path.splitext(s_filename) @@ -181,3 +192,6 @@ elif (build_source): f.close() call(["gcc", "-fPIC", "-I.", "-I@prefix@/include", "-g", "-c", fn, "-o", filename + ".o"], shell=False) os.remove(fn) +if (use_cpp): + os.remove(s_filename) + diff --git a/testsuite/systemtap.base/dtrace.exp b/testsuite/systemtap.base/dtrace.exp index 11a4b608..35a5acbf 100644 --- a/testsuite/systemtap.base/dtrace.exp +++ b/testsuite/systemtap.base/dtrace.exp @@ -5,7 +5,7 @@ set test "dtrace" if {[installtest_p]} { set dtrace $env(SYSTEMTAP_PATH)/dtrace } else { - set dtrace $srcdir/../dtrace + set dtrace ../dtrace } exec mkdir /tmp/dtrace @@ -13,9 +13,12 @@ exec mkdir /tmp/dtrace set dpath "/tmp/dtrace/test.d" set fp [open $dpath "w"] puts $fp " +#define INT16 short +#define INT32 int + provider tstsyscall { - probe test(short arg1, int arg2, int arg3, int arg4, struct astruct arg5) + probe test(INT16 arg1, INT32 arg2, INT32 arg3, INT32 arg4, struct astruct arg5) } " close $fp @@ -57,7 +60,7 @@ if {[file exists XXX]} then { } else { fail "dtrace -h -o XXX" } -exec rm -f XXX.h +exec rm -f XXX verbose -log "$dtrace -G -s $dpath -o /tmp/XXX.o" exec $dtrace -G -s $dpath -o /tmp/XXX.o @@ -113,6 +116,20 @@ if {[file exists /tmp/dtrace/test.h]} then { } exec rm -f /tmp/dtrace/test.o +set ok 0 +verbose -log "$dtrace -C -h -s $dpath -o XXX.h" +exec $dtrace -C -h -s $dpath -o XXX.h +spawn cat XXX.h +expect { + "short arg1, int arg2, int arg3, int arg4" {incr ok} +} +if { $ok != 0} { + pass "dtrace -C -h -o XXX.h" +} else { + fail "dtrace -C -h -o XXX.h" +} +exec rm -f XXX.h + exec /bin/rm -r /tmp/dtrace # ----------------------------------------------------------------- |