diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/tests/psxtests/filesupp/Makefile.am | 9 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxfile01/Makefile.am | 2 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxfile01/test_cat.c (renamed from c/src/tests/psxtests/filesupp/test_cat.c) | 0 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxfile01/test_extend.c (renamed from c/src/tests/psxtests/filesupp/test_extend.c) | 0 | ||||
-rw-r--r-- | c/src/tests/psxtests/psxfile01/test_write.c (renamed from c/src/tests/psxtests/filesupp/test_write.c) | 0 | ||||
-rw-r--r-- | testsuites/psxtests/psxfile01/Makefile.am | 2 | ||||
-rw-r--r-- | testsuites/psxtests/psxfile01/test_cat.c | 81 | ||||
-rw-r--r-- | testsuites/psxtests/psxfile01/test_extend.c | 60 | ||||
-rw-r--r-- | testsuites/psxtests/psxfile01/test_write.c | 59 |
9 files changed, 202 insertions, 11 deletions
diff --git a/c/src/tests/psxtests/filesupp/Makefile.am b/c/src/tests/psxtests/filesupp/Makefile.am deleted file mode 100644 index 21dbe5b354..0000000000 --- a/c/src/tests/psxtests/filesupp/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -EXTRA_DIST = test_cat.c test_extend.c test_write.c - -include $(top_srcdir)/../../../../automake/local.am diff --git a/c/src/tests/psxtests/psxfile01/Makefile.am b/c/src/tests/psxtests/psxfile01/Makefile.am index 4e75d556dc..48c50f9a9f 100644 --- a/c/src/tests/psxtests/psxfile01/Makefile.am +++ b/c/src/tests/psxtests/psxfile01/Makefile.am @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = foreign 1.4 -VPATH = @srcdir@:@srcdir@/../filesupp +VPATH = @srcdir@ TEST = psxfile01 diff --git a/c/src/tests/psxtests/filesupp/test_cat.c b/c/src/tests/psxtests/psxfile01/test_cat.c index f6daecfad7..f6daecfad7 100644 --- a/c/src/tests/psxtests/filesupp/test_cat.c +++ b/c/src/tests/psxtests/psxfile01/test_cat.c diff --git a/c/src/tests/psxtests/filesupp/test_extend.c b/c/src/tests/psxtests/psxfile01/test_extend.c index ae284aab46..ae284aab46 100644 --- a/c/src/tests/psxtests/filesupp/test_extend.c +++ b/c/src/tests/psxtests/psxfile01/test_extend.c diff --git a/c/src/tests/psxtests/filesupp/test_write.c b/c/src/tests/psxtests/psxfile01/test_write.c index c025734532..c025734532 100644 --- a/c/src/tests/psxtests/filesupp/test_write.c +++ b/c/src/tests/psxtests/psxfile01/test_write.c diff --git a/testsuites/psxtests/psxfile01/Makefile.am b/testsuites/psxtests/psxfile01/Makefile.am index 4e75d556dc..48c50f9a9f 100644 --- a/testsuites/psxtests/psxfile01/Makefile.am +++ b/testsuites/psxtests/psxfile01/Makefile.am @@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = foreign 1.4 -VPATH = @srcdir@:@srcdir@/../filesupp +VPATH = @srcdir@ TEST = psxfile01 diff --git a/testsuites/psxtests/psxfile01/test_cat.c b/testsuites/psxtests/psxfile01/test_cat.c new file mode 100644 index 0000000000..f6daecfad7 --- /dev/null +++ b/testsuites/psxtests/psxfile01/test_cat.c @@ -0,0 +1,81 @@ +/* + * A test support function which performs a crude version of + * "cat" so you can look at specific parts of a file. + * + * $Id$ + */ + +#include <stdio.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <errno.h> +#include <string.h> +#include <ctype.h> + +#include <assert.h> + +/* + * test_cat routine + */ + +unsigned char test_cat_buffer[ 1024 ]; + +void test_cat( + char *file, + int offset_arg, + int length +) +{ + int fd; + int status; + int is_printable = 0; + int my_length; + int i; + unsigned char c; + int count = 0; + off_t offset = (off_t)offset_arg; + + my_length = (length) ? length : sizeof( test_cat_buffer ); + assert( my_length <= sizeof( test_cat_buffer ) ); + + fd = open( file, O_RDONLY ); + if ( fd == -1 ) { + printf( "test_cat: open( %s ) failed : %s\n", file, strerror( errno ) ); + exit( 0 ); + } + + for ( ;; ) { + status = lseek( fd, offset, SEEK_SET ); + assert( status != -1 ); + + status = read( fd, test_cat_buffer, sizeof(test_cat_buffer) ); + if ( status <= 0 ) { + if (!is_printable) + printf( "(%d)", count ); + puts( "" ); + break; + } + + for ( i=0 ; i<status ; i++ ) { + c = test_cat_buffer[i]; + if (isprint(c) || isspace(c)) { + if (!is_printable) { + printf( "(%d)", count ); + count = 0; + is_printable = 1; + } + putchar(c); + } else { + is_printable = 0; + count++; + } + } + offset += status; + } + + status = close( fd ); + assert( !status ); +} diff --git a/testsuites/psxtests/psxfile01/test_extend.c b/testsuites/psxtests/psxfile01/test_extend.c new file mode 100644 index 0000000000..ae284aab46 --- /dev/null +++ b/testsuites/psxtests/psxfile01/test_extend.c @@ -0,0 +1,60 @@ +/* + * A test support function which extends the file to the specified + * length. This handles the implied open(), lseek(), write(), and close() + * operations. + * + * The defined behavior is a seek() followed by a write() extends the file + * and zero fills the new length part. + * + * $Id$ + */ + +#include <stdio.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <errno.h> +#include <string.h> +#include <ctype.h> + +#include <assert.h> + +/* + * test_extend routine + */ + +void test_extend( + char *file, + off_t offset +) +{ + int fd; + int status; + char c = 0; + + fd = open( file, O_WRONLY ); + if ( fd == -1 ) { + printf( "test_extend: open( %s ) failed : %s\n", file, strerror( errno ) ); + exit( 0 ); + } + + status = lseek( fd, offset - 1, SEEK_SET ); + assert( status != -1 ); + + status = write( fd, &c, 1 ); + if ( status == -1 ) { + printf( "test_extend: write( %s ) failed : %s\n", file, strerror( errno ) ); + exit( 0 ); + } + + if ( status != 1 ) { + printf( "test_extend: write( %s ) only wrote %d of %d bytes\n", + file, status, 1 ); + exit( 0 ); + } + + status = close( fd ); + assert( !status ); +} diff --git a/testsuites/psxtests/psxfile01/test_write.c b/testsuites/psxtests/psxfile01/test_write.c new file mode 100644 index 0000000000..c025734532 --- /dev/null +++ b/testsuites/psxtests/psxfile01/test_write.c @@ -0,0 +1,59 @@ +/* + * A test support function which performs a write() and + * handles implied open(), lseek(), write(), and close() operations. + * + * $Id$ + */ + +#include <stdio.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <errno.h> +#include <string.h> + +#include <assert.h> + +/* + * test_write routine + */ + +void test_write( + char *file, + off_t offset, + char *buffer +) +{ + int fd; + int status; + int length; + + + length = strlen( buffer ); + + fd = open( file, O_WRONLY ); + if ( fd == -1 ) { + printf( "test_write: open( %s ) failed : %s\n", file, strerror( errno ) ); + exit( 0 ); + } + + status = lseek( fd, offset, SEEK_SET ); + assert( status != -1 ); + + status = write( fd, buffer, length ); + if ( status == -1 ) { + printf( "test_write: write( %s ) failed : %s\n", file, strerror( errno ) ); + exit( 0 ); + } + + if ( status != length ) { + printf( "test_write: write( %s ) only wrote %d of %d bytes\n", + file, status, length ); + exit( 0 ); + } + + status = close( fd ); + assert( !status ); +} |