From cf4f50f94332615abcf6dd345ee1e8fce69232ca Mon Sep 17 00:00:00 2001 From: Ola Bini Date: Tue, 15 Sep 2015 17:37:25 +0200 Subject: Add tests for util_process --- src/test/test_util_process.c | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/test/test_util_process.c (limited to 'src/test/test_util_process.c') diff --git a/src/test/test_util_process.c b/src/test/test_util_process.c new file mode 100644 index 0000000000..5d6c072f3f --- /dev/null +++ b/src/test/test_util_process.c @@ -0,0 +1,67 @@ +/* Copyright (c) 2010-2015, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#define UTIL_PROCESS_PRIVATE +#include "orconfig.h" +#include "or.h" + +#include "test.h" + +#include "util_process.h" + +#include "log_test_helpers.h" + +#define NS_MODULE util_process + +static +void temp_callback(int r, void *s) +{ + (void)r; + (void)s; +} + +static void +test_util_process_set_waitpid_callback(void *ignored) +{ + (void)ignored; + waitpid_callback_t *res; + int previous_log = setup_capture_of_logs(LOG_WARN); + pid_t pid = (pid_t)42; + + res = set_waitpid_callback(pid, temp_callback, NULL); + tt_assert(res); + + res = set_waitpid_callback(pid, temp_callback, NULL); + tt_assert(res); + tt_str_op(mock_saved_log_at(0), OP_EQ, "Replaced a waitpid monitor on pid 42. That should be impossible.\n"); + + done: + teardown_capture_of_logs(previous_log); +} + + +static void +test_util_process_clear_waitpid_callback(void *ignored) +{ + (void)ignored; + waitpid_callback_t *res; + int previous_log = setup_capture_of_logs(LOG_WARN); + pid_t pid = (pid_t)43; + + clear_waitpid_callback(NULL); + + res = set_waitpid_callback(pid, temp_callback, NULL); + clear_waitpid_callback(res); + clear_waitpid_callback(res); + + // done: + teardown_capture_of_logs(previous_log); +} + + + +struct testcase_t util_process_tests[] = { + { "set_waitpid_callback", test_util_process_set_waitpid_callback, 0, NULL, NULL }, + { "clear_waitpid_callback", test_util_process_clear_waitpid_callback, 0, NULL, NULL }, + END_OF_TESTCASES +}; -- cgit v1.2.3-54-g00ecf