summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorfche <fche>2007-06-06 00:40:13 +0000
committerfche <fche>2007-06-06 00:40:13 +0000
commite41b2484eaf36459eb9e80080c1ec3da277c9e36 (patch)
tree2dcdc4699b53353ce376ff08709e4bf223502d11 /testsuite
parent357081d3ced4beb537cd1ec49ae71e8a8de2db64 (diff)
downloadsystemtap-steved-e41b2484eaf36459eb9e80080c1ec3da277c9e36.tar.gz
systemtap-steved-e41b2484eaf36459eb9e80080c1ec3da277c9e36.tar.xz
systemtap-steved-e41b2484eaf36459eb9e80080c1ec3da277c9e36.zip
2007-06-05 Frank Ch. Eigler <fche@redhat.com>
PR 3331. * loc2c.c (emit_base_fetch): Emit size/signedness cast for every low-level fetch. (translate_base_fetch, c_translate_fetch, c_translate_store, c_translate_pointer): Fetch & pass the $target signedness. 2007-06-05 Frank Ch. Eigler <fche@elastic.org> PR 3331. * systemtap.base/deref2.*: New test, disabled.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/ChangeLog5
-rw-r--r--testsuite/systemtap.base/deref2.exp29
-rw-r--r--testsuite/systemtap.base/deref2.stp9
3 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 35d660c0..7f6eadb3 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-05 Frank Ch. Eigler <fche@elastic.org>
+
+ PR 3331.
+ * systemtap.base/deref2.*: New test, disabled.
+
2007-06-04 Frank Ch. Eigler <fche@elastic.org>
PR 4589.
diff --git a/testsuite/systemtap.base/deref2.exp b/testsuite/systemtap.base/deref2.exp
new file mode 100644
index 00000000..6ee85d10
--- /dev/null
+++ b/testsuite/systemtap.base/deref2.exp
@@ -0,0 +1,29 @@
+set test "deref2"
+
+# XXX: the load-generation code below doesn't trigger reliably under dejagnu
+untested $test; continue
+
+
+if {![installtest_p]} { untested $test; continue }
+
+# This is asking perl to consume all of its file handles with sockets.
+# When there are no more, sock_alloc_fd will start returning errors (negatives).
+set load_gen_cmd {perl -e {use Socket; while ($i < 65536) { $i++; socket $Foo[$i], AF_UNIX, SOC_STREAM, PF_UNSPEC;} print "Toodaloo\n"; }}
+
+spawn stap $srcdir/$subdir/deref2.stp
+
+set pos 0
+set neg 0
+expect {
+ start\r\n {
+ catch { eval exec $load_gen_cmd }
+ verbose -log "starting loadgen"
+ }
+ pos\r\n { verobse -log "pos"; incr pos; exp_continue }
+ neg\r\n { verbose -log "neg"; incr neg; exp_continue }
+ eof { }
+ timeout { }
+}
+wait
+
+if {$neg > 0} { pass "$test ($pos $neg)" } else { fail "$test ($pos $neg)" }
diff --git a/testsuite/systemtap.base/deref2.stp b/testsuite/systemtap.base/deref2.stp
new file mode 100644
index 00000000..aa59490c
--- /dev/null
+++ b/testsuite/systemtap.base/deref2.stp
@@ -0,0 +1,9 @@
+# PR 3331
+
+# It's just an ordinary function that returns a 4-byte signed value,
+# even on a 64-bit hosts.
+probe kernel.function("sock_alloc_fd").return {
+ log ($return < 0 ? "neg" : "pos")
+}
+probe timer.s (5) { exit () }
+probe begin { log ("start") } \ No newline at end of file