This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[RFC PATCH] add a crash extension testcase
- From: Masami Hiramatsu <mhiramat at redhat dot com>
- To: systemtap-ml <systemtap at sources dot redhat dot com>, "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: Hideo AOKI <haoki at redhat dot com>, Takahiro Yasui <tyasui at redhat dot com>
- Date: Wed, 23 Jan 2008 15:55:08 -0500
- Subject: [RFC PATCH] add a crash extension testcase
Hi,
This patch adds an automatic test for crash extension(staplog.so).
To specify the absolute path of staplog.so, this patch changes
Makefile.am to export CRASH_LIBDIR.
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
---
testsuite/Makefile.am | 3 +-
testsuite/Makefile.in | 6 +++--
testsuite/systemtap.samples/crash.exp | 33 ++++++++++++++++++++++++++++++++
testsuite/systemtap.samples/crash.sh | 9 ++++++++
testsuite/systemtap.samples/testlog.stp | 6 +++++
5 files changed, 54 insertions(+), 3 deletions(-)
Index: src/testsuite/Makefile.am
===================================================================
--- src.orig/testsuite/Makefile.am 2007-04-29 18:34:03.000000000 -0400
+++ src/testsuite/Makefile.am 2008-01-22 12:30:59.000000000 -0500
@@ -27,6 +27,7 @@
SYSTEMTAP_RUNTIME=$(DESTDIR)$(pkgdatadir)/runtime
SYSTEMTAP_TAPSET=$(DESTDIR)$(pkgdatadir)/tapset
LD_LIBRARY_PATH=$(DESTDIR)$(libdir)/systemtap
+CRASH_LIBDIR=$(DESTDIR)$(libdir)/systemtap
SYSTEMTAP_PATH=$(DESTDIR)$(bindir)
-RUNTEST="env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) PATH=$(SYSTEMTAP_PATH):$$PATH runtest"
+RUNTEST="env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH runtest"
Index: src/testsuite/Makefile.in
===================================================================
--- src.orig/testsuite/Makefile.in 2007-06-21 16:13:18.000000000 -0400
+++ src/testsuite/Makefile.in 2008-01-22 12:30:59.000000000 -0500
@@ -36,7 +36,8 @@
$(srcdir)/../missing $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure ../AUTHORS \
../COPYING ../ChangeLog ../INSTALL ../NEWS ../README \
- ../compile ../depcomp ../install-sh ../missing ChangeLog
+ ../compile ../config.guess ../depcomp ../install-sh ../missing \
+ ChangeLog
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -146,8 +147,9 @@
SYSTEMTAP_RUNTIME = $(DESTDIR)$(pkgdatadir)/runtime
SYSTEMTAP_TAPSET = $(DESTDIR)$(pkgdatadir)/tapset
LD_LIBRARY_PATH = $(DESTDIR)$(libdir)/systemtap
+CRASH_LIBDIR = $(DESTDIR)$(libdir)/systemtap
SYSTEMTAP_PATH = $(DESTDIR)$(bindir)
-RUNTEST = "env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) PATH=$(SYSTEMTAP_PATH):$$PATH runtest"
+RUNTEST = "env SYSTEMTAP_RUNTIME=$(SYSTEMTAP_RUNTIME) SYSTEMTAP_TAPSET=$(SYSTEMTAP_TAPSET) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) CRASH_LIBDIR=$(CRASH_LIBDIR) PATH=$(SYSTEMTAP_PATH):$$PATH runtest"
all: all-am
.SUFFIXES:
Index: src/testsuite/systemtap.samples/crash.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ src/testsuite/systemtap.samples/crash.exp 2008-01-22 12:48:33.000000000 -0500
@@ -0,0 +1,33 @@
+# Simple test for staplog.so crash(8) extension
+set test "crash"
+set TEST_NAME "$subdir/$test"
+
+if {![installtest_p]} { untested $TEST_NAME; return }
+if {![file exists $env(CRASH_LIBDIR)/staplog.so]} { untested $TEST_NAME; return }
+
+# Load a test script
+spawn stap $srcdir/$subdir/testlog.stp -m testlog
+expect {
+ -timeout 120
+ "HelloWorld\r\n" {
+ pass "script loading"
+ set res [eval as_root \{ sh $srcdir/$subdir/crash.sh $env(CRASH_LIBDIR) \}]
+ if { $res != 0 } {
+ fail "live crash tool($res)"
+ }
+ }
+}
+send "\003"
+as_root { chmod a+r testlog/global }
+spawn cat testlog/global
+expect {
+ -timeout 5
+ "HelloWorld\r\n" {
+ pass "crash extension"
+ }
+ eof { fail "crash extension: Unexpected EOF" }
+}
+wait
+
+as_root { rm -rf testlog testlog.ko }
+
Index: src/testsuite/systemtap.samples/crash.sh
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ src/testsuite/systemtap.samples/crash.sh 2008-01-22 12:50:53.000000000 -0500
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+crash << END &> /dev/null
+mod -s testlog testlog.ko
+extend $1/staplog.so
+staplog testlog
+exit
+END
+
Index: src/testsuite/systemtap.samples/testlog.stp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ src/testsuite/systemtap.samples/testlog.stp 2008-01-22 12:30:59.000000000 -0500
@@ -0,0 +1,6 @@
+probe begin
+{
+ printf("Hello");
+ printf("World");
+ printf("\n");
+}