chiark / gitweb /
test: test-process-util additions
authorLennart Poettering <lennart@poettering.net>
Thu, 11 Jan 2018 15:02:47 +0000 (16:02 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 30 May 2018 05:50:14 +0000 (07:50 +0200)
Add some extra paranoia tests that PTR_TO_PID() and PID_TO_PTR() deals
correctly with negative PID.

src/test/test-process-util.c

index 5353dc77a9c0b7cad0950270ce77e443cf42a4d5..757228c920120a504a55f5b4709d637cb28a2114 100644 (file)
@@ -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;
 }