diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-20 22:16:25 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-20 22:16:25 +0000 |
commit | b34685f4a78a28d0f25b5138465f8df5ed222169 (patch) | |
tree | 1fdf9d7589034089e2da7e5bb6b75982222a22ef /testsuites/sptests | |
parent | 2010-06-20 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-b34685f4a78a28d0f25b5138465f8df5ed222169.tar.bz2 |
2010-06-20 Joel Sherrill <joel.sherrill@oarcorp.com>
* spfifo08/init.c: Catch more cases but discussion on errors and proper
behaviour remain.
Diffstat (limited to 'testsuites/sptests')
-rw-r--r-- | testsuites/sptests/ChangeLog | 5 | ||||
-rw-r--r-- | testsuites/sptests/spfifo08/init.c | 39 |
2 files changed, 33 insertions, 11 deletions
diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog index 6b598d38ff..1d1998db3f 100644 --- a/testsuites/sptests/ChangeLog +++ b/testsuites/sptests/ChangeLog @@ -1,5 +1,10 @@ 2010-06-20 Joel Sherrill <joel.sherrill@oarcorp.com> + * spfifo08/init.c: Catch more cases but discussion on errors and proper + behaviour remain. + +2010-06-20 Joel Sherrill <joel.sherrill@oarcorp.com> + * spfifo02/init.c, spfifo03/init.c, spfifo04/init.c: Configure pipes used. diff --git a/testsuites/sptests/spfifo08/init.c b/testsuites/sptests/spfifo08/init.c index a30cb8ca5d..10743e6ff9 100644 --- a/testsuites/sptests/spfifo08/init.c +++ b/testsuites/sptests/spfifo08/init.c @@ -15,6 +15,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> +#include <unistd.h> #include <errno.h> #define MAXIMUM 10 @@ -31,6 +32,7 @@ void create_all_barriers(void) BarrierCount = 0; + memset( Barriers, 0, sizeof(Barriers) ); for ( i=0 ; i<MAXIMUM ; i++ ) { status = rtems_barrier_create( rtems_build_name( 'B', 'A', 'R', 0x30+i ), @@ -39,7 +41,7 @@ void create_all_barriers(void) &Barriers[i] ); if ( status == RTEMS_TOO_MANY ) { - printf( "%d Barriers created\n", BarrierCount ); + printf( "%d Barriers created\n", BarrierCount+1 ); return; } @@ -64,7 +66,7 @@ void create_all_semaphores(void) &Semaphores[i] ); if ( status == RTEMS_TOO_MANY ) { - printf( "%d Semaphores created\n", SemaphoreCount ); + printf( "%d Semaphores created\n", SemaphoreCount+1 ); return; } @@ -77,7 +79,9 @@ void delete_barrier(void) { rtems_status_code status; - puts( "Deleting a barrier" ); + BarrierCount--; + printf( "Deleting barrier id=0x%08x\n", + (unsigned int)Barriers[BarrierCount] ); status = rtems_barrier_delete( Barriers[BarrierCount] ); directive_failed( status, "barrier delete" ); } @@ -86,7 +90,9 @@ void delete_semaphore(void) { rtems_status_code status; - puts( "Deleting a semaphore" ); + SemaphoreCount--; + printf( "Deleting semaphore id=0x%08x\n", + (unsigned int) Semaphores[SemaphoreCount] ); status = rtems_semaphore_delete( Semaphores[SemaphoreCount] ); directive_failed( status, "semaphore delete" ); } @@ -107,7 +113,7 @@ void open_fifo(int expected) printf( "status=%d errno=%d/(%s)\n", fd, errno, strerror(errno) ); if ( expected ) { rtems_test_assert(fd == -1); - rtems_test_assert(errno == expected); + rtems_test_assert(errno == expected); } else { rtems_test_assert(fd != -1); close( fd ); @@ -129,18 +135,29 @@ rtems_task Init( puts( "Creating FIFO" ); create_fifo(); - puts( "Opening FIFO.. expect ENOMEM (barrier - case 1)" ); - open_fifo(ENOMEM); + puts( "Opening FIFO.. expect ENFILE (barrier - case 1)" ); + open_fifo(ENFILE); /* XXX ENOMEM */ delete_barrier(); - puts( "Opening FIFO.. expect ENOMEM (barrier - case 2)" ); - open_fifo(ENOMEM); + puts( "Opening FIFO.. expect ENFILE (barrier - case 2)" ); + open_fifo(ENFILE); /* XXX ENOMEM */ delete_barrier(); - puts( "Opening FIFO.. expect ENOMEM (semaphore - case 1)" ); + puts( "Opening FIFO.. expect ENFILE (semaphore - case 1)" ); + open_fifo(ENFILE); /* XXX ENOMEM */ - open_fifo(0); + delete_semaphore(); + puts( "Opening FIFO.. expect ERROR ???" ); + open_fifo(EINTR); /* XXX ENOMEM */ + + delete_semaphore(); + puts( "Opening FIFO.. expect ENOSPC???" ); + open_fifo(ENOMEM); + delete_semaphore(); + puts( "Opening FIFO.. expect OK???" ); + open_fifo(0); + puts( "*** END OF TEST FIFO 08 ***" ); rtems_test_exit(0); |