X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Funit%2Ftest_kernel_data.c;h=4ce6f6c745b0bdff5820227e1c26d0f7b573bb50;hp=70d71cadb2e280185a0eafdc3e1323c26609434c;hb=674c3e2c8477aafe7b2145861ad83dd041d59018;hpb=81d029da32ba3c502bdce6ea56b3603eed77e951 diff --git a/tests/unit/test_kernel_data.c b/tests/unit/test_kernel_data.c index 70d71cadb..4ce6f6c74 100644 --- a/tests/unit/test_kernel_data.c +++ b/tests/unit/test_kernel_data.c @@ -1,22 +1,10 @@ /* - * Copyright (c) 2011 David Goulet + * 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. + * 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 #include #include @@ -28,16 +16,17 @@ #include #include -#include "utils.h" - -/* This path will NEVER be created in this test */ -#define PATH1 "/tmp/.test-junk-lttng" +#include #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(); }