tests: Fix syscall detection
authorAndreas Schneider <asn@samba.org>
Fri, 31 Jul 2015 12:11:45 +0000 (14:11 +0200)
committerAndreas Schneider <asn@samba.org>
Fri, 31 Jul 2015 13:18:19 +0000 (15:18 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
tests/testsuite.c

index ec14a037077fdccae241f8a19e16af2bebff8379..e20e9f0bff571ceeaa758f4a9cfc9fc814f402cc 100644 (file)
@@ -245,15 +245,25 @@ static void test_uwrap_syscall_setreuid(void **state)
 
        (void) state; /* unused */
 
+#if defined(SYS_setreuid)
        rc = syscall(SYS_setreuid, -1, 0);
+#elif defined(SYS_setreuid32)
+       rc = syscall(SYS_setreuid32, -1, 0);
+#endif
        assert_int_equal(rc, 0);
 
        u = geteuid();
-#ifdef SYS_geteuid /* not available on Solaris */
+#if defined(SYS_geteuid) /* not available on Solaris */
        assert_int_equal(u, syscall(SYS_geteuid));
+#elif defined(SYS_geteuid32)
+       assert_int_equal(u, syscall(SYS_geteuid32));
 #endif
 
+#if defined(SYS_setreuid)
        rc = syscall(SYS_setreuid, -1, 42);
+#elif defined(SYS_setreuid32)
+       rc = syscall(SYS_setreuid32, -1, 42);
+#endif
        assert_int_equal(rc, 0);
 
        u = geteuid();
@@ -267,15 +277,25 @@ static void test_uwrap_syscall_setregid(void **state)
 
        (void) state; /* unused */
 
+#if defined(SYS_setregid)
        rc = syscall(SYS_setregid, -1, 0);
+#elif defined(SYS_setregid32)
+       rc = syscall(SYS_setregid32, -1, 0);
+#endif
        assert_int_equal(rc, 0);
 
        g = getegid();
-#ifdef SYS_getegid /* Not available on Solaris */
+#if defined(SYS_getegid) /* Not available on Solaris */
        assert_int_equal(g, syscall(SYS_getegid));
+#elif defined(SYS_getegid32)
+       assert_int_equal(g, syscall(SYS_getegid32));
 #endif
 
+#if defined(SYS_setregid)
        rc = syscall(SYS_setregid, -1, 42);
+#elif defined(SYS_setregid32)
+       rc = syscall(SYS_setregid32, -1, 42);
+#endif
        assert_int_equal(rc, 0);
 
        g = getegid();
@@ -367,9 +387,9 @@ static void test_uwrap_syscall_setgroups(void **state)
 
        (void) state; /* unused */
 
-#ifdef SYS_setgroups
+#if defined(SYS_setgroups)
        rc = syscall(SYS_setgroups, ARRAY_SIZE(glist), glist);
-#elif SYS_setgroups32
+#elif defined (SYS_setgroups32)
        rc = syscall(SYS_setgroups32, ARRAY_SIZE(glist), glist);
 #endif
        assert_int_equal(rc, 0);
@@ -381,9 +401,9 @@ static void test_uwrap_syscall_setgroups(void **state)
 
        /* Drop all supplementary groups. This is often done by daemons */
        memset(rlist, 0, sizeof(rlist));
-#ifdef SYS_setgroups
+#if defined(SYS_setgroups)
        rc = syscall(SYS_setgroups, 0, NULL);
-#elif SYS_setgroups32
+#elif defined(SYS_setgroups32)
        rc = syscall(SYS_setgroups32, 0, NULL);
 #endif
        assert_int_equal(rc, 0);