int main (void) { /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); return test_areadlink (areadlink_with_size, true); }
int main (void) { int result; /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); /* Basic tests. */ result = test_areadlink (do_areadlinkat, false); dfd = open (".", O_RDONLY); ASSERT (0 <= dfd); ASSERT (test_areadlink (do_areadlinkat, false) == result); /* Relative tests. */ if (result == 77) fputs ("skipping test: symlinks not supported on this file system\n", stderr); else { char *buf; ASSERT (symlink ("nowhere", BASE "link") == 0); ASSERT (mkdir (BASE "dir", 0700) == 0); ASSERT (chdir (BASE "dir") == 0); buf = areadlinkat (dfd, BASE "link"); ASSERT (buf); ASSERT (strcmp (buf, "nowhere") == 0); free (buf); errno = 0; ASSERT (areadlinkat (-1, BASE "link") == NULL); ASSERT (errno == EBADF); errno = 0; ASSERT (areadlinkat (AT_FDCWD, BASE "link") == NULL); ASSERT (errno == ENOENT); ASSERT (chdir ("..") == 0); ASSERT (rmdir (BASE "dir") == 0); ASSERT (unlink (BASE "link") == 0); } ASSERT (close (dfd) == 0); return result; }