From 6749958301e384d8491fb3509e3b089ef662d66a Mon Sep 17 00:00:00 2001 From: Nils Carlson Date: Mon, 30 Aug 2010 10:23:04 +0200 Subject: [PATCH] Add a simple test case for TRACE_EVENT v2 The test case is useful for verifying compilation of the simplest possible TRACE_EVENT. Changes since version 1: Added copyright notices updated run with UST_AUTOCOLLECT per Davids comment. --- configure.ac | 1 + tests/Makefile.am | 2 +- tests/trace_event/Makefile.am | 9 +++++ tests/trace_event/run | 5 +++ tests/trace_event/trace_event_test.c | 30 +++++++++++++++++ tests/trace_event/trace_event_test.h | 50 ++++++++++++++++++++++++++++ 6 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 tests/trace_event/Makefile.am create mode 100755 tests/trace_event/run create mode 100644 tests/trace_event/trace_event_test.c create mode 100644 tests/trace_event/trace_event_test.h diff --git a/configure.ac b/configure.ac index 19ec6a7..dee974f 100644 --- a/configure.ac +++ b/configure.ac @@ -121,6 +121,7 @@ AC_CONFIG_FILES([ tests/test-libustinstr-malloc/Makefile tests/dlopen/Makefile tests/same_line_marker/Makefile + tests/trace_event/Makefile libustinstr-malloc/Makefile libustfork/Makefile libustd/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index c1fc928..ab13cd7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,3 +1,3 @@ -SUBDIRS = hello hello2 basic basic_long fork simple_include snprintf test-nevents test-libustinstr-malloc dlopen same_line_marker +SUBDIRS = hello hello2 basic basic_long fork simple_include snprintf test-nevents test-libustinstr-malloc dlopen same_line_marker trace_event dist_noinst_SCRIPTS = test_loop runtests trace_matches diff --git a/tests/trace_event/Makefile.am b/tests/trace_event/Makefile.am new file mode 100644 index 0000000..6de9a12 --- /dev/null +++ b/tests/trace_event/Makefile.am @@ -0,0 +1,9 @@ +AM_CPPFLAGS = -I$(top_srcdir)/include + +noinst_PROGRAMS = trace_event_test +trace_event_test_SOURCES = trace_event_test.c +trace_event_test_LDADD = $(top_builddir)/libust/libust.la $(top_builddir)/libust-initializer.o + +CFLAGS_trace_event_test.o = -I$(src) +noinst_SCRIPTS = run +EXTRA_DIST = run diff --git a/tests/trace_event/run b/tests/trace_event/run new file mode 100755 index 0000000..6a04341 --- /dev/null +++ b/tests/trace_event/run @@ -0,0 +1,5 @@ +#!/bin/sh + +# Run with nothing + +UST_AUTOCOLLECT=1 UST_AUTOPROBE=1 UST_TRACE=1 LD_LIBRARY_PATH=../../libust/.libs:../../../liburcu $1 .libs/trace_event_test diff --git a/tests/trace_event/trace_event_test.c b/tests/trace_event/trace_event_test.c new file mode 100644 index 0000000..9ed3d6c --- /dev/null +++ b/tests/trace_event/trace_event_test.c @@ -0,0 +1,30 @@ +/* Copyright (C) 2010 Nils Carlson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include + +#define CREATE_TRACE_POINTS +#include "trace_event_test.h" + +int main(int argc, char * argv[]) +{ + static unsigned long time, i; + for (i=0; i<10; i++) { + time=trace_clock_read64(); + trace_test(time, i); + } +} diff --git a/tests/trace_event/trace_event_test.h b/tests/trace_event/trace_event_test.h new file mode 100644 index 0000000..b9843bf --- /dev/null +++ b/tests/trace_event/trace_event_test.h @@ -0,0 +1,50 @@ +/* Copyright (C) 2010 Nils Carlson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM trace_event_test + +#if !defined(_TRACE_EVENT_TEST_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EVENT_TEST_H + +#include + +TRACE_EVENT(test, + + TP_PROTO(unsigned long time, unsigned long count), + + TP_ARGS(time, count), + + TP_STRUCT__entry( + __field( unsigned long, time ) + __field( unsigned long, count ) + ), + + TP_fast_assign( + __entry->time = time; + __entry->count = count; + ), + + TP_printf("time=%lu count=%lu", __entry->time, __entry->count) +); + +#endif /* _TRACE_EVENT_TEST_H */ + +/* This part must be outside protection */ +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#define TRACE_INCLUDE_FILE trace_event_test +#include -- 2.34.1