summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psxid01
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-11-17 07:53:01 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-11-20 10:30:22 +0100
commitffa71f1cd0af6682aca1da3b05fed02f64ec7e5b (patch)
tree76fb95010a2698dfff7185b96045587ce9b45ff7 /testsuites/psxtests/psxid01
parentlibcsupport: Use POSIX key for getgrent() (diff)
downloadrtems-ffa71f1cd0af6682aca1da3b05fed02f64ec7e5b.tar.bz2
libcsupport: Implement getgroups()
Diffstat (limited to 'testsuites/psxtests/psxid01')
-rw-r--r--testsuites/psxtests/psxid01/init.c53
-rw-r--r--testsuites/psxtests/psxid01/psxid01.scn15
2 files changed, 60 insertions, 8 deletions
diff --git a/testsuites/psxtests/psxid01/init.c b/testsuites/psxtests/psxid01/init.c
index 4224840af5..5aa03999df 100644
--- a/testsuites/psxtests/psxid01/init.c
+++ b/testsuites/psxtests/psxid01/init.c
@@ -34,9 +34,11 @@ void test_gid(void)
int sc;
gid = getegid();
+ rtems_test_assert( gid == 0 );
printf( "getegid = %d\n", gid );
gid = getgid();
+ rtems_test_assert( gid == 0 );
printf( "getgid = %d\n", gid );
puts( "setgid(5)" );
@@ -44,11 +46,34 @@ void test_gid(void)
rtems_test_assert( sc == 0 );
gid = getegid();
+ rtems_test_assert( gid == 0 );
printf( "getegid = %d\n", gid );
gid = getgid();
+ rtems_test_assert( gid == 5 );
printf( "getgid = %d\n", gid );
+ puts( "setegid(5)" );
+ sc = setegid(5);
+ rtems_test_assert( sc == 0 );
+
+ gid = getegid();
+ rtems_test_assert( gid == 5 );
+ printf( "getegid = %d\n", gid );
+
+ gid = getgid();
+ rtems_test_assert( gid == 5 );
+ printf( "getgid = %d\n", gid );
+
+ puts( "setgid(0)" );
+ sc = setgid(0);
+ rtems_test_assert( sc == 0 );
+
+ puts( "setegid(0)" );
+ sc = setegid(0);
+ rtems_test_assert( sc == 0 );
+
+ errno = 0;
puts( "setpgid(getpid(), 10) - ENOSYS" );
sc = setpgid( getpid(), 10 );
rtems_test_assert( sc == -1 );
@@ -61,9 +86,11 @@ void test_uid(void)
int sc;
uid = geteuid();
+ rtems_test_assert( uid == 0 );
printf( "geteuid = %d\n", uid );
uid = getuid();
+ rtems_test_assert( uid == 0 );
printf( "getuid = %d\n", uid );
puts( "setuid(5)" );
@@ -71,11 +98,32 @@ void test_uid(void)
rtems_test_assert( sc == 0 );
uid = geteuid();
+ rtems_test_assert( uid == 0 );
printf( "geteuid = %d\n", uid );
uid = getuid();
+ rtems_test_assert( uid == 5 );
printf( "getuid = %d\n", uid );
+ puts( "seteuid(5)" );
+ sc = seteuid(5);
+ rtems_test_assert( sc == 0 );
+
+ uid = geteuid();
+ rtems_test_assert( uid == 5 );
+ printf( "geteuid = %d\n", uid );
+
+ uid = getuid();
+ rtems_test_assert( uid == 5 );
+ printf( "getuid = %d\n", uid );
+
+ puts( "seteuid(0)" );
+ sc = seteuid(0);
+ rtems_test_assert( sc == 0 );
+
+ puts( "setuid(0)" );
+ sc = setuid(0);
+ rtems_test_assert( sc == 0 );
}
pid_t __getpid(void);
@@ -106,11 +154,6 @@ void test_pid(void)
puts( "getpgrp - return local node - OK" );
pid = getpgrp();
printf( "getpgrp returned %d\n", pid );
-
- puts( "getgroups - return 0 - OK" );
- sc = getgroups( 0, NULL );
- rtems_test_assert( sc == 0 );
-
}
void test_getlogin(void)
diff --git a/testsuites/psxtests/psxid01/psxid01.scn b/testsuites/psxtests/psxid01/psxid01.scn
index 8b9143d113..e0ea2a0ea2 100644
--- a/testsuites/psxtests/psxid01/psxid01.scn
+++ b/testsuites/psxtests/psxid01/psxid01.scn
@@ -1,9 +1,14 @@
-*** TEST ID 01 ***
+*** BEGIN OF TEST PSXID 1 ***
getegid = 0
getgid = 0
setgid(5)
getegid = 0
getgid = 5
+setegid(5)
+getegid = 5
+getgid = 5
+setgid(0)
+setegid(0)
setpgid(getpid(), 10) - ENOSYS
geteuid = 0
@@ -11,6 +16,11 @@ getuid = 0
setuid(5)
geteuid = 0
getuid = 5
+seteuid(5)
+geteuid = 5
+getuid = 5
+seteuid(0)
+setuid(0)
getpid = 1
__getpid = 1
@@ -18,7 +28,6 @@ getppid = 0
setsid - EPERM
getpgrp - return local node - OK
getpgrp returned 1
-getgroups - return 0 - OK
setuid(5)
getlogin() -- ()
@@ -26,4 +35,4 @@ setuid(0)
getlogin() -- (root)
getlogin_r(NULL, LOGIN_NAME_MAX) -- EFAULT
getlogin_r(buffer, 0) -- ERANGE
-*** END OF TEST ID 01 ***
+*** END OF TEST PSXID 1 ***