Changes testcases in runtests to use TAP
[ust.git] / tests / runtests
index 676ab119ef267087be2a9cab3a98199e32456d05..602fc1e49210021f93864c8eda783332c9fc2e57 100755 (executable)
 #!/bin/bash
-
-function NOFAIL() {
-       "$@"
-       if [ "$?" -ne "0" ]; then
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!"
-               echo "$0: Stopping because of error"
-               echo "!!!!!!!!!!!!!!!!!!!!!!!!"
-               exit 1;
-       fi
-}
-
-function starttest() {
-       echo "------------------------------------"
-       echo "Starting test: $1"
-       echo "------------------------------------"
-}
-
-function check_trace_logs() {
-       TRACE=$1
-
-       for f in $(ls $1/*.log); do
-               NLINES=$(egrep "Warning|Error" $f | wc -l)
-               if [ "$NLINES" -ne "0" ]; then
-                       echo "Errors/warnings found in $f"
-                       return 1;
-               fi
-       done
-       return 0;
-}
+#
+# 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
 
 TESTDIR=$(dirname $0)
-MATCHES="$TESTDIR/trace_matches"
-
-starttest "Test-nevents"
-NOFAIL usttrace $TESTDIR/test-nevents/prog
-trace_loc=$(usttrace -W)
-NOFAIL $MATCHES -N "an_event (100000)" -n 100000 "^ust.an_event:" $trace_loc
-NOFAIL $MATCHES -N "another_event (100000)" -n 100000 "^ust.another_event:" $trace_loc
-NOFAIL check_trace_logs "$trace_loc"
 
-starttest "fork()/exec() test"
-NOFAIL usttrace -f $TESTDIR/fork/.libs/fork $TESTDIR/fork/.libs/fork2
-trace_loc=$(usttrace -W)
-NOFAIL $MATCHES -N "fork - before_fork" "^ust.before_fork:" $trace_loc
-NOFAIL $MATCHES -N "fork - after_fork_parent" "^ust.after_fork_parent:" $trace_loc
-NOFAIL $MATCHES -N "fork - after_fork_child" "^ust.after_fork_child:" $trace_loc
-NOFAIL $MATCHES -N "fork - before_exec" "^ust.before_exec:" $trace_loc
-NOFAIL $MATCHES -N "fork - potential_exec" "^ust.potential_exec:" $trace_loc
-NOFAIL $MATCHES -N "fork - after_exec" "^ust.after_exec:" $trace_loc
-NOFAIL check_trace_logs "$trace_loc"
-
-starttest "libustinstr-malloc"
-NOFAIL usttrace -lm $TESTDIR/test-libustinstr-malloc/.libs/prog
-trace_loc=$(usttrace -W)
-NOFAIL $MATCHES -N "libustinstr-malloc - malloc" -n 1000 "^ust.malloc:.*{ size = 1[0-9][0-9][0-9]," $trace_loc
-NOFAIL check_trace_logs "$trace_loc"
-
-### Manual mode test
-starttest "Manual mode tracing"
-TRACE_DIR="/tmp/ust-testsuite-manual-trace"
-rm -rf "$TRACE_DIR"
-mkdir "$TRACE_DIR"
-
-pidfilepath="/tmp/ust-testsuite-$USER-$(date +%Y%m%d%H%M%S%N)-ustd-pid"
-mkfifo -m 0600 "$pidfilepath"
-# It's not useful to run ustd in NOFAIL because it's running in the background
-ustd --pidfile "$pidfilepath" -o "$TRACE_DIR" >/dev/null 2>&1 &
-USTD_PID="$(<$pidfilepath)"
-
-LD_PRELOAD=/usr/local/lib/libust.so.0.0.0:/usr/local/lib/libustinstr-malloc.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 -SIGTERM $USTD_PID
-wait $USTD_PID
-
-NOFAIL $MATCHES -N "manual - find - ust.malloc" "^ust.malloc:" "$TRACE_DIR"
+function simple_harness_run() {
+    if ! "$TESTDIR/$@"; then
+       let tests_failed=$tests_failed+1
+    fi
+}
 
-### Valgrind ustd ###
-starttest "ustd valgrind check"
-TRACE_DIR="/tmp/ust-testsuite-ustdvalgrind-trace"
-rm -rf "$TRACE_DIR"
-mkdir "$TRACE_DIR"
 
-pidfilepath="/tmp/ust-testsuite-$USER-$(date +%Y%m%d%H%M%S%N)-ustd-pid"
-mkfifo -m 0600 "$pidfilepath"
-# It's not useful to run ustd in NOFAIL because it's running in the background
-VALG_OUT=/tmp/ust-testsuite-valg.txt
-valgrind -q ustd --pidfile "$pidfilepath" -o "$TRACE_DIR" >/dev/null 2>"$VALG_OUT" &
-VALG_PID=$!
-USTD_PID="$(<$pidfilepath)"
+simple_harness_run test-nevents/test-nevents.sh
 
-usttrace -s $TESTDIR/basic/.libs/basic
+simple_harness_run fork/fork.sh
 
-kill -SIGTERM $USTD_PID
-wait $!
+simple_harness_run test-libustinstr-malloc/test-libustinstr-malloc.sh
 
-echo "Valgrind output is in $VALG_OUT"
-NOFAIL [ -z "$(<$VALG_OUT)" ]
+simple_harness_run ./manual_mode_tracing.sh
 
-### dlopen ###
-starttest "dlopen"
-LD_LIBRARY_PATH=$TESTDIR/dlopen/.libs NOFAIL usttrace $TESTDIR/dlopen/dlopen
-trace_loc=$(usttrace -W)
-NOFAIL $MATCHES -N "from_library" -n 1 "^ust.from_library:" $trace_loc
-NOFAIL $MATCHES -N "from_main_before_lib" -n 1 "^ust.from_main_before_lib:" $trace_loc
-NOFAIL $MATCHES -N "from_main_after_lib" -n 1 "^ust.from_main_after_lib:" $trace_loc
+simple_harness_run ./valgrind_ustd.sh
 
-### same-line-marker ###
-starttest "same_line_marker"
-NOFAIL usttrace $TESTDIR/same_line_marker/same_line_marker
-trace_loc=$(usttrace -W)
-NOFAIL $MATCHES -N "same_line_event" -n 2 "^ust.same_line_event:" $trace_loc
+simple_harness_run dlopen/dlopen.sh
 
+simple_harness_run same_line_marker/same_line_marker.sh
 
 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
This page took 0.023764 seconds and 4 git commands to generate.