Mercurial > hg > octave-lojdl > gnulib-hg
view tests/test-stpncpy.c @ 12043:fc84db4ef49d
test-unlinkat: enhance test, to expose Solaris 9 bug
Share the unlink tests with unlinkat.
* tests/test-unlink.c (main): Factor guts...
* tests/test-unlink.h (test_rmdir_func): ...into new file.
* tests/test-rmdir.h (test_rmdir_func): Add parameter.
* tests/test-rmdir.c (main): Adjust caller.
* tests/test-unlinkat.c (main): Likewise. Add unlink tests.
(unlinker): New helper function.
(rmdirat): Enhance check.
* modules/rmdir-tests (Depends-on): Add stdbool.
* modules/unlink-tests (Depends-on): Likewise.
(Files): Add test-unlink.h.
* modules/openat-tests (Files): Likewise.
(Depends-on): Add unlinkdir.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Thu, 17 Sep 2009 22:16:56 -0600 |
parents | 8406463c58a7 |
children | 33ab12a7cea2 |
line wrap: on
line source
/* Test the system defined function stpncpy(). Copyright (C) 2003, 2008 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 the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <config.h> #include <string.h> #include <stdio.h> int main () { char from[10]; char to[10]; int i, j, k, h; char *ret; for (i = 0; i < 10; i++) for (j = 0; j < 10; j++) for (k = 0; k < 10; k++) { memset (from, 'X', sizeof from); memcpy (from, "SourceString", i); if (i < 10) from[i] = '\0'; memset (to, 'Y', sizeof to); memcpy (to, "Destination", k); if (k < 10) to[k] = '\0'; ret = stpncpy (to, from, j); printf ("i = %2d, j = %2d, k = %2d: from = ", i, j, k); for (h = 0; h < 10; h++) if (from[h] >= 0x20 && from[h] < 0x7f) putchar (from[h]); else printf ("\\x%02x", from[h]); printf (" to = "); for (h = 0; h < 10; h++) if (to[h] >= 0x20 && to[h] < 0x7f) putchar (to[h]); else printf ("\\x%02x", to[h]); printf (" ret = to + %d\n", ret - to); } return 0; }