Add unit tests for lttng_ust_strerror
authorMichael Jeanson <mjeanson@efficios.com>
Thu, 25 Mar 2021 17:21:18 +0000 (13:21 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 29 Mar 2021 18:01:00 +0000 (14:01 -0400)
Change-Id: I0c85780835b41a1ace9e91f0edc104bfd272f51f
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
.gitignore
configure.ac
tests/Makefile.am
tests/unit/Makefile.am
tests/unit/ust-error/Makefile.am [new file with mode: 0644]
tests/unit/ust-error/ust-error.c [new file with mode: 0644]

index 78ecf88f2d6c96aa01c7b229833f7dce5e30cabd..00588540b95a388344722c5e6d3c983a58d781b5 100644 (file)
@@ -85,6 +85,7 @@ tests/unit/libringbuffer/test_shm
 tests/unit/pthread_name/test_pthread_name
 tests/unit/snprintf/test_snprintf
 tests/unit/ust-elf/ust-elf
+tests/unit/ust-error/test_ust_error
 
 # Java agent library
 *.class
index 5c060fb58dab142ae532b093a6eb2b355b61af04..5e4f8671b61a65bdb4aaa5d5a22ed8ecd2170187 100644 (file)
@@ -562,6 +562,7 @@ AC_CONFIG_FILES([
   tests/unit/pthread_name/Makefile
   tests/unit/snprintf/Makefile
   tests/unit/ust-elf/Makefile
+  tests/unit/ust-error/Makefile
   tests/utils/Makefile
   lttng-ust.pc
   lttng-ust-ctl.pc
index 7be533317b5568c043a9a880f0df0a8b271b337c..d3ba1f631fbdbb6b2144b8f40e506dcb3df5b0f5 100644 (file)
@@ -14,7 +14,8 @@ TESTS = \
        unit/libmsgpack/test_msgpack \
        unit/pthread_name/test_pthread_name \
        unit/snprintf/test_snprintf \
-       unit/ust-elf/test_ust_elf
+       unit/ust-elf/test_ust_elf \
+       unit/ust-error/test_ust_error
 
 EXTRA_DIST = README
 
index ecca28ef8cfe99f7a52ff2614b00d0b939bf8a4c..c8f52c3ca012b3221165688a43346164dffea907 100644 (file)
@@ -6,4 +6,5 @@ SUBDIRS = \
        libringbuffer \
        pthread_name \
        snprintf \
-       ust-elf
+       ust-elf \
+       ust-error
diff --git a/tests/unit/ust-error/Makefile.am b/tests/unit/ust-error/Makefile.am
new file mode 100644 (file)
index 0000000..549b833
--- /dev/null
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: LGPL-2.1-only
+
+AM_CPPFLAGS += -I$(top_srcdir)/tests/utils
+
+noinst_PROGRAMS = test_ust_error
+test_ust_error_SOURCES = ust-error.c
+test_ust_error_LDADD = $(top_builddir)/liblttng-ust/liblttng-ust.la \
+       $(top_builddir)/tests/utils/libtap.a
diff --git a/tests/unit/ust-error/ust-error.c b/tests/unit/ust-error/ust-error.c
new file mode 100644 (file)
index 0000000..9b80e26
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
+ */
+
+#include <limits.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <lttng/ust-error.h>
+
+#include "tap.h"
+
+/*
+ * Sync with liblttng-ust-comm/lttng-ust-comm.c
+ */
+static const char *ok_str = "Success";
+static const char *unknown_str = "Unknown error";
+static const char *noent_str = "No entry";
+static const char *peercred_str = "Peer credentials PID is invalid. Socket appears to belong to a distinct, non-nested pid namespace.";
+
+#define NUM_TESTS 12
+
+static
+void test_ust_error(void)
+{
+       const char *error_str = NULL;
+
+       error_str = lttng_ust_strerror(LTTNG_UST_OK);
+       ok(strcmp(ok_str, error_str) == 0, "lttng_ust_strerror - Positive LTTNG_UST_OK returns '%s' (%s)", ok_str, error_str);
+
+       error_str = lttng_ust_strerror(-LTTNG_UST_OK);
+       ok(strcmp(ok_str, error_str) == 0, "lttng_ust_strerror - Negative LTTNG_UST_OK returns '%s' (%s)", ok_str, error_str);
+
+       error_str = lttng_ust_strerror(INT_MAX);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Positive large int returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(INT_MIN);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Negative large int returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(LTTNG_UST_ERR_NR);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Positive LTTNG_UST_ERR_NR returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(-LTTNG_UST_ERR_NR);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Negative LTTNG_UST_ERR_NR returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(LTTNG_UST_ERR_NR + 1);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Positive LTTNG_UST_ERR_NR + 1 returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(-LTTNG_UST_ERR_NR - 1);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Negative LTTNG_UST_ERR_NR - 1 returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(LTTNG_UST_ERR_NOENT);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Positive LTTNG_UST_ERR_NOENT returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(-LTTNG_UST_ERR_NOENT);
+       ok(strcmp(noent_str, error_str) == 0, "lttng_ust_strerror - Negative LTTNG_UST_ERR_NOENT returns '%s' (%s)", noent_str, error_str);
+
+       /* Last error code */
+       error_str = lttng_ust_strerror(LTTNG_UST_ERR_PEERCRED_PID);
+       ok(strcmp(unknown_str, error_str) == 0, "lttng_ust_strerror - Positive LTTNG_UST_ERR_PEERCRED_PID returns '%s' (%s)", unknown_str, error_str);
+
+       error_str = lttng_ust_strerror(-LTTNG_UST_ERR_PEERCRED_PID);
+       ok(strcmp(peercred_str, error_str) == 0, "lttng_ust_strerror - Negative LTTNG_UST_ERR_PEERCRED_PID returns '%s' (%s)", peercred_str, error_str);
+}
+
+int main(void)
+{
+       plan_tests(NUM_TESTS);
+
+       test_ust_error();
+
+       return exit_status();
+}
This page took 0.027388 seconds and 4 git commands to generate.