summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.base
diff options
context:
space:
mode:
authorMark Wielaard <mwielaard@redhat.com>2008-05-20 00:12:25 +0200
committerMark Wielaard <mwielaard@redhat.com>2008-05-20 00:12:25 +0200
commitc4c1558bbb72f56307d70661ac125544f1b88ffd (patch)
treee842638460988ce8805fa5c692d5ebaa0f1da230 /testsuite/systemtap.base
parent495f9db8f6d9f29830972d4a494f1896cdf7eee2 (diff)
downloadsystemtap-steved-c4c1558bbb72f56307d70661ac125544f1b88ffd.tar.gz
systemtap-steved-c4c1558bbb72f56307d70661ac125544f1b88ffd.tar.xz
systemtap-steved-c4c1558bbb72f56307d70661ac125544f1b88ffd.zip
PR6524: ctime() on bad values hangs system.
Diffstat (limited to 'testsuite/systemtap.base')
-rw-r--r--testsuite/systemtap.base/ctime.exp18
-rw-r--r--testsuite/systemtap.base/ctime.stp55
2 files changed, 73 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/ctime.exp b/testsuite/systemtap.base/ctime.exp
new file mode 100644
index 00000000..f6db096a
--- /dev/null
+++ b/testsuite/systemtap.base/ctime.exp
@@ -0,0 +1,18 @@
+set test "ctime"
+set ::result_string {Thu Jan 1 00:00:00 1970
+Wed Dec 31 23:59:59 1969
+Thu Jan 1 00:00:01 1970
+Sat Mar 3 09:46:40 1973
+Fri Feb 13 23:31:30 2009
+Sat Jan 10 13:37:04 2004
+Fri Jul 13 11:01:20 2012
+a long, long time ago...
+far far in the future...
+Fri Dec 13 20:45:52 1901
+a long, long time ago...
+Tue Jan 19 03:14:07 2038
+far far in the future...
+a long, long time ago...
+far far in the future...
+}
+stap_run2 $srcdir/$subdir/$test.stp
diff --git a/testsuite/systemtap.base/ctime.stp b/testsuite/systemtap.base/ctime.stp
new file mode 100644
index 00000000..680baff7
--- /dev/null
+++ b/testsuite/systemtap.base/ctime.stp
@@ -0,0 +1,55 @@
+probe begin
+{
+ // epoch
+ println(ctime(0))
+
+ // epoch - 1
+ println(ctime(-1))
+
+ // epoch + 1
+ println(ctime(1))
+
+ // Some funny numbers
+ println(ctime(100000000))
+ println(ctime(1234567890))
+ println(ctime(1073741824))
+ println(ctime(0x50000000))
+
+ // some time really long ago
+ secspermin = 60
+ minsperhour = 60
+ hoursperday = 24
+ secsperhour = secspermin * minsperhour
+ secsperday = secsperhour * hoursperday
+ epoch_year = 1970
+ time = -1 * (epoch_year - 1000) * 365 * secsperday
+ println(ctime(time))
+
+ // some time in the far future
+ time = (9999 - epoch_year) * 365 * secsperday
+ println(ctime(time))
+
+ // min 32 bit
+ time = -2147483648
+ println(ctime(time))
+
+ // over the edge, a long, long time ago...
+ time--
+ println(ctime(time))
+
+ // max 32 bit
+ time = 2147483647
+ println(ctime(time))
+
+ // over the edge, far far in the future...
+ time++
+ println(ctime(time))
+
+ // min 64 bit
+ println(ctime(-9223372036854775808))
+
+ // max 64 bit
+ println(ctime(9223372036854775807))
+
+ exit()
+}