From a3ed20b4dae0d228f39fe222e0170387eab85f42 Mon Sep 17 00:00:00 2001 From: Christian Babeux Date: Thu, 21 Feb 2013 21:08:56 -0500 Subject: [PATCH] Tests: Convert the kernel_all_events_basic test to an equivalent shell test The test_all_events shell script test has the same behavior has the kernel_all_events_basic test. In addition, the resulting trace produced by the test is now verified for correctness. Finally, the test output format has been converted to TAP. Signed-off-by: Christian Babeux --- tests/regression/kernel/Makefile.am | 8 +- .../kernel/kernel_all_events_basic.c | 119 ------------------ tests/regression/kernel/test_all_events | 63 ++++++++++ 3 files changed, 65 insertions(+), 125 deletions(-) delete mode 100644 tests/regression/kernel/kernel_all_events_basic.c create mode 100755 tests/regression/kernel/test_all_events diff --git a/tests/regression/kernel/Makefile.am b/tests/regression/kernel/Makefile.am index 5cfe81e3f..f89ce0102 100644 --- a/tests/regression/kernel/Makefile.am +++ b/tests/regression/kernel/Makefile.am @@ -1,9 +1,9 @@ AM_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src -I$(top_srcdir)/tests/utils -g -Wall AM_LDFLAGS = -lurcu -lurcu-cds -EXTRA_DIST = runall.sh run-kernel-tests.sh +EXTRA_DIST = runall.sh run-kernel-tests.sh test_all_events -noinst_PROGRAMS = kernel_all_events_basic kernel_event_basic +noinst_PROGRAMS = kernel_event_basic UTILS=$(top_srcdir)/tests/utils/utils.h LIBLTTNG=$(top_builddir)/src/lib/lttng-ctl/liblttng-ctl.la @@ -13,10 +13,6 @@ SESSIONDSRC=$(top_srcdir)/src/common/sessiond-comm/sessiond-comm.c \ $(top_srcdir)/src/common/sessiond-comm/inet.c \ $(top_srcdir)/src/common/sessiond-comm/inet6.c -kernel_all_events_basic_SOURCES = kernel_all_events_basic.c $(UTILS) \ - $(SESSIONDSRC) -kernel_all_events_basic_LDADD = $(LIBLTTNG) - kernel_event_basic_SOURCES = kernel_event_basic.c $(UTILS) \ $(SESSIONDSRC) kernel_event_basic_LDADD = $(LIBLTTNG) diff --git a/tests/regression/kernel/kernel_all_events_basic.c b/tests/regression/kernel/kernel_all_events_basic.c deleted file mode 100644 index b80dbd322..000000000 --- a/tests/regression/kernel/kernel_all_events_basic.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 2011 David Goulet - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * as published by the Free Software Foundation; only version 2 - * of the License. - * - * This program 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 this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "utils.h" - -int lttng_opt_quiet; - -int main(int argc, char **argv) -{ - struct lttng_handle *handle = NULL; - struct lttng_domain dom; - struct lttng_event event; - char *channel_name = "channel0"; - char *session_name = "kernel_all_events_basic"; - int ret = 0; - - memset(&dom, 0, sizeof(dom)); - memset(&event, 0, sizeof(event)); - dom.type = LTTNG_DOMAIN_KERNEL; - event.type = LTTNG_EVENT_TRACEPOINT; - event.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL; - - printf("\nTesting tracing all kernel events:\n"); - printf("-----------\n"); - /* Check if root */ - if (getuid() != 0) { - printf("Root access is needed.\nPlease run 'sudo make check' -- Aborting!\n"); - return 0; - } - - if (argc < 2) { - printf("Missing session trace path\n"); - return 1; - } - - printf("Creating tracing session (%s): ", argv[1]); - if ((ret = lttng_create_session(session_name, argv[1])) < 0) { - printf("error creating the session : %s\n", lttng_strerror(ret)); - goto create_fail; - } - PRINT_OK(); - - printf("Creating session handle: "); - if ((handle = lttng_create_handle(session_name, &dom)) == NULL) { - printf("error creating handle: %s\n", lttng_strerror(ret)); - goto handle_fail; - } - PRINT_OK(); - - printf("Enabling all kernel events: "); - if ((ret = lttng_enable_event(handle, &event, channel_name)) < 0) { - printf("error enabling event: %s\n", lttng_strerror(ret)); - goto enable_fail; - } - PRINT_OK(); - - printf("Start tracing: "); - if ((ret = lttng_start_tracing(session_name)) < 0) { - printf("error starting tracing: %s\n", lttng_strerror(ret)); - goto start_fail; - } - PRINT_OK(); - - sleep(2); - - printf("Stop tracing: "); - if ((ret = lttng_stop_tracing(session_name)) < 0) { - printf("error stopping tracing: %s\n", lttng_strerror(ret)); - goto stop_fail; - } - PRINT_OK(); - - printf("Destroy tracing session: "); - if ((ret = lttng_destroy_session(session_name)) < 0) { - printf("error destroying session: %s\n", lttng_strerror(ret)); - } - PRINT_OK(); - - return 0; - -handle_fail: - assert(handle != NULL); -create_fail: - assert(ret != 0); - -stop_fail: -start_fail: -enable_fail: - lttng_destroy_session(session_name); - lttng_destroy_handle(handle); - - return 1; -} diff --git a/tests/regression/kernel/test_all_events b/tests/regression/kernel/test_all_events new file mode 100755 index 000000000..48627481b --- /dev/null +++ b/tests/regression/kernel/test_all_events @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Copyright (C) - 2013 Christian Babeux +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License, version 2 only, as +# published by the Free Software Foundation. +# +# This program 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 +# this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +TEST_DESC="Kernel tracer - All events" + +CURDIR=$(dirname $0)/ +TESTDIR=$CURDIR/../.. +NUM_TESTS=8 + +source $TESTDIR/utils/utils.sh + +print_test_banner "$TEST_DESC" + +function test_all_event() +{ + TRACE_PATH=$(mktemp -d) + SESSION_NAME="kernel_all_events_basic" + + create_lttng_session $SESSION_NAME $TRACE_PATH + + lttng_enable_kernel_event $SESSION_NAME + + start_lttng_tracing + stop_lttng_tracing + + validate_trace "sched_switch" $TRACE_PATH + + destroy_lttng_session $SESSION_NAME + + rm -rf $TRACE_PATH +} + +# MUST set TESTDIR before calling those functions +plan_tests $NUM_TESTS + +if [ "$(id -u)" == "0" ]; then + isroot=1 +else + isroot=0 +fi + +skip $isroot "Root access is needed. Skipping all tests." $NUM_TESTS || +{ + start_lttng_sessiond + + test_all_event + + stop_lttng_sessiond +} -- 2.34.1