linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-trace-devel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Tom Zanussi <zanussi@kernel.org>,
	Daniel Bristot de Oliveira <bristot@redhat.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	linux-rt-users <linux-rt-users@vger.kernel.org>,
	Clark Williams <williams@redhat.com>,
	"Steven Rostedt (VMware)" <rostedt@goodmis.org>
Subject: [PATCH v2 02/21] tracefs: Add unit tests for tracefs_sql()
Date: Tue,  3 Aug 2021 00:23:28 -0400	[thread overview]
Message-ID: <20210803042347.679499-3-rostedt@goodmis.org> (raw)
In-Reply-To: <20210803042347.679499-1-rostedt@goodmis.org>

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Add basic unit test for tracefs_sql()...

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 utest/tracefs-utest.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/utest/tracefs-utest.c b/utest/tracefs-utest.c
index 2a99217b938a..89bb1cce61f7 100644
--- a/utest/tracefs-utest.c
+++ b/utest/tracefs-utest.c
@@ -44,6 +44,12 @@
 #define KRETPROBE_ADDR	"do_sys_openat2"
 #define KRETPROBE_FMT	"ret=$retval"
 
+#define SQL_1_EVENT	"wakeup_1"
+#define SQL_1_SQL	"select sched_switch.next_pid as woke_pid, sched_waking.common_pid as waking_pid from sched_waking join sched_switch on sched_switch.next_pid = sched_waking.pid"
+
+#define SQL_2_EVENT	"wakeup_2"
+#define SQL_2_SQL	"select woke.next_pid as woke_pid, wake.common_pid as waking_pid from sched_waking as wake join sched_switch as woke on woke.next_pid = wake.pid"
+
 static struct tracefs_instance *test_instance;
 static struct tep_handle *test_tep;
 struct test_sample {
@@ -322,6 +328,41 @@ static void test_ftrace_marker(void)
 	test_instance_ftrace_marker(test_instance);
 }
 
+static void test_instance_trace_sql(struct tracefs_instance *instance)
+{
+	struct tracefs_synth *synth;
+	struct trace_seq seq;
+	struct tep_handle *tep;
+	int ret;
+
+	tep = tracefs_local_events(NULL);
+	CU_TEST(tep != NULL);
+
+	trace_seq_init(&seq);
+
+	synth = tracefs_sql(tep, SQL_1_EVENT, SQL_1_SQL, NULL);
+	CU_TEST(synth != NULL);
+	ret = tracefs_synth_show(&seq, instance, synth);
+	CU_TEST(ret == 0);
+	tracefs_synth_free(synth);
+	trace_seq_reset(&seq);
+
+	synth = tracefs_sql(tep, SQL_2_EVENT, SQL_2_SQL, NULL);
+	CU_TEST(synth != NULL);
+	ret = tracefs_synth_show(&seq, instance, synth);
+	CU_TEST(ret == 0);
+	tracefs_synth_free(synth);
+	trace_seq_reset(&seq);
+
+	tep_free(tep);
+	trace_seq_destroy(&seq);
+}
+
+static void test_trace_sql(void)
+{
+	test_instance_trace_sql(test_instance);
+}
+
 static void test_trace_file(void)
 {
 	const char *tmp = get_rand_str();
@@ -1338,6 +1379,8 @@ void test_tracefs_lib(void)
 		fprintf(stderr, "Suite \"%s\" cannot be ceated\n", TRACEFS_SUITE);
 		return;
 	}
+	CU_add_test(suite, "trace sql",
+		    test_trace_sql);
 	CU_add_test(suite, "tracing file / directory APIs",
 		    test_trace_file);
 	CU_add_test(suite, "instance file / directory APIs",
-- 
2.30.2


  parent reply	other threads:[~2021-08-03  4:23 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-03  4:23 [PATCH v2 00/21] libtracefs: Introducing tracefs_sql() to create synthetice events with an SQL line Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 01/21] libtracefs: Added new API tracefs_sql() Steven Rostedt
2021-08-03  7:27   ` Lukas Bulwahn
2021-08-03  4:23 ` Steven Rostedt [this message]
2021-08-03  4:23 ` [PATCH v2 03/21] libtracefs: Add comparing start and end fields in tracefs_sql() Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 04/21] libtracefs: Add unit test to test tracefs_sql() compare Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 05/21] libtracefs: Add filtering for start and end events in tracefs_sql() Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 06/21] libtracefs: Add unit test to test tracefs_sql() where clause Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 07/21] libtracefs: Make sqlhist parser reentrant Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 08/21] libtracefs: Make parser unique to libtracefs Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 09/21] libtracefs: Add line number and index to expr structure Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 10/21] libtracefs: Add error message when match fields are not FROM and JOIN events Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 11/21] libtracefs: Add error message when match or init fails from bad events Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 12/21] libtracefs; Add error message for bad selections to SQL sequence Steven Rostedt
2021-08-03 12:40   ` Daniel Bristot de Oliveira
2021-08-03  4:23 ` [PATCH v2 13/21] libtracefs: Add error message when compare fields fail Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 14/21] libtracefs: Add error message for grouping events in SQL filter Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 15/21] libtracefs: Add error message for bad filters in SQL statement Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 16/21] libtracefs: Add error message when calculation has no label Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 17/21] libtracefs: Add man page for tracefs_sql() Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 18/21] libtracefs: Allow for simple SQL statements to create a histogram Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 19/21] libtracefs: Allow trace_sql() to take keywords for fields with backslash Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 20/21] libtracefs: Add CAST() syntax to SQL parsing for histogram types Steven Rostedt
2021-08-03  4:23 ` [PATCH v2 21/21] libtracefs: Add CAST(x AS _COUNTER_) syntax to create values in histograms Steven Rostedt
2021-08-04 11:57 ` [PATCH v2 00/21] libtracefs: Introducing tracefs_sql() to create synthetice events with an SQL line Ahmed S. Darwish
2021-08-04 13:23   ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210803042347.679499-3-rostedt@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=bristot@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=williams@redhat.com \
    --cc=zanussi@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).