ossp-pkg/path/path_test.c
1.2
/*
** OSSP path - Filesystem Path Manipulation
** Copyright (c) 2002 Ralf S. Engelschall <rse@engelschall.com>
** Copyright (c) 2002 The OSSP Project <http://www.ossp.org/>
** Copyright (c) 2002 Cable & Wireless Deutschland <http://www.cw.com/de/>
**
** This file is part of OSSP path, a filesystem path manipulation library
** which can be found at http://www.ossp.org/pkg/lib/path/.
**
** Permission to use, copy, modify, and distribute this software for
** any purpose with or without fee is hereby granted, provided that
** the above copyright notice and this permission notice appear in all
** copies.
**
** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
** SUCH DAMAGE.
**
** path_test.c: test suite
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/param.h>
#include "path.h"
int main(int argc, char *argv[])
{
char result[MAXPATHLEN];
char cwd[MAXPATHLEN];
char *rv;
if (argc < 3) {
fprintf(stderr, "usage: test abs2rel|rel2abs path [base]\n");
exit(1);
}
if (argc == 3) {
if (getcwd(cwd, MAXPATHLEN) == NULL) {
fprintf(stderr, "cannot get current directory.\n");
exit(1);
}
} else
strcpy(cwd, argv[3]);
if (strcmp(argv[1], "abs2rel") == 0)
rv = path_abs2rel(result, MAXPATHLEN, argv[2], cwd);
else
rv = path_rel2abs(result, MAXPATHLEN, argv[2], cwd);
if (rv != NULL)
printf("%s\n", result);
else
printf("ERROR\n");
exit(0);
}