summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.base/print.stp
diff options
context:
space:
mode:
authorjistone <jistone>2007-08-17 01:54:28 +0000
committerjistone <jistone>2007-08-17 01:54:28 +0000
commit3cb170588c9b180fb4d28af04e44ac87481560a7 (patch)
tree8cf0c1f2f065c640052d6f8b90ee6f0300f12a85 /testsuite/systemtap.base/print.stp
parentbf49da0383481795d0a8d608beee27f6b1a251dc (diff)
downloadsystemtap-steved-3cb170588c9b180fb4d28af04e44ac87481560a7.tar.gz
systemtap-steved-3cb170588c9b180fb4d28af04e44ac87481560a7.tar.xz
systemtap-steved-3cb170588c9b180fb4d28af04e44ac87481560a7.zip
2007-08-16 Josh Stone <joshua.i.stone@intel.com>
PR 4591 * parse.cxx (parser::parse_symbol): Tweak 'print' matching to allow all the new variants with printd and println. * staptree.h (struct print_format): Add fields for the new print variants, and parse_print() to help matching. * staptree.cxx (print_format::parse_print): New static method to match the print variants and determine their properties. (print_format::print): Handle the new print types. (deep_copy_visitor::visit_print_format): Copy the new fields. * translate.cxx (c_unparser::visit_print_format): Insert delims and newlines where appropriate for new print functions. * stap1.in: Document the new print functions. testsuite/ * lib/stap_run.exp: Make sure to match the entire output, in case there are multiple pass/fail messages. * buildok/printf.stp: Add lines for new print variants. * parseko/printd01.stp: Make sure that bad printd calls are handled. * parseko/printd02.stp: Ditto. * parseko/printd03.stp: Ditto. * parseko/printd04.stp: Ditto. * systemtap.base/print.stp: Try a bunch of different print calls. * systemtap.base/print.exp: Driver for above.
Diffstat (limited to 'testsuite/systemtap.base/print.stp')
-rw-r--r--testsuite/systemtap.base/print.stp39
1 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/print.stp b/testsuite/systemtap.base/print.stp
new file mode 100644
index 00000000..e1b64c35
--- /dev/null
+++ b/testsuite/systemtap.base/print.stp
@@ -0,0 +1,39 @@
+/*
+ * print.stp
+ *
+ * Test that all the print statements work
+ */
+
+global s1, s2, s3
+
+probe begin
+{
+ log("systemtap starting probe")
+ s1 = "systemtap"
+ s2 = "test"
+ s3 = "success"
+}
+
+probe end
+{
+ log("systemtap ending probe")
+
+ print(s1, " ", s2, " ", s3, "\n")
+ print(sprint(s1, " ", s2, " ", s3, "\n"))
+
+ println(s1, " ", s2, " ", s3)
+ print(sprintln(s1, " ", s2, " ", s3))
+
+ printd(" ", s1, s2, s3 . "\n")
+ print(sprintd(" ", s1, s2, s3 . "\n"))
+
+ printdln(" ", s1, s2, s3)
+ print(sprintdln(" ", s1, s2, s3))
+
+ // check that formatting characters get escaped correctly in the delimiter
+ s = sprintd("%% % \\ \"", 1, 2, 3)
+ if (s == "1%% % \\ \"2%% % \\ \"3")
+ log("systemtap test success")
+ else
+ log("systemtap test failure")
+}