You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by dr...@apache.org on 2002/01/11 12:20:01 UTC
cvs commit: apr/test testdup.c Makefile.in
dreid 02/01/11 03:20:00
Modified: test Makefile.in
Added: test testdup.c
Log:
Test for file duplication. Not perfect but at least this gets us
started.
Revision Changes Path
1.73 +5 -1 apr/test/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/apr/test/Makefile.in,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- Makefile.in 10 Jan 2002 00:20:06 -0000 1.72
+++ Makefile.in 11 Jan 2002 11:20:00 -0000 1.73
@@ -37,7 +37,8 @@
testprocmutex@EXEEXT@ \
testvsn@EXEEXT@ \
testsleep@EXEEXT@ \
- testrand@EXEEXT@
+ testrand@EXEEXT@ \
+ testdup@EXEEXT@
TARGETS = $(PROGRAMS)
@@ -169,6 +170,9 @@
testsleep@EXEEXT@: testsleep.lo $(LOCAL_LIBS)
$(LINK) testsleep.lo $(LOCAL_LIBS) $(ALL_LIBS)
+
+testdup@EXEEXT@: testdup.lo $(LOCAL_LIBS)
+ $(LINK) testdup.lo $(LOCAL_LIBS) $(ALL_LIBS)
testrand@EXEEXT@: testrand.lo $(LOCAL_LIBS)
$(LINK) testrand.lo $(LOCAL_LIBS) $(ALL_LIBS)
1.1 apr/test/testdup.c
Index: testdup.c
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* 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 APACHE SOFTWARE FOUNDATION OR
* ITS 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.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#include "apr_general.h"
#include "apr_pools.h"
#include "apr_errno.h"
#include "apr_file_io.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#if APR_HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "test_apr.h"
#define TEST "Testing\n"
#define TEST2 "Testing again\n"
int main (int argc, char ** argv)
{
apr_file_t *file1 = NULL;
apr_file_t *file2 = NULL;
apr_file_t *file3 = NULL;
apr_status_t status;
apr_pool_t *p;
int *retval;
char filename[256];
apr_size_t txtlen = sizeof(TEST);
char buff[50];
apr_off_t fpos;
apr_initialize();
atexit(apr_terminate);
fprintf(stdout, "APR File Duplication Test\n=========================\n\n");
STD_TEST_NEQ("Creating a pool", apr_pool_create(&p, NULL))
/* First, create a new file, empty... */
STD_TEST_NEQ("Open a new, empty file", apr_file_open(&file1, "./testdup.file",
APR_READ | APR_WRITE | APR_CREATE,
APR_OS_DEFAULT, p))
STD_TEST_NEQ("Simple dup", apr_file_dup(&file3, file1, p))
STD_TEST_NEQ("Write to dup'd file", apr_file_write(file3, TEST, &txtlen))
STD_TEST_NEQ("Rewind original file pos", apr_file_seek(file1, APR_SET, &fpos))
txtlen = sizeof(buff);
STD_TEST_NEQ("Read from original file handle",
apr_file_read(file1, buff, &txtlen))
printf("%s\n", buff);
STD_TEST_NEQ("Open another new, empty file",
apr_file_open(&file2, "./testdup2.file",
APR_READ | APR_WRITE | APR_CREATE,
APR_OS_DEFAULT, p))
STD_TEST_NEQ("Dup2 test", apr_file_dup2(&file3, file2, p))
txtlen = sizeof(TEST2);
STD_TEST_NEQ("Write to dup'd file", apr_file_write(file3, TEST2, &txtlen))
STD_TEST_NEQ("Rewind original file pos", apr_file_seek(file1, APR_SET, &fpos))
STD_TEST_NEQ("Read from original file handle",
apr_file_read(file1, buff, &txtlen))
printf("%s\n", buff);
return (0);
}