forked from Imagelibrary/rtems
Files only used by psxfile01, so moved there.
This commit is contained in:
@@ -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
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
VPATH = @srcdir@:@srcdir@/../filesupp
|
||||
VPATH = @srcdir@
|
||||
|
||||
TEST = psxfile01
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
VPATH = @srcdir@:@srcdir@/../filesupp
|
||||
VPATH = @srcdir@
|
||||
|
||||
TEST = psxfile01
|
||||
|
||||
|
||||
81
testsuites/psxtests/psxfile01/test_cat.c
Normal file
81
testsuites/psxtests/psxfile01/test_cat.c
Normal file
@@ -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 );
|
||||
}
|
||||
60
testsuites/psxtests/psxfile01/test_extend.c
Normal file
60
testsuites/psxtests/psxfile01/test_extend.c
Normal file
@@ -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 );
|
||||
}
|
||||
59
testsuites/psxtests/psxfile01/test_write.c
Normal file
59
testsuites/psxtests/psxfile01/test_write.c
Normal file
@@ -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 );
|
||||
}
|
||||
Reference in New Issue
Block a user