* [PATCH 1/3] add testcases for function definitions
@ 2015-11-26 8:43 Zhou Wenjian
2015-11-26 8:44 ` [PATCH 3/3] add cases for break and continue Zhou Wenjian
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Zhou Wenjian @ 2015-11-26 8:43 UTC (permalink / raw)
To: systemtap
* testsuite/systemtap.base/func_definition.exp: New test case.
* testsuite/systemtap.base/func_definition.stp: New test file.
---
testsuite/systemtap.base/func_definition.exp | 13 ++++++
testsuite/systemtap.base/func_definition.stp | 60 ++++++++++++++++++++++++++++
2 files changed, 73 insertions(+)
create mode 100755 testsuite/systemtap.base/func_definition.exp
create mode 100755 testsuite/systemtap.base/func_definition.stp
diff --git a/testsuite/systemtap.base/func_definition.exp b/testsuite/systemtap.base/func_definition.exp
new file mode 100755
index 0000000..65abdb5
--- /dev/null
+++ b/testsuite/systemtap.base/func_definition.exp
@@ -0,0 +1,13 @@
+# Check function definitions
+
+set test "func_definition"
+if {![installtest_p]} { untested "$test"; return }
+
+foreach runtime [get_runtime_list] {
+ if {$runtime != ""} {
+ stap_run $srcdir/$subdir/$test.stp no_load (${all_pass_string}){5} \
+ --runtime=$runtime
+ } else {
+ stap_run $srcdir/$subdir/$test.stp no_load (${all_pass_string}){5}
+ }
+}
diff --git a/testsuite/systemtap.base/func_definition.stp b/testsuite/systemtap.base/func_definition.stp
new file mode 100755
index 0000000..eaa8d94
--- /dev/null
+++ b/testsuite/systemtap.base/func_definition.stp
@@ -0,0 +1,60 @@
+/*
+ * func_definition.stp
+ *
+ * Check function definitions
+ */
+probe begin {
+ println("systemtap starting probe")
+}
+
+
+function f1(arg:long)
+{
+ if (arg == 2015)
+ println("systemtap test success")
+ else
+ printf("systemtap test failure - arg of f1:%d != 2015\n", arg)
+}
+
+function f2(arg)
+{
+ if (arg == 2015)
+ println("systemtap test success")
+ else
+ printf("systemtap test failure - arg of f2:%d != 2015\n", arg)
+}
+
+function f3:long()
+{
+ return 2015
+}
+
+function f4()
+{
+ return 2015
+}
+
+function f5()
+{
+ println("systemtap test success")
+}
+
+probe end {
+ println("systemtap ending probe")
+
+ f1(2015)
+
+ f2(2015)
+
+ if (f3() == 2015)
+ println("systemtap test success")
+ else
+ printf("systemtap test failure - return_value of f3:%d != 2015\n", f3())
+
+ if (f4() == 2015)
+ println("systemtap test success")
+ else
+ printf("systemtap test failure - return_value of f4:%d != 2015\n", f4())
+
+ f5()
+}
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/3] add cases for break and continue
2015-11-26 8:43 [PATCH 1/3] add testcases for function definitions Zhou Wenjian
@ 2015-11-26 8:44 ` Zhou Wenjian
2015-11-26 8:44 ` [PATCH 2/3] add more test cases for timer Zhou Wenjian
2015-12-01 3:21 ` [PATCH 1/3] add testcases for function definitions "Zhou, Wenjian/周文剑"
2 siblings, 0 replies; 5+ messages in thread
From: Zhou Wenjian @ 2015-11-26 8:44 UTC (permalink / raw)
To: systemtap
* testsuite/systemtap.base/break_and_continue.exp: New test case
* testsuite/systemtap.base/break_and_continue.stp: New test file
---
testsuite/systemtap.base/break_and_continue.exp | 13 +++++
testsuite/systemtap.base/break_and_continue.stp | 78 +++++++++++++++++++++++++
2 files changed, 91 insertions(+)
create mode 100755 testsuite/systemtap.base/break_and_continue.exp
create mode 100755 testsuite/systemtap.base/break_and_continue.stp
diff --git a/testsuite/systemtap.base/break_and_continue.exp b/testsuite/systemtap.base/break_and_continue.exp
new file mode 100755
index 0000000..0ddfdb9
--- /dev/null
+++ b/testsuite/systemtap.base/break_and_continue.exp
@@ -0,0 +1,13 @@
+# Check break and continue in for, foreach and while work correctly
+
+set test "break_and_continue"
+
+foreach runtime [get_runtime_list] {
+ if {$runtime != ""} {
+ stap_run $srcdir/$subdir/$test.stp no_load $all_pass_string \
+ --runtime=$runtime -w
+ } else {
+ stap_run $srcdir/$subdir/$test.stp no_load $all_pass_string \
+ -w
+ }
+}
diff --git a/testsuite/systemtap.base/break_and_continue.stp b/testsuite/systemtap.base/break_and_continue.stp
new file mode 100755
index 0000000..5f0afb4
--- /dev/null
+++ b/testsuite/systemtap.base/break_and_continue.stp
@@ -0,0 +1,78 @@
+/*
+ * break_and_continue.stp
+ *
+ * Check break and continue in for, foreach and while work correctly
+ */
+
+global a
+
+probe begin
+{
+ println("systemtap starting probe")
+ exit()
+}
+
+probe end
+{
+ a[1]=1
+ a[2]=2
+ a[3]=3
+ i=1
+ ret=0
+ println("systemtap ending probe")
+ for(i=1;i<3;i++)
+ {
+ break;
+ ret=1
+ }
+ if (i!=1)
+ ret=1
+
+ foreach(i in a)
+ {
+ break;
+ ret=1
+ }
+ if (i!=1)
+ ret=1
+
+ i=0
+ while(i<3)
+ {
+ i++
+ break;
+ ret=1
+ }
+ if (i!=1)
+ ret=1
+
+ for(i=1;i<3;i++)
+ {
+ continue;
+ ret=1
+ }
+ if (i!=3)
+ ret=1
+
+ foreach(i in a)
+ {
+ continue;
+ ret=1
+ }
+ if (i!=3)
+ ret=1
+
+ i=0
+ while(i<3)
+ {
+ i++
+ continue;
+ ret=1
+ }
+ if (i!=3)
+ ret=1
+
+
+ if (ret == 0)
+ println("systemtap test success")
+}
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/3] add more test cases for timer
2015-11-26 8:43 [PATCH 1/3] add testcases for function definitions Zhou Wenjian
2015-11-26 8:44 ` [PATCH 3/3] add cases for break and continue Zhou Wenjian
@ 2015-11-26 8:44 ` Zhou Wenjian
2015-12-01 3:21 ` [PATCH 1/3] add testcases for function definitions "Zhou, Wenjian/周文剑"
2 siblings, 0 replies; 5+ messages in thread
From: Zhou Wenjian @ 2015-11-26 8:44 UTC (permalink / raw)
To: systemtap
* testsuite/systemtap.base/timers.exp: update for new test cases
* testsuite/systemtap.base/timers.stp: add more test cases
---
testsuite/systemtap.base/timers.exp | 2 +-
testsuite/systemtap.base/timers.stp | 63 +++++++++++++++++++++++++++++++++++--
2 files changed, 62 insertions(+), 3 deletions(-)
diff --git a/testsuite/systemtap.base/timers.exp b/testsuite/systemtap.base/timers.exp
index 30041aa..2a7f59a 100644
--- a/testsuite/systemtap.base/timers.exp
+++ b/testsuite/systemtap.base/timers.exp
@@ -11,6 +11,6 @@ proc sleep_ten_secs {} {
#check to see whether get the marker indicating the probe is loaded and running
#should check to see whether exited for some reason
#should be error is something else is printed.
-set output_string "(\\w+ = \\d+\r\n){7}(${all_pass_string}){4}(WARNING.*skipped.*)?"
+set output_string "(\\w+ = \\d+\r\n){16}(${all_pass_string}){9}(WARNING.*skipped.*)?"
stap_run $srcdir/$subdir/$test.stp sleep_ten_secs $output_string
diff --git a/testsuite/systemtap.base/timers.stp b/testsuite/systemtap.base/timers.stp
index fb590ed..f256e36 100644
--- a/testsuite/systemtap.base/timers.stp
+++ b/testsuite/systemtap.base/timers.stp
@@ -5,8 +5,9 @@
*/
global p
-global j1, j2, jmax
-global ms1, ms500, msmax
+global j1, j2, jmax, jr
+global ms1, ms500, msmax, msr
+global sec, secr, us, usr, ns, nsr, hz
probe begin
{
@@ -18,12 +19,25 @@ probe timer.profile { ++p }
probe timer.jiffies(1) { ++j1 }
probe timer.jiffies(2) { ++j2 }
probe timer.jiffies(1000000) { ++jmax }
+probe timer.jiffies(1000).randomize(500) { ++jr }
/* as long as HZ>2, ms(1) and ms(500)
* will produce different counts */
probe timer.ms(1) { ++ms1 }
probe timer.ms(500) { ++ms500 }
probe timer.ms(1000000) { ++msmax }
+probe timer.ms(1000).randomize(500) { ++msr }
+
+probe timer.sec(5) { ++sec }
+probe timer.sec(5).randomize(4) { ++secr }
+
+probe timer.us(1000) { ++us }
+probe timer.us(1000).randomize(500) { ++usr }
+
+probe timer.ns(1000000) { ++ns }
+probe timer.ns(1000000).randomize(500000) { ++nsr }
+
+probe timer.hz(1000) { ++hz }
probe end
{
@@ -31,10 +45,20 @@ probe end
printf("p = %d\n", p)
printf("j1 = %d\n", j1)
printf("j2 = %d\n", j2)
+ printf("jr = %d\n", jr)
printf("jmax = %d\n", jmax)
printf("ms1 = %d\n", ms1)
printf("ms500 = %d\n", ms500)
printf("msmax = %d\n", msmax)
+ printf("msr = %d\n", msr)
+
+ printf("sec = %d\n", sec)
+ printf("secr = %d\n", secr)
+ printf("us = %d\n", us)
+ printf("usr = %d\n", usr)
+ printf("ns = %d\n", nsr)
+ printf("nsr = %d\n", nsr)
+ printf("hz = %d\n", hz)
/* profile counter should be non-zero, and at
* least as many as the jiffies(1) counter */
@@ -71,4 +95,39 @@ probe end
printf("unexpected count on 'infinite' interval\n")
printf("systemtap test failure\n");
}
+
+ if (jr * msr * secr * usr * nsr > 0) {
+ printf("systemtap test success\n")
+ } else {
+ printf("unexpected randomize count\n")
+ printf("systemtap test failure\n");
+ }
+
+ if (sec > 0) {
+ printf("systemtap test success\n")
+ } else {
+ printf("unexpected sec count\n")
+ printf("systemtap test failure\n");
+ }
+
+ if (us > 0) {
+ printf("systemtap test success\n")
+ } else {
+ printf("unexpected us count\n")
+ printf("systemtap test failure\n");
+ }
+
+ if (ns > 0) {
+ printf("systemtap test success\n")
+ } else {
+ printf("unexpected ns count\n")
+ printf("systemtap test failure\n");
+ }
+
+ if (hz > 0) {
+ printf("systemtap test success\n")
+ } else {
+ printf("unexpected hz count\n")
+ printf("systemtap test failure\n");
+ }
}
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] add testcases for function definitions
2015-11-26 8:43 [PATCH 1/3] add testcases for function definitions Zhou Wenjian
2015-11-26 8:44 ` [PATCH 3/3] add cases for break and continue Zhou Wenjian
2015-11-26 8:44 ` [PATCH 2/3] add more test cases for timer Zhou Wenjian
@ 2015-12-01 3:21 ` "Zhou, Wenjian/周文剑"
2015-12-04 13:45 ` David Smith
2 siblings, 1 reply; 5+ messages in thread
From: "Zhou, Wenjian/周文剑" @ 2015-12-01 3:21 UTC (permalink / raw)
To: systemtap, David Smith
Hello David,
These three patches also want to be reviewed.
--
Thanks
Zhou
On 11/26/2015 04:42 PM, Zhou Wenjian wrote:
> * testsuite/systemtap.base/func_definition.exp: New test case.
> * testsuite/systemtap.base/func_definition.stp: New test file.
> ---
> testsuite/systemtap.base/func_definition.exp | 13 ++++++
> testsuite/systemtap.base/func_definition.stp | 60 ++++++++++++++++++++++++++++
> 2 files changed, 73 insertions(+)
> create mode 100755 testsuite/systemtap.base/func_definition.exp
> create mode 100755 testsuite/systemtap.base/func_definition.stp
>
> diff --git a/testsuite/systemtap.base/func_definition.exp b/testsuite/systemtap.base/func_definition.exp
> new file mode 100755
> index 0000000..65abdb5
> --- /dev/null
> +++ b/testsuite/systemtap.base/func_definition.exp
> @@ -0,0 +1,13 @@
> +# Check function definitions
> +
> +set test "func_definition"
> +if {![installtest_p]} { untested "$test"; return }
> +
> +foreach runtime [get_runtime_list] {
> + if {$runtime != ""} {
> + stap_run $srcdir/$subdir/$test.stp no_load (${all_pass_string}){5} \
> + --runtime=$runtime
> + } else {
> + stap_run $srcdir/$subdir/$test.stp no_load (${all_pass_string}){5}
> + }
> +}
> diff --git a/testsuite/systemtap.base/func_definition.stp b/testsuite/systemtap.base/func_definition.stp
> new file mode 100755
> index 0000000..eaa8d94
> --- /dev/null
> +++ b/testsuite/systemtap.base/func_definition.stp
> @@ -0,0 +1,60 @@
> +/*
> + * func_definition.stp
> + *
> + * Check function definitions
> + */
> +probe begin {
> + println("systemtap starting probe")
> +}
> +
> +
> +function f1(arg:long)
> +{
> + if (arg == 2015)
> + println("systemtap test success")
> + else
> + printf("systemtap test failure - arg of f1:%d != 2015\n", arg)
> +}
> +
> +function f2(arg)
> +{
> + if (arg == 2015)
> + println("systemtap test success")
> + else
> + printf("systemtap test failure - arg of f2:%d != 2015\n", arg)
> +}
> +
> +function f3:long()
> +{
> + return 2015
> +}
> +
> +function f4()
> +{
> + return 2015
> +}
> +
> +function f5()
> +{
> + println("systemtap test success")
> +}
> +
> +probe end {
> + println("systemtap ending probe")
> +
> + f1(2015)
> +
> + f2(2015)
> +
> + if (f3() == 2015)
> + println("systemtap test success")
> + else
> + printf("systemtap test failure - return_value of f3:%d != 2015\n", f3())
> +
> + if (f4() == 2015)
> + println("systemtap test success")
> + else
> + printf("systemtap test failure - return_value of f4:%d != 2015\n", f4())
> +
> + f5()
> +}
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] add testcases for function definitions
2015-12-01 3:21 ` [PATCH 1/3] add testcases for function definitions "Zhou, Wenjian/周文剑"
@ 2015-12-04 13:45 ` David Smith
0 siblings, 0 replies; 5+ messages in thread
From: David Smith @ 2015-12-04 13:45 UTC (permalink / raw)
To: Zhou, Wenjian/周文剑, systemtap
On 11/30/2015 09:19 PM, "Zhou, Wenjian/å¨æå" wrote:
> Hello David,
>
> These three patches also want to be reviewed.
Sorry for the delay. I checked in patches 2 and 3 last week, but then
got busy this week. I struggled a bit with the first patch, the one that
tests functions. We don't really have a test case that test functions
directly, but we do have lots that test functions indirectly. But, it
seemed reasonable, so I checked it in as well.
Thanks again for the patches.
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-12-04 13:45 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-26 8:43 [PATCH 1/3] add testcases for function definitions Zhou Wenjian
2015-11-26 8:44 ` [PATCH 3/3] add cases for break and continue Zhou Wenjian
2015-11-26 8:44 ` [PATCH 2/3] add more test cases for timer Zhou Wenjian
2015-12-01 3:21 ` [PATCH 1/3] add testcases for function definitions "Zhou, Wenjian/周文剑"
2015-12-04 13:45 ` David Smith
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).