X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-linkat.c;h=cee1c9972c485c07c1c6aa0ad49c0143a3ed92c0;hb=bfbd822767f532ab05e24bda5b67b992f3562321;hp=6aa3ca71d1909bc82fa59f6dfadf85e056b631c3;hpb=0f4fd7f4782907e0a308a077118c6578fff4e49f;p=gnulib.git diff --git a/tests/test-linkat.c b/tests/test-linkat.c index 6aa3ca71d..cee1c9972 100644 --- a/tests/test-linkat.c +++ b/tests/test-linkat.c @@ -1,5 +1,5 @@ /* Tests of linkat. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,29 +20,23 @@ #include +#include "signature.h" +SIGNATURE_CHECK (linkat, int, (int, char const *, int, char const *, int)); + #include #include #include #include #include #include +#include #include "areadlink.h" #include "filenamecat.h" #include "same-inode.h" #include "xgetcwd.h" - -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ - abort (); \ - } \ - } \ - while (0) +#include "ignore-value.h" +#include "macros.h" #define BASE "test-linkat.t" @@ -81,7 +75,7 @@ check_same_link (char const *name1, char const *name2) } int -main () +main (void) { int i; int dfd; @@ -89,10 +83,10 @@ main () int result; /* Clean up any trash from prior testsuite runs. */ - ASSERT (system ("rm -rf " BASE "*") == 0); + ignore_value (system ("rm -rf " BASE "*")); /* Test basic link functionality, without mentioning symlinks. */ - result = test_link (do_link, false); + result = test_link (do_link, true); dfd1 = open (".", O_RDONLY); ASSERT (0 <= dfd1); ASSERT (test_link (do_link, false) == result); @@ -134,11 +128,11 @@ main () do the other variant after the loop. */ for (i = 0; i < 32; i++) { - int flag = (i & 0x10 ? AT_SYMLINK_FOLLOW : 0); int fd1 = (i & 8) ? dfd : AT_FDCWD; char *file1 = file_name_concat ((i & 4) ? ".." : cwd, BASE "xx", NULL); int fd2 = (i & 2) ? dfd : AT_FDCWD; char *file2 = file_name_concat ((i & 1) ? ".." : cwd, BASE "xx", NULL); + flag = (i & 0x10 ? AT_SYMLINK_FOLLOW : 0); ASSERT (sprintf (strchr (file1, '\0') - 2, "%02d", i) == 2); ASSERT (sprintf (strchr (file2, '\0') - 2, "%02d", i + 1) == 2); @@ -166,8 +160,9 @@ main () ASSERT (rmdir (BASE "sub1") == 0); ASSERT (rmdir (BASE "sub2") == 0); free (cwd); - fputs ("skipping test: symlinks not supported on this filesystem\n", - stderr); + if (!result) + fputs ("skipping test: symlinks not supported on this file system\n", + stderr); return result; } dfd = open (".", O_RDONLY);