Revert "sessiond: trigger: run trigger actions through an action executor"
[lttng-tools.git] / tests / unit / test_kernel_data.c
index 70d71cadb2e280185a0eafdc3e1323c26609434c..4ce6f6c745b0bdff5820227e1c26d0f7b573bb50 100644 (file)
@@ -1,22 +1,10 @@
 /*
- * Copyright (c)  2011 David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
  *
- * 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.
+ * SPDX-License-Identifier: GPL-2.0-only
  *
- * 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 <assert.h>
 #include <errno.h>
 #include <stdio.h>
 #include <bin/lttng-sessiond/trace-kernel.h>
 #include <common/defaults.h>
 
-#include "utils.h"
-
-/* This path will NEVER be created in this test */
-#define PATH1 "/tmp/.test-junk-lttng"
+#include <tap/tap.h>
 
 #define RANDOM_STRING_LEN      11
 
-/* For lttngerr.h */
+/* Number of TAP tests in this file */
+#define NUM_TESTS 11
+
+/* For error.h */
 int lttng_opt_quiet = 1;
 int lttng_opt_verbose;
+int lttng_opt_mi;
 
 static const char alphanum[] =
        "0123456789"
@@ -64,120 +53,126 @@ static char *get_random_string(void)
        return random_string;
 }
 
-static void create_one_kernel_session(void)
+static void test_create_one_kernel_session(void)
 {
-       printf("Create kernel session: ");
-       kern = trace_kernel_create_session(PATH1);
-       assert(kern != NULL);
-       PRINT_OK();
+       kern = trace_kernel_create_session();
+       ok(kern != NULL, "Create kernel session");
 
-       printf("Validating kernel session: ");
-       assert(kern->fd == -1);
-       assert(kern->metadata_stream_fd == -1);
-       assert(kern->consumer_fds_sent == 0);
-       assert(kern->channel_count == 0);
-       assert(kern->stream_count_global == 0);
-       assert(kern->metadata == NULL);
-       PRINT_OK();
-
-       /* Init list in order to avoid sefaults from cds_list_del */
-       trace_kernel_destroy_session(kern);
+       if (!kern) {
+               skip(1, "Kernel session is null");
+               return;
+       }
+       ok(kern->fd == -1 &&
+          kern->metadata_stream_fd == -1 &&
+          kern->consumer_fds_sent == 0 &&
+          kern->channel_count == 0 &&
+          kern->stream_count_global == 0 &&
+          kern->metadata == NULL,
+          "Validate kernel session");
 }
 
-static void create_kernel_metadata(void)
+static void test_create_kernel_metadata(void)
 {
        assert(kern != NULL);
 
-       printf("Create kernel metadata: ");
        kern->metadata = trace_kernel_create_metadata();
-       assert(kern->metadata != NULL);
-       PRINT_OK();
-
-       printf("Validating kernel session metadata: ");
-       assert(kern->metadata->fd == -1);
-       assert(kern->metadata->conf != NULL);
-       assert(kern->metadata->conf->attr.overwrite
-                       == DEFAULT_CHANNEL_OVERWRITE);
-       assert(kern->metadata->conf->attr.subbuf_size
-                       == default_get_metadata_subbuf_size());
-       assert(kern->metadata->conf->attr.num_subbuf
-                       == DEFAULT_METADATA_SUBBUF_NUM);
-       assert(kern->metadata->conf->attr.switch_timer_interval
-                       == DEFAULT_CHANNEL_SWITCH_TIMER);
-       assert(kern->metadata->conf->attr.read_timer_interval
-                       == DEFAULT_CHANNEL_READ_TIMER);
-       assert(kern->metadata->conf->attr.output
-                       == DEFAULT_KERNEL_CHANNEL_OUTPUT);
-       PRINT_OK();
+       ok(kern->metadata != NULL, "Create kernel metadata");
+
+       ok(kern->metadata->fd == -1 &&
+          kern->metadata->conf != NULL &&
+          kern->metadata->conf->attr.overwrite
+                       == DEFAULT_METADATA_OVERWRITE &&
+          kern->metadata->conf->attr.subbuf_size
+                       == default_get_metadata_subbuf_size() &&
+          kern->metadata->conf->attr.num_subbuf
+                       == DEFAULT_METADATA_SUBBUF_NUM &&
+          kern->metadata->conf->attr.switch_timer_interval
+                       == DEFAULT_METADATA_SWITCH_TIMER &&
+          kern->metadata->conf->attr.read_timer_interval
+                       == DEFAULT_METADATA_READ_TIMER &&
+          kern->metadata->conf->attr.output
+                       == LTTNG_EVENT_MMAP,
+          "Validate kernel session metadata");
 
        trace_kernel_destroy_metadata(kern->metadata);
 }
 
-static void create_kernel_channel(void)
+static void test_create_kernel_channel(void)
 {
        struct ltt_kernel_channel *chan;
        struct lttng_channel attr;
+       struct lttng_channel_extended extended;
 
        memset(&attr, 0, sizeof(attr));
+       memset(&extended, 0, sizeof(extended));
+       attr.attr.extended.ptr = &extended;
 
-       printf("Creating kernel channel: ");
        chan = trace_kernel_create_channel(&attr);
-       assert(chan != NULL);
-       PRINT_OK();
+       ok(chan != NULL, "Create kernel channel");
+
+       if (!chan) {
+               skip(1, "Channel is null");
+               return;
+       }
 
-       printf("Validating kernel channel: ");
-       assert(chan->fd == -1);
-       assert(chan->enabled == 1);
-       assert(chan->stream_count == 0);
-       assert(chan->ctx == NULL);
-       assert(chan->channel->attr.overwrite  == attr.attr.overwrite);
-       PRINT_OK();
+       ok(chan->fd == -1 &&
+          chan->enabled == 1 &&
+          chan->stream_count == 0 &&
+          chan->channel->attr.overwrite  == attr.attr.overwrite,
+          "Validate kernel channel");
 
        /* Init list in order to avoid sefaults from cds_list_del */
        CDS_INIT_LIST_HEAD(&chan->list);
        trace_kernel_destroy_channel(chan);
 }
 
-static void create_kernel_event(void)
+static void test_create_kernel_event(void)
 {
+       enum lttng_error_code ret;
        struct ltt_kernel_event *event;
        struct lttng_event ev;
 
        memset(&ev, 0, sizeof(ev));
-       strncpy(ev.name, get_random_string(), LTTNG_KERNEL_SYM_NAME_LEN);
+       ok(!lttng_strncpy(ev.name, get_random_string(),
+                       RANDOM_STRING_LEN),
+               "Validate string length");
        ev.type = LTTNG_EVENT_TRACEPOINT;
        ev.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL;
 
-       printf("Creating kernel event: ");
-       event = trace_kernel_create_event(&ev);
-       assert(event != NULL);
-       PRINT_OK();
+       ret = trace_kernel_create_event(&ev, NULL, NULL, &event);
+       ok(ret == LTTNG_OK, "Create kernel event");
+
+       if (!event) {
+               skip(1, "Event is null");
+               return;
+       }
 
-       printf("Validating kernel event: ");
-       assert(event->fd == -1);
-       assert(event->enabled == 1);
-       assert(event->event->instrumentation == LTTNG_KERNEL_TRACEPOINT);
-       assert(strlen(event->event->name));
-       PRINT_OK();
+       ok(event->fd == -1 &&
+          event->enabled == 1 &&
+          event->event->instrumentation == LTTNG_KERNEL_TRACEPOINT &&
+          strlen(event->event->name),
+          "Validate kernel event");
 
        /* Init list in order to avoid sefaults from cds_list_del */
        CDS_INIT_LIST_HEAD(&event->list);
        trace_kernel_destroy_event(event);
 }
 
-static void create_kernel_stream(void)
+static void test_create_kernel_stream(void)
 {
        struct ltt_kernel_stream *stream;
 
-       printf("Creating kernel stream: ");
        stream = trace_kernel_create_stream("stream1", 0);
-       assert(stream != NULL);
-       PRINT_OK();
+       ok(stream != NULL, "Create kernel stream");
+
+       if (!stream) {
+               skip(1, "Stream is null");
+               return;
+       }
 
-       printf("Validating kernel stream: ");
-       assert(stream->fd == -1);
-       assert(stream->state == 0);
-       PRINT_OK();
+       ok(stream->fd == -1 &&
+          stream->state == 0,
+          "Validate kernel stream");
 
        /* Init list in order to avoid sefaults from cds_list_del */
        CDS_INIT_LIST_HEAD(&stream->list);
@@ -186,18 +181,15 @@ static void create_kernel_stream(void)
 
 int main(int argc, char **argv)
 {
-       printf("\nTesting kernel data structures:\n-----------\n");
-
-       create_one_kernel_session();
-
-       create_kernel_metadata();
-       create_kernel_channel();
-
+       plan_tests(NUM_TESTS);
 
-       create_kernel_event();
+       diag("Kernel data structure unit test");
 
-       create_kernel_stream();
+       test_create_one_kernel_session();
+       test_create_kernel_metadata();
+       test_create_kernel_channel();
+       test_create_kernel_event();
+       test_create_kernel_stream();
 
-       /* Success */
-       return 0;
+       return exit_status();
 }
This page took 0.027604 seconds and 5 git commands to generate.