[Libsysio-commit] RedStorm: libsysio/tests test_unlink.c Makefile.am
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2003-06-19 17:48:17
|
Update of /cvsroot/libsysio/libsysio/tests In directory sc8-pr-cvs1:/tmp/cvs-serv20060 Modified Files: Tag: RedStorm Makefile.am Added Files: Tag: RedStorm test_unlink.c Log Message: Added test_unlink test. --- NEW FILE --- /* * This Cplant(TM) source code is the property of Sandia National * Laboratories. * * This Cplant(TM) source code is copyrighted by Sandia National * Laboratories. * * The redistribution of this Cplant(TM) source code is subject to the * terms of the GNU Lesser General Public License * (see cit/LGPL or http://www.gnu.org/licenses/lgpl.html) * * Cplant(TM) Copyright 1998-2003 Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the US Government. * Export of this program may require a license from the United States * Government. */ /* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Questions or comments about this library should be sent to: * * Lee Ward * Sandia National Laboratories, New Mexico * P.O. Box 5800 * Albuquerque, NM 87185-1110 * * le...@sa... */ #include <stdio.h> #include <stdlib.h> #include <string.h> #ifndef REDSTORM #include <getopt.h> #else #include <unistd.h> #endif #include <errno.h> #if 0 #include <sys/queue.h> #include <dirent.h> #endif #include "sysio.h" #include "mount.h" #include "test.h" /* * Unlink files. * * Usage: unlink [-a] [-m <fsname>] [-r <mntpath>] [path...] * * Without any path arguments, the program unlinks files named * by the ocmmand line args. */ static int unlinkit(const char *path); static void usage(void); static const char *root_driver = DEFAULT_DRIVER; static const char *mntpath = "/"; static unsigned mntflgs = 0; #ifdef AUTOMOUNT_FILE_NAME #define EXTRA_AUTOMOUNT_OPT "a" #else #define EXTRA_AUTOMOUNT_OPT #endif const char *opts = EXTRA_AUTOMOUNT_OPT "m:r:"; int main(int argc, char *const argv[]) { int i; int err; int n; /* * Parse command line arguments. */ while ((i = getopt(argc, argv, opts)) != -1) switch (i) { #ifdef AUTOMOUNT_FILE_NAME case 'a': mntflgs |= MOUNT_F_AUTO; break; #endif case 'm': root_driver = optarg; break; case 'r': mntpath = optarg; break; default: usage(); } /* * Init sysio lib. */ _sysio_init(); /* * Init native file system driver and request mount of specified * source directory. */ err = drv_init_all(); if (err) { errno = -err; perror("drv_init_all"); exit(1); } err = _sysio_mount_root(mntpath, root_driver, mntflgs, NULL); if (err) { errno = -err; perror("_sysio_mount_root"); exit(1); } n = argc - optind; /* * Try path(s) listed on command-line. */ while (optind < argc) { const char *path; path = argv[optind++]; (void )unlinkit(path); } /* * If no command-line arguments, read from stdin until EOF. */ if (!n) { int doflush; static char buf[4096]; size_t len; char *cp; char c; doflush = 0; while (fgets(buf, sizeof(buf), stdin) != NULL) { len = strlen(buf); cp = buf + len - 1; c = *cp; *cp = '\0'; if (!doflush) unlinkit(buf); doflush = c == '\n' ? 0 : 1; } } /* * Clean up. */ _sysio_shutdown(); return 0; } static int unlinkit(const char *path) { if (!unlink(path)) { perror(path); return -1; } return 0; } static void usage() { (void )fprintf(stderr, "Usage: unlink [-a] [-m <driver>] [-r <mntpath>]" " [<path> ...\n]"); exit(1); } Index: Makefile.am =================================================================== RCS file: /cvsroot/libsysio/libsysio/tests/Makefile.am,v retrieving revision 1.8.6.1 retrieving revision 1.8.6.2 diff -u -w -b -B -p -r1.8.6.1 -r1.8.6.2 --- Makefile.am 27 May 2003 12:37:00 -0000 1.8.6.1 +++ Makefile.am 19 Jun 2003 17:48:13 -0000 1.8.6.2 @@ -1,5 +1,5 @@ noinst_PROGRAMS = test_copy test_stats test_path test_mounts test_list \ - test_getcwd test_stdfd + test_getcwd test_stdfd test_unlink CLEANFILES=drv_data.c @@ -81,6 +81,11 @@ test_stdfd_SOURCES=test_stdfd.c $(CMNSRC test_stdfd_CFLAGS=$(CFL) test_stdfd_LDADD=$(LIBS) test_stdfd_DEPENDENCIES=$(LIBS) + +test_unlink_SOURCES=test_unlink.c $(CMNSRC) +test_unlink_CFLAGS=$(CFL) +test_unlink_LDADD=$(LIBS) +test_unlink_DEPENDENCIES=$(LIBS) EXTRA_DIST=gendrvdata.sh test.h |