summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.base/timers.stp
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.base/timers.stp')
-rw-r--r--testsuite/systemtap.base/timers.stp73
1 files changed, 73 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/timers.stp b/testsuite/systemtap.base/timers.stp
new file mode 100644
index 00000000..9f370e74
--- /dev/null
+++ b/testsuite/systemtap.base/timers.stp
@@ -0,0 +1,73 @@
+/*
+ * timers.stp
+ *
+ * Test the functionality of the various timer.* probes.
+ */
+
+global p
+global j1, j2, jmax
+global ms1, ms500, msmax
+
+probe begin
+{
+ log("systemtap starting probe")
+}
+
+probe timer.profile { ++p }
+
+probe timer.jiffies(1) { ++j1 }
+probe timer.jiffies(2) { ++j2 }
+probe timer.jiffies(1000000) { ++jmax }
+
+/* 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 end
+{
+ log("systemtap ending probe")
+ log("p = " . sprint(p))
+ log("j1 = " . sprint(j1))
+ log("j2 = " . sprint(j2))
+ log("jmax = " . sprint(jmax))
+ log("ms1 = " . sprint(ms1))
+ log("ms500 = " . sprint(ms500))
+ log("msmax = " . sprint(msmax))
+
+ /* profile counter should be non-zero, and at
+ * least as many as the jiffies(1) counter */
+ if ((p > 0) && (p >= j1)) {
+ log("systemtap test success")
+ } else {
+ log("unexpected profile count")
+ log("systemtap test failure");
+ }
+
+ /* jiffies(1) should count more than jiffies(2),
+ * and both should be non-zero. */
+ if ((j2 > 0) && (j2 < j1)) {
+ log("systemtap test success")
+ } else {
+ log("unexpected jiffies count")
+ log("systemtap test failure");
+ }
+
+ /* ms(1) should count more than ms(500),
+ * and both should be non-zero. */
+ if ((ms500 > 0) && (ms500 < ms1)) {
+ log("systemtap test success")
+ } else {
+ log("unexpected ms count")
+ log("systemtap test failure");
+ }
+
+ /* both 'infinite' intervals should register zero counts */
+ if ((jmax == 0) && (msmax == 0)) {
+ log("systemtap test success")
+ } else {
+ log("unexpected count on 'infinite' interval")
+ log("systemtap test failure");
+ }
+}