From c1bb7ba6ba9e685da05f48da5368d9342ba272c1 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 29 Apr 2011 09:53:25 +0200 Subject: [PATCH] test-getcwd.c: avoid new set-but-not-used warning * tests/test-getcwd.c (test_abort_bug): Exit nonzero for any problem, not just the glibc/abort one that getcwd-abort-bug.m4 detects. This also adds an additional test for an unlikely chdir("..") failure. * m4/getcwd-abort-bug.m4: Update this now-duplicated code to match, and adjust the code that sets gl_cv_func_getcwd_abort_bug accordingly. --- ChangeLog | 6 ++++++ m4/getcwd-abort-bug.m4 | 17 ++++++++++++----- tests/test-getcwd.c | 9 ++++++--- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3cc245ed3..dc01efd6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2011-04-29 Jim Meyering + test-getcwd.c: avoid new set-but-not-used warning + * tests/test-getcwd.c (test_abort_bug): Exit nonzero for any problem, + not just the glibc/abort one that getcwd-abort-bug.m4 detects. + * m4/getcwd-abort-bug.m4: Update this now-duplicated code to match, + and adjust the code that sets gl_cv_func_getcwd_abort_bug accordingly. + test-hash.c: avoid a new shadowing warning * tests/test-hash.c (main): Don't shadow "dup". diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4 index 0b59a6bf2..fd6820dc6 100644 --- a/m4/getcwd-abort-bug.m4 +++ b/m4/getcwd-abort-bug.m4 @@ -1,4 +1,4 @@ -# serial 3 +# serial 4 # Determine whether getcwd aborts when the length of the working directory # name is unusually large. Any length between 4k and 16k trigger the bug # when using glibc-2.4.90-9 or older. @@ -65,7 +65,7 @@ main () cwd = getcwd (NULL, 0); if (cwd == NULL) - return 0; + return 2; initial_cwd_len = strlen (cwd); free (cwd); @@ -92,15 +92,22 @@ main () while (0 < d--) { if (chdir ("..") < 0) - break; + { + fail = 5; + break; + } rmdir (dir_name); } - return 0; + return fail; } ]])], [gl_cv_func_getcwd_abort_bug=no], - [gl_cv_func_getcwd_abort_bug=yes], + dnl A "regular" nonzero return does not indicate this bug. + dnl An abort will provoke an exit code of something like 134 (128 + 6). + [test $? -gt 128 \ + && gl_cv_func_getcwd_abort_bug=yes \ + || gl_cv_func_getcwd_abort_bug=no], [gl_cv_func_getcwd_abort_bug=yes]) ]) AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2]) diff --git a/tests/test-getcwd.c b/tests/test-getcwd.c index 0e0f90f24..14a526f65 100644 --- a/tests/test-getcwd.c +++ b/tests/test-getcwd.c @@ -55,7 +55,7 @@ test_abort_bug (void) cwd = getcwd (NULL, 0); if (cwd == NULL) - return 0; + return 2; initial_cwd_len = strlen (cwd); free (cwd); @@ -82,11 +82,14 @@ test_abort_bug (void) while (0 < d--) { if (chdir ("..") < 0) - break; + { + fail = 5; + break; + } rmdir (dir_name); } - return 0; + return fail; } /* The length of this name must be 8. */ -- 2.11.0