From a3ee6543b34b773568961e3d48f6ea30e65bc59c Mon Sep 17 00:00:00 2001 From: James Bottomley Date: Tue, 8 Jul 2008 12:38:58 -0500 Subject: Add test suite for declaration resolution This adds the test declaration.exp which checks that specific named declarations inside the kernel both fail and succeed. We get the failure by only using a single compile unit which is currently known to have the structure stubbed. We get exactly the same declaration to succeed by adding a CU that is known to have the declaration. Signed-off-by: James Bottomley --- testsuite/systemtap.base/declaration.exp | 19 +++++++++++++++ testsuite/systemtap.base/marker.exp | 40 -------------------------------- 2 files changed, 19 insertions(+), 40 deletions(-) create mode 100644 testsuite/systemtap.base/declaration.exp (limited to 'testsuite/systemtap.base') diff --git a/testsuite/systemtap.base/declaration.exp b/testsuite/systemtap.base/declaration.exp new file mode 100644 index 00000000..16498819 --- /dev/null +++ b/testsuite/systemtap.base/declaration.exp @@ -0,0 +1,19 @@ +# Declaration tests. Specifically looking for resolution of +# DW_AT_declaration from another module + +set TEST_NAME "RESOLVE_FAIL" + +# this test just makes sure $device is still stubbed with DW_AT_declaration +set failscript { + probe\ module(\"libata\").function(\"ata_qc_issue\")\ \{\ print(\$qc->\$scsicmd->\$device->\$host->\$host_no)\ \}; +} + +stap_compile $TEST_NAME 0 $failscript + +set TEST_NAME "RESOLVE_PASS" + +set passscript { + probe\ module(\"scsi_mod\").function(\"scsi_request_fn\")\ \{print(\$q)\} +} + +stap_compile $TEST_NAME 1 [concat $passscript $failscript ] \ No newline at end of file diff --git a/testsuite/systemtap.base/marker.exp b/testsuite/systemtap.base/marker.exp index 857fa5d2..89c0b8c3 100644 --- a/testsuite/systemtap.base/marker.exp +++ b/testsuite/systemtap.base/marker.exp @@ -3,46 +3,6 @@ # trigger a specific marker). So, we'll try to compile lots of tests # to do as much as we can. -# 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" - } - } -} - # Initialize variables set kernel_markers_found 0 set kernel_marker_names {} -- cgit From 07bd3b82ab643ba1f889c07132074dd0cd8c2d1d Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 9 Jul 2008 11:16:36 -0400 Subject: clarify dejagnu test case name for empty-struct changes --- testsuite/systemtap.base/declaration.exp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'testsuite/systemtap.base') diff --git a/testsuite/systemtap.base/declaration.exp b/testsuite/systemtap.base/declaration.exp index 16498819..e47898a7 100644 --- a/testsuite/systemtap.base/declaration.exp +++ b/testsuite/systemtap.base/declaration.exp @@ -1,7 +1,7 @@ # Declaration tests. Specifically looking for resolution of # DW_AT_declaration from another module -set TEST_NAME "RESOLVE_FAIL" +set TEST_NAME "empty-struct resolve-fail" # this test just makes sure $device is still stubbed with DW_AT_declaration set failscript { @@ -10,10 +10,10 @@ set failscript { stap_compile $TEST_NAME 0 $failscript -set TEST_NAME "RESOLVE_PASS" +set TEST_NAME "empty-struct resolve-pass" set passscript { probe\ module(\"scsi_mod\").function(\"scsi_request_fn\")\ \{print(\$q)\} } -stap_compile $TEST_NAME 1 [concat $passscript $failscript ] \ No newline at end of file +stap_compile $TEST_NAME 1 [concat $passscript $failscript ] -- cgit