diff mbox series

[3/3] trace-cmd utest: Add tests for trace-cmd sqlhist

Message ID 20240106042428.279706-4-rostedt@goodmis.org (mailing list archive)
State Accepted
Commit d93049c367447b92e8e6c7e433a34ab257d2fd07
Headers show
Series trace-cmd: Add sqlhist option and show hist and triggers | expand

Commit Message

Steven Rostedt Jan. 6, 2024, 4:22 a.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

Add tests to test the trace-cmd sqlhist command as well as the
trace-cmd show --hist and --trigger options.

Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 utest/tracecmd-utest.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
diff mbox series

Patch

diff --git a/utest/tracecmd-utest.c b/utest/tracecmd-utest.c
index 6ba2318eaeb4..d67678e36554 100644
--- a/utest/tracecmd-utest.c
+++ b/utest/tracecmd-utest.c
@@ -32,6 +32,13 @@  static char tracecmd_exec[PATH_MAX];
 #define TRACECMD_IN		"-i", TRACECMD_FILE
 #define TRACECMD_IN2		"-i", TRACECMD_FILE2
 
+#define TRACECMD_SQL_HIST	"SELECT irq FROM irq_handler_entry"
+#define TRACECMD_SQL_READ_HIST	"show", "--hist", "irq_handler_entry"
+
+#define SYNTH_EVENT		"wakeup"
+#define TRACECMD_SQL_SYNTH	"-e", "-n", SYNTH_EVENT, "SELECT start.pid AS this_pid, (end.TIMESTAMP_USECS - start.TIMESTAMP_USECS) AS delta FROM sched_waking as start JOIN sched_switch AS end ON start.pid = end.next_pid"
+#define TRACECMD_SQL_START_SYNTH "start", "-e", SYNTH_EVENT
+
 static char **get_args(const char *cmd, va_list ap)
 {
 	const char *param;
@@ -326,6 +333,25 @@  static void test_trace_record_report(void)
 	CU_TEST(ret == 0);
 }
 
+static void test_trace_sqlhist_hist(void)
+{
+	int ret;
+
+	ret = run_trace("sqlhist", "-e", TRACECMD_SQL_HIST, NULL);
+	CU_TEST(ret == 0);
+	ret = grep_match(" *Hits: [0-9][0-9]*", TRACECMD_SQL_READ_HIST, NULL);
+	CU_TEST(ret == 0);
+	ret = run_trace("sqlhist", TRACECMD_SQL_SYNTH, NULL);
+	CU_TEST(ret == 0);
+	ret = run_trace(TRACECMD_SQL_START_SYNTH, NULL);
+	CU_TEST(ret == 0);
+	sleep(1);
+	ret = grep_match(SYNTH_EVENT ":", "show", NULL);
+	CU_TEST(ret == 0);
+
+	tracefs_instance_reset(NULL);
+}
+
 static int read_stats(const char *out, const char *match, const char *cmd, ...)
 {
 	struct do_grep_it gdata;
@@ -508,6 +534,8 @@  void test_tracecmd_lib(void)
 	}
 	CU_add_test(suite, "Simple record and report",
 		    test_trace_record_report);
+	CU_add_test(suite, "Create a histogram",
+		    test_trace_sqlhist_hist);
 	CU_add_test(suite, "Test convert from v7 to v6",
 		    test_trace_convert6);
 	CU_add_test(suite, "Use libraries to read file",