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
|