This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[PATCH 2/2] [TAKE 3] Testcase For str_replace()
- From: Varun Chandramohan <varunc at linux dot vnet dot ibm dot com>
- To: systemtap at sourceware dot org
- Cc: Josh Stone <jistone at redhat dot com>
- Date: Thu, 18 Jun 2009 15:30:01 +0530
- Subject: [PATCH 2/2] [TAKE 3] Testcase For str_replace()
This patch adds the test case needed for this function. I have added
few tests. If required more can be added in future.
Signed-off-by: Varun Chandramohan <varunc@linux.vnet.ibm.com>
---
testsuite/systemtap.string/str_replace.exp | 27 ++++++++++++++++++++++
testsuite/systemtap.string/str_replace.stp | 34 ++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 0 deletions(-)
create mode 100644 testsuite/systemtap.string/str_replace.exp
create mode 100644 testsuite/systemtap.string/str_replace.stp
diff --git a/testsuite/systemtap.string/str_replace.exp b/testsuite/systemtap.string/str_replace.exp
new file mode 100644
index 0000000..3376f88
--- /dev/null
+++ b/testsuite/systemtap.string/str_replace.exp
@@ -0,0 +1,27 @@
+set test "str_replace"
+
+set ok 0
+set ko 0
+
+spawn stap -DMAXERRORS=2 $srcdir/$subdir/$test.stp
+expect {
+ -timeout 15
+ -re {ERROR: Invalid Search String} { incr ko; exp_continue }
+ -re {WARNING: Number of errors} { incr ko ; exp_continue }
+ -re {Result = hello pointer tap} { incr ok ; exp_continue }
+ -re {Result = pointer system tap} { incr ok ; exp_continue }
+ -re {Result = hello system pointer} { incr ok ; exp_continue }
+ -re {Result = Here I am, on the bored again. there I am, up on the stage, Here I go, playing star again. There I go, turn the page.- Bob Sege} { incr ok ; exp_continue }
+ -re {Result = here I am, on the road again. there I am, up on the stage, here I go, playing star again. There I go, turn the page.- Bob Seger} { incr ok ; exp_continue }
+ -re {Result = Here I am, on the road again. there I am, up on the stage, Here I go, playing star again. There I go, turn the page.- Metallica} { incr ok ; exp_continue }
+ -re {Result = hello tap} { incr ok ; exp_continue }
+ eof { }
+}
+catch { close }
+wait
+
+if {$ok == 7 && $ko == 4} {
+ pass $test
+} else {
+ fail "$test ($ok $ko)"
+}
diff --git a/testsuite/systemtap.string/str_replace.stp b/testsuite/systemtap.string/str_replace.stp
new file mode 100644
index 0000000..f8509db
--- /dev/null
+++ b/testsuite/systemtap.string/str_replace.stp
@@ -0,0 +1,34 @@
+# Test of str_replace()
+
+global long_str1 = "hello system tap"
+global long_str2 = "Here I am, on the road again. there I am, up on the stage, Here I go, playing star again. There I go, turn the page.- Bob Seger"
+global long_src_str1 = "system"
+global long_src_str2 = "hello"
+global long_src_str3 = "tap"
+global long_rlpc_str = "pointer"
+
+probe begin {
+
+ printf("Result = %s\n",str_replace(long_str1, long_src_str1, long_rlpc_str))
+ printf("Result = %s\n",str_replace(long_str1, long_src_str2, long_rlpc_str))
+ printf("Result = %s\n",str_replace(long_str1, long_src_str3, long_rlpc_str))
+
+ printf("Result = %s\n",str_replace(long_str2, "road", "bored"))
+ printf("Result = %s\n",str_replace(long_str2, "Here", "here"))
+ printf("Result = %s\n",str_replace(long_str2, "Bob Seger", "Metallica"))
+
+ printf("Result = %s\n",str_replace(long_str1, long_src_str1, "\0"))
+}
+probe begin {
+ printf("Result = %s\n",str_replace(long_str1, "\0", long_rlpc_str))
+}
+probe begin {
+ printf("Result = %s\n",str_replace("\0", "\0", long_rlpc_str))
+}
+probe begin {
+ printf("Result = %s\n",str_replace("\0", "\0", "\0"))
+}
+probe begin {
+ exit()
+}
+
--
1.6.0.4