From 24ba2c301c2e97c19d4feeb1448a0188bd4d6e73 Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Sun, 26 Jun 2016 06:17:09 +0200 Subject: [PATCH] [tests] Add knet_log_get_loglevel tests Signed-off-by: Fabio M. Di Nitto --- libknet/tests/Makefile.am | 4 + libknet/tests/api_knet_log_get_loglevel.c | 102 ++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 libknet/tests/api_knet_log_get_loglevel.c diff --git a/libknet/tests/Makefile.am b/libknet/tests/Makefile.am index a04f1252f..9de6b5d5c 100644 --- a/libknet/tests/Makefile.am +++ b/libknet/tests/Makefile.am @@ -40,6 +40,7 @@ check_PROGRAMS = \ api_knet_log_get_loglevel_name \ api_knet_log_get_loglevel_id \ api_knet_log_set_loglevel \ + api_knet_log_get_loglevel \ timediff_test noinst_PROGRAMS = \ @@ -104,6 +105,9 @@ api_knet_log_get_loglevel_id_SOURCES = api_knet_log_get_loglevel_id.c \ api_knet_log_set_loglevel_SOURCES = api_knet_log_set_loglevel.c \ test-common.c +api_knet_log_get_loglevel_SOURCES = api_knet_log_get_loglevel.c \ + test-common.c + ping_test_SOURCES = ping_test.c pckt_test_SOURCES = pckt_test.c diff --git a/libknet/tests/api_knet_log_get_loglevel.c b/libknet/tests/api_knet_log_get_loglevel.c new file mode 100644 index 000000000..d9576fbf3 --- /dev/null +++ b/libknet/tests/api_knet_log_get_loglevel.c @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2016 Red Hat, Inc. All rights reserved. + * + * Authors: Fabio M. Di Nitto + * + * This software licensed under GPL-2.0+, LGPL-2.0+ + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "libknet.h" +#include "internals.h" + +#include "test-common.h" + +static void test(void) +{ + knet_handle_t knet_h; + uint8_t level; + int logfds[2]; + + printf("Test knet_log_get_loglevel incorrect knet_h\n"); + + if ((!knet_log_get_loglevel(NULL, KNET_SUB_LAST, &level)) || (errno != EINVAL)) { + printf("knet_log_get_loglevel accepted invalid knet_h or returned incorrect error: %s\n", strerror(errno)); + exit(FAIL); + } + + setup_logpipes(logfds); + + printf("Test knet_log_get_loglevel incorrect subsystem\n"); + + knet_h = knet_handle_new(1, logfds[1], KNET_LOG_INFO); + + if (!knet_h) { + printf("knet_handle_new failed: %s\n", strerror(errno)); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); + exit(FAIL); + } + + if ((!knet_log_get_loglevel(knet_h, KNET_SUB_LAST + 1, &level)) || (errno != EINVAL)) { + printf("knet_log_get_loglevel accepted invalid subsystem or returned incorrect error: %s\n", strerror(errno)); + knet_handle_free(knet_h); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); + exit(FAIL); + } + + flush_logs(logfds[0], stdout); + + printf("Test knet_log_get_loglevel incorrect log level\n"); + + if ((!knet_log_get_loglevel(knet_h, KNET_SUB_LAST, NULL)) || (errno != EINVAL)) { + printf("knet_log_get_loglevel accepted invalid log level or returned incorrect error: %s\n", strerror(errno)); + knet_handle_free(knet_h); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); + exit(FAIL); + } + + flush_logs(logfds[0], stdout); + + printf("Test knet_log_get_loglevel with valid parameters\n"); + + if (knet_log_get_loglevel(knet_h, KNET_SUB_LAST, &level ) < 0) { + printf("knet_log_get_loglevel failed: %s\n", strerror(errno)); + knet_handle_free(knet_h); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); + exit(FAIL); + } + + if (knet_h->log_levels[KNET_SUB_LAST] != level) { + printf("knet_log_get_loglevel failed to get the right value\n"); + knet_handle_free(knet_h); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); + exit(FAIL); + } + + knet_handle_free(knet_h); + flush_logs(logfds[0], stdout); + close_logpipes(logfds); +} + +int main(int argc, char *argv[]) +{ + need_root(); + + test(); + + return PASS; +}