diff options
Diffstat (limited to 'usr.bin/cpio/test/test_owner_parse.c')
-rw-r--r-- | usr.bin/cpio/test/test_owner_parse.c | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/usr.bin/cpio/test/test_owner_parse.c b/usr.bin/cpio/test/test_owner_parse.c index 06fabd9..d07724e 100644 --- a/usr.bin/cpio/test/test_owner_parse.c +++ b/usr.bin/cpio/test/test_owner_parse.c @@ -28,7 +28,12 @@ __FBSDID("$FreeBSD$"); #include "../cpio.h" #include "err.h" -#if defined(__CYGWIN__) +#if !defined(_WIN32) +#define ROOT "root" +static int root_uids[] = { 0 }; +/* Solaris 9 root has gid 1 (other) */ +static int root_gids[] = { 0, 1 }; +#elif defined(__CYGWIN__) /* On cygwin, the Administrator user most likely exists (unless * it has been renamed or is in a non-English localization), but * its primary group membership depends on how the user set up @@ -40,12 +45,9 @@ __FBSDID("$FreeBSD$"); #define ROOT "Administrator" static int root_uids[] = { 500 }; static int root_gids[] = { 513, 545, 544 }; -#else -#define ROOT "root" -static int root_uids[] = { 0 }; -static int root_gids[] = { 0 }; #endif +#if defined(ROOT) static int int_in_list(int i, int *l, size_t n) { @@ -55,54 +57,54 @@ int_in_list(int i, int *l, size_t n) failure("%d", i); return (0); } +#endif DEFINE_TEST(test_owner_parse) { -#if defined(_WIN32) && !defined(__CYGWIN__) - /* TODO: Does this need cygwin style handling of uid/gid ? */ - skipping("Windows cannot handle uid/gid as UNIX like system"); +#if !defined(ROOT) + skipping("No uid/gid configuration for this OS"); #else int uid, gid; - assertEqualInt(0, owner_parse(ROOT, &uid, &gid)); + assert(NULL == owner_parse(ROOT, &uid, &gid)); assert(int_in_list(uid, root_uids, sizeof(root_uids)/sizeof(root_uids[0]))); assertEqualInt(-1, gid); - assertEqualInt(0, owner_parse(ROOT ":", &uid, &gid)); + assert(NULL == owner_parse(ROOT ":", &uid, &gid)); assert(int_in_list(uid, root_uids, sizeof(root_uids)/sizeof(root_uids[0]))); assert(int_in_list(gid, root_gids, sizeof(root_gids)/sizeof(root_gids[0]))); - assertEqualInt(0, owner_parse(ROOT ".", &uid, &gid)); + assert(NULL == owner_parse(ROOT ".", &uid, &gid)); assert(int_in_list(uid, root_uids, sizeof(root_uids)/sizeof(root_uids[0]))); assert(int_in_list(gid, root_gids, sizeof(root_gids)/sizeof(root_gids[0]))); - assertEqualInt(0, owner_parse("111", &uid, &gid)); + assert(NULL == owner_parse("111", &uid, &gid)); assertEqualInt(111, uid); assertEqualInt(-1, gid); - assertEqualInt(0, owner_parse("112:", &uid, &gid)); + assert(NULL == owner_parse("112:", &uid, &gid)); assertEqualInt(112, uid); /* Can't assert gid, since we don't know gid for user #112. */ - assertEqualInt(0, owner_parse("113.", &uid, &gid)); + assert(NULL == owner_parse("113.", &uid, &gid)); assertEqualInt(113, uid); /* Can't assert gid, since we don't know gid for user #113. */ - assertEqualInt(0, owner_parse(":114", &uid, &gid)); + assert(NULL == owner_parse(":114", &uid, &gid)); assertEqualInt(-1, uid); assertEqualInt(114, gid); - assertEqualInt(0, owner_parse(".115", &uid, &gid)); + assert(NULL == owner_parse(".115", &uid, &gid)); assertEqualInt(-1, uid); assertEqualInt(115, gid); - assertEqualInt(0, owner_parse("116:117", &uid, &gid)); + assert(NULL == owner_parse("116:117", &uid, &gid)); assertEqualInt(116, uid); assertEqualInt(117, gid); @@ -112,19 +114,9 @@ DEFINE_TEST(test_owner_parse) * users. */ - /* - * TODO: Rework owner_parse to either return a char * pointing - * to an error message or accept a function pointer to an - * error-reporting routine so that the following tests don't - * generate any output. - * - * Alternatively, redirect stderr temporarily to suppress the output. - */ - - cpio_progname = "Ignore this message"; - assertEqualInt(1, owner_parse(":nonexistentgroup", &uid, &gid)); - assertEqualInt(1, owner_parse(ROOT ":nonexistentgroup", &uid, &gid)); - assertEqualInt(1, + assert(NULL != owner_parse(":nonexistentgroup", &uid, &gid)); + assert(NULL != owner_parse(ROOT ":nonexistentgroup", &uid, &gid)); + assert(NULL != owner_parse("nonexistentuser:nonexistentgroup", &uid, &gid)); #endif } |