#!/bin/bash
+#
+# Copyright 2010 Ericsson AB
+#
+# This file is part of LTTng-UST.
+#
+# LTTng-UST is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# LTTng-UST is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LTTng-UST. If not, see <http://www.gnu.org/licenses/>.
+
+
+tests_failed=0
-function check_no_fail() {
- if [ "$?" -ne "0" ]; then
- echo "$0: Stopping because of error"
- exit 1;
- fi
-}
+TESTDIR=$(dirname $0)
-function NOFAIL() {
- "$@"
- if [ "$?" -ne "0" ]; then
- echo "!!!!!!!!!!!!!!!!!!!!!!!!"
- echo "$0: Stopping because of error"
- echo "!!!!!!!!!!!!!!!!!!!!!!!!"
- exit 1;
- fi
+function simple_harness_run() {
+ if ! "$TESTDIR/$@"; then
+ let tests_failed=$tests_failed+1
+ fi
}
-TESTDIR=$(dirname $0)
-MATCHES="$TESTDIR/trace_matches"
-NOFAIL usttrace $TESTDIR/test-nevents/prog
-NOFAIL $MATCHES -N "an_event (100000)" -n 100000 "^ust.an_event:" $(usttrace -W)
-NOFAIL $MATCHES -N "another_event (100000)" -n 100000 "^ust.another_event:" $(usttrace -W)
+simple_harness_run test-nevents/test-nevents.sh
+
+simple_harness_run fork/fork.sh
-NOFAIL usttrace -f $TESTDIR/fork/.libs/fork $TESTDIR/fork/.libs/fork2
-NOFAIL $MATCHES -N "fork - before_fork" "^ust.before_fork:" $(usttrace -W)
-NOFAIL $MATCHES -N "fork - after_fork_parent" "^ust.after_fork_parent:" $(usttrace -W)
-NOFAIL $MATCHES -N "fork - after_fork_child" "^ust.after_fork_child:" $(usttrace -W)
-NOFAIL $MATCHES -N "fork - before_exec" "^ust.before_exec:" $(usttrace -W)
-NOFAIL $MATCHES -N "fork - potential_exec" "^ust.potential_exec:" $(usttrace -W)
-NOFAIL $MATCHES -N "fork - after_exec" "^ust.after_exec:" $(usttrace -W)
+simple_harness_run test-libustinstr-malloc/test-libustinstr-malloc.sh
-NOFAIL usttrace -lm $TESTDIR/test-libmallocwrap/.libs/prog
-NOFAIL $MATCHES -N "mallocwrap - malloc" -n 1000 "^ust.malloc:.*{ size = 1[0-9][0-9][0-9]," $(usttrace -W)
+simple_harness_run ./manual_mode_tracing.sh
-### Manual mode test
-TRACE_DIR="/tmp/ust-testsuite-manual-trace"
-rm -rf "$TRACE_DIR"
-mkdir "$TRACE_DIR"
+simple_harness_run ./valgrind_ustd.sh
-NOFAIL ustd -o "$TRACE_DIR" >/dev/null 2>&1 &
-USTD_PID=$!
+simple_harness_run dlopen/dlopen.sh
-LD_PRELOAD=/usr/local/lib/libust.so.0.0.0:/usr/local/lib/libmallocwrap.so find / >/dev/null 2>&1 &
-PID=$!
-sleep 0.1
-NOFAIL ustctl --list-markers "$PID" >/dev/null
-NOFAIL ustctl --enable-marker ust/malloc $PID
-NOFAIL ustctl --enable-marker ust/free $PID
-NOFAIL ustctl --create-trace $PID
-NOFAIL ustctl --alloc-trace $PID
-NOFAIL ustctl --start-trace $PID
-sleep 0.5
-NOFAIL ustctl --stop-trace $PID
-NOFAIL ustctl --destroy-trace $PID
-kill $PID
-kill $USTD_PID
+simple_harness_run same_line_marker/same_line_marker.sh
-NOFAIL $MATCHES -N "manual - find - ust.malloc" "^ust.malloc:" "$TRACE_DIR"
+simple_harness_run tracepoint/run
echo "************************************"
-echo "$0: All passed"
+if [[ $tests_failed -eq 0 ]]; then
+ echo "$0: All passed"
+else
+ echo "$0: $tests_failed tests failed"
+fi
echo "************************************"
exit 0