From: Lennart Poettering Date: Thu, 11 Jan 2018 15:02:47 +0000 (+0100) Subject: test: test-process-util additions X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1498d2708fb132b57b5cb926b5e02ed344619d0e;p=elogind.git test: test-process-util additions Add some extra paranoia tests that PTR_TO_PID() and PID_TO_PTR() deals correctly with negative PID. --- diff --git a/src/test/test-process-util.c b/src/test/test-process-util.c index 5353dc77a..757228c92 100644 --- a/src/test/test-process-util.c +++ b/src/test/test-process-util.c @@ -530,6 +530,25 @@ static void test_safe_fork(void) { assert_se(status.si_status == 88); } +static void test_pid_to_ptr(void) { + + assert_se(PTR_TO_PID(NULL) == 0); + assert_se(PID_TO_PTR(0) == NULL); + + assert_se(PTR_TO_PID(PID_TO_PTR(1)) == 1); + assert_se(PTR_TO_PID(PID_TO_PTR(2)) == 2); + assert_se(PTR_TO_PID(PID_TO_PTR(-1)) == -1); + assert_se(PTR_TO_PID(PID_TO_PTR(-2)) == -2); + + assert_se(PTR_TO_PID(PID_TO_PTR(INT16_MAX)) == INT16_MAX); + assert_se(PTR_TO_PID(PID_TO_PTR(INT16_MIN)) == INT16_MIN); + +#if SIZEOF_PID_T >= 4 + assert_se(PTR_TO_PID(PID_TO_PTR(INT32_MAX)) == INT32_MAX); + assert_se(PTR_TO_PID(PID_TO_PTR(INT32_MIN)) == INT32_MIN); +#endif +} + int main(int argc, char *argv[]) { log_set_max_level(LOG_DEBUG); @@ -561,6 +580,7 @@ int main(int argc, char *argv[]) { test_getpid_cached(); test_getpid_measure(); test_safe_fork(); + test_pid_to_ptr(); return 0; }