Changeset 8c5cc6b2 in rtems
- Timestamp:
- 11/18/99 19:51:13 (24 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- c38f5f16
- Parents:
- 23168f53
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/tests/psxtests/psxsem01/init.c
r23168f53 r8c5cc6b2 4 4 #include <fcntl.h> 5 5 #include <time.h> 6 #include <tmacros.h> 6 7 7 8 void *POSIX_Init( … … 18 19 sem_t testsem; 19 20 struct timespec waittime; 21 char failure_msg[80]; 20 22 21 23 puts( "\n\n*** POSIX SEMAPHORE MANAGER TEST 1 ***" ); … … 24 26 for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 25 27 status = sem_init(&sems[i], 0, i); 26 assert( status == 0 ); 28 sprintf(failure_msg, "sem_init %d", i ); 29 fatal_directive_status( status, 0, failure_msg); 27 30 } 28 31 puts( "Init: sem_init - UNSUCCESSFUL (ENOSPC)" ); 29 32 status = sem_init(&sem2, 0, 1); 30 assert( (status == -1) && (errno == ENOSPC) ); 33 fatal_directive_status( status, -1, "sem_init error return status"); 34 fatal_directive_status( errno, ENOSPC, "sem_init errorno ENOSPC" ); 31 35 32 36 puts( "Init: sem_init - UNSUCCESSFUL (ENOSYS -- pshared not supported)" ); 33 37 status = sem_init(&sem2, 1, 1); 34 assert( (status == -1) && (errno == ENOSYS) ); 38 fatal_directive_status( status, -1, "sem_init error return status"); 39 fatal_directive_status( errno, ENOSYS, "sem_init errno set to ENOSYS"); 35 40 36 41 puts( "Init: sem_getvalue - SUCCESSFUL "); 37 42 for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 38 43 status = sem_getvalue(&sems[i], &value); 39 assert( (status == 0) && (value == i) ); 44 sprintf( failure_msg, "sem_getvalue %d", i ); 45 fatal_directive_status( status, 0, failure_msg ); 46 fatal_directive_status( value, i, "sem_getvalue correct value" ); 40 47 } 41 48 puts( "Init: sem_getvalue - UNSUCCESSFUL "); 42 49 status = sem_getvalue(&sem2, &value); 43 assert( (status == -1) && (errno == EINVAL) ); 50 fatal_directive_status( status, -1, "sem_init error return status"); 51 fatal_directive_status( errno, EINVAL, "sem_getvalue errno EINVAL"); 44 52 45 53 puts( "Init: sem_destroy - SUCCESSFUL" ); 46 54 status = sem_destroy(&sems[0]); 47 assert( status == 0 );55 fatal_directive_status( status, 0, "sem_destroy semaphore 0"); 48 56 49 57 puts( "Init: sem_destroy - UNSUCCESSFUL (EINVAL)" ); 50 58 status = sem_destroy(&sem2); 51 assert( (status == -1) && (errno == EINVAL) ); 59 fatal_directive_status( status, -1, "sem_init error return status"); 60 fatal_directive_status( errno, EINVAL, "sem_destroy errno EINVAL"); 52 61 53 62 puts( "Init: sem_wait - SUCCESSFUL" ); 54 63 status = sem_wait(&sems[1]); 55 assert( status == 0);64 fatal_directive_status( status, 0, "sem_wait semaphore 1"); 56 65 57 66 puts( "Init: sem_wait - UNSUCCESSFUL (EINVAL)" ); 58 67 status = sem_wait(&sem2); 59 assert( (status == -1) && (errno == EINVAL) ); 68 fatal_directive_status( status, -1, "sem_init error return status"); 69 fatal_directive_status( errno, EINVAL, "sem_wait errno EINVAL"); 60 70 61 71 puts( "Init: sem_post - SUCCESSFUL" ); 62 72 status = sem_post(&sems[1]); 63 assert( status == 0 );73 fatal_directive_status( status, 0, "sem_post semaphore 1"); 64 74 65 75 puts( "Init: sem_wait - SUCCESSFUL (after a sem_post)" ); 66 76 status = sem_wait(&sems[1]); 67 assert( status == 0 );77 fatal_directive_status( status, 0, "sem_wait semaphore 1"); 68 78 69 79 puts( "Init: sem_trywait - SUCCESSFUL" ); 70 80 status = sem_trywait(&sems[2]); 71 assert( status == 0 );81 fatal_directive_status( status, 0, "sem_trywait semaphore 2"); 72 82 73 83 puts( "Init: sem_trywait - UNSUCCESSFUL (EAGAIN)" ); 74 84 status = sem_trywait(&sems[1]); 75 assert( (status == -1) && (errno == EAGAIN) ); 85 fatal_directive_status( status, -1, "sem_init error return status"); 86 fatal_directive_status( errno, EAGAIN, "sem_trywait errno EAGAIN"); 76 87 77 88 puts( "Init: sem_trywait - UNSUCCESSFUL (EINVAL)" ); 78 89 status = sem_trywait(&sem2); 79 assert( (status == -1) && (errno == EINVAL) ); 90 fatal_directive_status( status, -1, "sem_init error return status"); 91 fatal_directive_status( errno, EINVAL, "sem_trywait errno EINVAL"); 80 92 81 93 puts( "Init: sem_timedwait - SUCCESSFUL" ); … … 83 95 waittime.tv_nsec = 100; 84 96 status = sem_timedwait(&sems[2], &waittime); 85 assert( status == 0 );97 fatal_directive_status( status, 0, "sem_timedwait semaphore 2"); 86 98 87 99 puts( "Init: sem_timedwait - UNSUCCESSFUL (ETIMEDOUT)" ); 88 100 status = sem_timedwait(&sems[1], &waittime); 89 assert( (status == -1) && (errno == ETIMEDOUT) ); 101 fatal_directive_status( status, -1, "sem_init error return status"); 102 fatal_directive_status( errno, ETIMEDOUT, "sem_init errno ETIMEDOUT"); 90 103 91 104 puts( "Init: sem_timedwait - UNSUCCESSFUL (EINVAL)" ); 92 105 status = sem_timedwait(&sem2, &waittime); 93 assert( (status == -1) && (errno == EINVAL) ); 106 fatal_directive_status( status, -1, "sem_init error return status"); 107 fatal_directive_status( errno, EINVAL, "sem_init errno EINVAL"); 94 108 95 109 puts( "Init: sem_post - UNSUCCESSFUL (EINVAL)" ); 96 110 status = sem_post(&sem2); 97 assert( (status == -1) && (errno == EINVAL) ); 111 fatal_directive_status( status, -1, "sem_init error return status"); 112 fatal_directive_status( errno, EINVAL, "sem_post errno EINVAL"); 98 113 99 114 puts( "Init: sem_destroy - SUCCESSFUL" ); 100 115 for (i = 1; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 101 116 status = sem_destroy(&sems[i]); 102 assert( status == 0); 117 sprintf( failure_msg, "sem_destroy %d", i ); 118 fatal_directive_status( status, 0, failure_msg ); 103 119 } 104 120 105 121 /* Modes are currently unsupported */ 106 122 107 puts( "Init: sem_open - SUCCESSFUL" ); 123 /* 124 * Validate all sem_open return paths. 125 */ 126 127 puts( "Init: sem_open - sem1 SUCCESSFUL" ); 108 128 n_sem1 = sem_open("sem1", O_CREAT, 00777, 1); 109 129 assert( n_sem1 != SEM_FAILED ); … … 111 131 puts( "Init: sem_open - UNSUCCESSFUL (EEXIST)" ); 112 132 n_sem2 = sem_open("sem1", O_CREAT | O_EXCL, 00777, 1); 113 assert( (n_sem2 == SEM_FAILED) && (errno == EEXIST) ); 133 fatal_directive_status( 134 (int) n_sem2, (int ) SEM_FAILED, "sem_open error return status" ); 135 fatal_directive_status( errno, EEXIST, "sem_open errno EEXIST"); 136 137 /* 138 * Validate we can wait on a semaphore opened with sem_open. 139 */ 140 141 puts( "Init: sem_wait on sem1" ); 142 status = sem_wait(n_sem1); 143 fatal_directive_status( status, 0, "sem_wait opened semaphore"); 144 145 #if 0 146 puts( "Init: sem_unlink - sem1 SUCCESSFUL" ); 147 status = sem_unlink( "sem1" ); 148 fatal_directive_status( status, 0, "sem_unlink locked semaphore"); 149 150 puts( "Init: sem_open - Reopen sem1 SUCCESSFUL with a different id" ); 151 n_sem2 = sem_open( "sem1", O_CREAT | O_EXCL, 00777, 1); 152 assert( n_sem2 != SEM_FAILED ); 153 #endif 154 155 /* 156 * Validate we can call close on a semaphore opened with sem_open. 157 */ 114 158 115 159 puts( "Init: sem_close - SUCCESSFUL" ); 116 status = sem_close( n_sem1);117 assert( status == 0);160 status = sem_close( n_sem1 ); 161 fatal_directive_status( status, 0, "sem_close semaphore"); 118 162 119 163 /* 164 * Notes: 165 * Calls to sem_close when sem_link has not been previously called shall 166 * have no effect on the state of the semaphore. 167 * 168 * 169 120 170 puts( "Init: sem_close - UNSUCCESSFUL (EINVAL)" ); 121 171 status = sem_close(n_sem2); 122 assert( (status == -1) && (errno == EINVAL) ); 172 fatal_directive_status( status, -1, "sem_init error return status"); 173 fatal_directive_status( errno, EINVAL, "sem_close errno EINVAL"); 123 174 124 175 puts( "Init: sem_unlink - SUCCESSFUL" ); 125 176 status = sem_unlink("sem1"); 126 assert( status == 0 );177 fatal_directive_status( status, 0, "sem_unlink semaphore"); 127 178 128 179 puts( "Init: sem_unlink - UNSUCCESSFUL (ENOENT)" ); 129 180 status = sem_unlink("sem2"); 181 fatal_directive_status( status, -1, "sem_init error return status"); 182 fatal_directive_status( errno, ENOENT, "sem_unlink errno ENOENT"); 130 183 assert( (status == -1) && (errno == ENOENT) ); 131 184 */ … … 138 191 return NULL; /* just so the compiler thinks we returned something */ 139 192 } 193 194 195 -
c/src/tests/psxtests/psxsem01/system.h
r23168f53 r8c5cc6b2 21 21 #include <sched.h> 22 22 #include <semaphore.h> 23 #include <tmacros.h> 23 24 24 25 void *POSIX_Init( … … 42 43 #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 10 43 44 45 #define CONFIGURE_POSIX_INIT_THREAD_TABLE 46 #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ 47 (RTEMS_MINIMUM_STACK_SIZE * 4) 48 44 49 #include <confdefs.h> 45 50 46 51 /* global variables */ 47 48 #ifdef CONFIGURE_INIT49 #define TEST_EXTERN50 #else51 #define TEST_EXTERN extern52 #endif53 52 54 53 TEST_EXTERN pthread_t Init_id; … … 56 55 57 56 /* end of include file */ 57 -
testsuites/psxtests/psxsem01/init.c
r23168f53 r8c5cc6b2 4 4 #include <fcntl.h> 5 5 #include <time.h> 6 #include <tmacros.h> 6 7 7 8 void *POSIX_Init( … … 18 19 sem_t testsem; 19 20 struct timespec waittime; 21 char failure_msg[80]; 20 22 21 23 puts( "\n\n*** POSIX SEMAPHORE MANAGER TEST 1 ***" ); … … 24 26 for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 25 27 status = sem_init(&sems[i], 0, i); 26 assert( status == 0 ); 28 sprintf(failure_msg, "sem_init %d", i ); 29 fatal_directive_status( status, 0, failure_msg); 27 30 } 28 31 puts( "Init: sem_init - UNSUCCESSFUL (ENOSPC)" ); 29 32 status = sem_init(&sem2, 0, 1); 30 assert( (status == -1) && (errno == ENOSPC) ); 33 fatal_directive_status( status, -1, "sem_init error return status"); 34 fatal_directive_status( errno, ENOSPC, "sem_init errorno ENOSPC" ); 31 35 32 36 puts( "Init: sem_init - UNSUCCESSFUL (ENOSYS -- pshared not supported)" ); 33 37 status = sem_init(&sem2, 1, 1); 34 assert( (status == -1) && (errno == ENOSYS) ); 38 fatal_directive_status( status, -1, "sem_init error return status"); 39 fatal_directive_status( errno, ENOSYS, "sem_init errno set to ENOSYS"); 35 40 36 41 puts( "Init: sem_getvalue - SUCCESSFUL "); 37 42 for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 38 43 status = sem_getvalue(&sems[i], &value); 39 assert( (status == 0) && (value == i) ); 44 sprintf( failure_msg, "sem_getvalue %d", i ); 45 fatal_directive_status( status, 0, failure_msg ); 46 fatal_directive_status( value, i, "sem_getvalue correct value" ); 40 47 } 41 48 puts( "Init: sem_getvalue - UNSUCCESSFUL "); 42 49 status = sem_getvalue(&sem2, &value); 43 assert( (status == -1) && (errno == EINVAL) ); 50 fatal_directive_status( status, -1, "sem_init error return status"); 51 fatal_directive_status( errno, EINVAL, "sem_getvalue errno EINVAL"); 44 52 45 53 puts( "Init: sem_destroy - SUCCESSFUL" ); 46 54 status = sem_destroy(&sems[0]); 47 assert( status == 0 );55 fatal_directive_status( status, 0, "sem_destroy semaphore 0"); 48 56 49 57 puts( "Init: sem_destroy - UNSUCCESSFUL (EINVAL)" ); 50 58 status = sem_destroy(&sem2); 51 assert( (status == -1) && (errno == EINVAL) ); 59 fatal_directive_status( status, -1, "sem_init error return status"); 60 fatal_directive_status( errno, EINVAL, "sem_destroy errno EINVAL"); 52 61 53 62 puts( "Init: sem_wait - SUCCESSFUL" ); 54 63 status = sem_wait(&sems[1]); 55 assert( status == 0);64 fatal_directive_status( status, 0, "sem_wait semaphore 1"); 56 65 57 66 puts( "Init: sem_wait - UNSUCCESSFUL (EINVAL)" ); 58 67 status = sem_wait(&sem2); 59 assert( (status == -1) && (errno == EINVAL) ); 68 fatal_directive_status( status, -1, "sem_init error return status"); 69 fatal_directive_status( errno, EINVAL, "sem_wait errno EINVAL"); 60 70 61 71 puts( "Init: sem_post - SUCCESSFUL" ); 62 72 status = sem_post(&sems[1]); 63 assert( status == 0 );73 fatal_directive_status( status, 0, "sem_post semaphore 1"); 64 74 65 75 puts( "Init: sem_wait - SUCCESSFUL (after a sem_post)" ); 66 76 status = sem_wait(&sems[1]); 67 assert( status == 0 );77 fatal_directive_status( status, 0, "sem_wait semaphore 1"); 68 78 69 79 puts( "Init: sem_trywait - SUCCESSFUL" ); 70 80 status = sem_trywait(&sems[2]); 71 assert( status == 0 );81 fatal_directive_status( status, 0, "sem_trywait semaphore 2"); 72 82 73 83 puts( "Init: sem_trywait - UNSUCCESSFUL (EAGAIN)" ); 74 84 status = sem_trywait(&sems[1]); 75 assert( (status == -1) && (errno == EAGAIN) ); 85 fatal_directive_status( status, -1, "sem_init error return status"); 86 fatal_directive_status( errno, EAGAIN, "sem_trywait errno EAGAIN"); 76 87 77 88 puts( "Init: sem_trywait - UNSUCCESSFUL (EINVAL)" ); 78 89 status = sem_trywait(&sem2); 79 assert( (status == -1) && (errno == EINVAL) ); 90 fatal_directive_status( status, -1, "sem_init error return status"); 91 fatal_directive_status( errno, EINVAL, "sem_trywait errno EINVAL"); 80 92 81 93 puts( "Init: sem_timedwait - SUCCESSFUL" ); … … 83 95 waittime.tv_nsec = 100; 84 96 status = sem_timedwait(&sems[2], &waittime); 85 assert( status == 0 );97 fatal_directive_status( status, 0, "sem_timedwait semaphore 2"); 86 98 87 99 puts( "Init: sem_timedwait - UNSUCCESSFUL (ETIMEDOUT)" ); 88 100 status = sem_timedwait(&sems[1], &waittime); 89 assert( (status == -1) && (errno == ETIMEDOUT) ); 101 fatal_directive_status( status, -1, "sem_init error return status"); 102 fatal_directive_status( errno, ETIMEDOUT, "sem_init errno ETIMEDOUT"); 90 103 91 104 puts( "Init: sem_timedwait - UNSUCCESSFUL (EINVAL)" ); 92 105 status = sem_timedwait(&sem2, &waittime); 93 assert( (status == -1) && (errno == EINVAL) ); 106 fatal_directive_status( status, -1, "sem_init error return status"); 107 fatal_directive_status( errno, EINVAL, "sem_init errno EINVAL"); 94 108 95 109 puts( "Init: sem_post - UNSUCCESSFUL (EINVAL)" ); 96 110 status = sem_post(&sem2); 97 assert( (status == -1) && (errno == EINVAL) ); 111 fatal_directive_status( status, -1, "sem_init error return status"); 112 fatal_directive_status( errno, EINVAL, "sem_post errno EINVAL"); 98 113 99 114 puts( "Init: sem_destroy - SUCCESSFUL" ); 100 115 for (i = 1; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; i++) { 101 116 status = sem_destroy(&sems[i]); 102 assert( status == 0); 117 sprintf( failure_msg, "sem_destroy %d", i ); 118 fatal_directive_status( status, 0, failure_msg ); 103 119 } 104 120 105 121 /* Modes are currently unsupported */ 106 122 107 puts( "Init: sem_open - SUCCESSFUL" ); 123 /* 124 * Validate all sem_open return paths. 125 */ 126 127 puts( "Init: sem_open - sem1 SUCCESSFUL" ); 108 128 n_sem1 = sem_open("sem1", O_CREAT, 00777, 1); 109 129 assert( n_sem1 != SEM_FAILED ); … … 111 131 puts( "Init: sem_open - UNSUCCESSFUL (EEXIST)" ); 112 132 n_sem2 = sem_open("sem1", O_CREAT | O_EXCL, 00777, 1); 113 assert( (n_sem2 == SEM_FAILED) && (errno == EEXIST) ); 133 fatal_directive_status( 134 (int) n_sem2, (int ) SEM_FAILED, "sem_open error return status" ); 135 fatal_directive_status( errno, EEXIST, "sem_open errno EEXIST"); 136 137 /* 138 * Validate we can wait on a semaphore opened with sem_open. 139 */ 140 141 puts( "Init: sem_wait on sem1" ); 142 status = sem_wait(n_sem1); 143 fatal_directive_status( status, 0, "sem_wait opened semaphore"); 144 145 #if 0 146 puts( "Init: sem_unlink - sem1 SUCCESSFUL" ); 147 status = sem_unlink( "sem1" ); 148 fatal_directive_status( status, 0, "sem_unlink locked semaphore"); 149 150 puts( "Init: sem_open - Reopen sem1 SUCCESSFUL with a different id" ); 151 n_sem2 = sem_open( "sem1", O_CREAT | O_EXCL, 00777, 1); 152 assert( n_sem2 != SEM_FAILED ); 153 #endif 154 155 /* 156 * Validate we can call close on a semaphore opened with sem_open. 157 */ 114 158 115 159 puts( "Init: sem_close - SUCCESSFUL" ); 116 status = sem_close( n_sem1);117 assert( status == 0);160 status = sem_close( n_sem1 ); 161 fatal_directive_status( status, 0, "sem_close semaphore"); 118 162 119 163 /* 164 * Notes: 165 * Calls to sem_close when sem_link has not been previously called shall 166 * have no effect on the state of the semaphore. 167 * 168 * 169 120 170 puts( "Init: sem_close - UNSUCCESSFUL (EINVAL)" ); 121 171 status = sem_close(n_sem2); 122 assert( (status == -1) && (errno == EINVAL) ); 172 fatal_directive_status( status, -1, "sem_init error return status"); 173 fatal_directive_status( errno, EINVAL, "sem_close errno EINVAL"); 123 174 124 175 puts( "Init: sem_unlink - SUCCESSFUL" ); 125 176 status = sem_unlink("sem1"); 126 assert( status == 0 );177 fatal_directive_status( status, 0, "sem_unlink semaphore"); 127 178 128 179 puts( "Init: sem_unlink - UNSUCCESSFUL (ENOENT)" ); 129 180 status = sem_unlink("sem2"); 181 fatal_directive_status( status, -1, "sem_init error return status"); 182 fatal_directive_status( errno, ENOENT, "sem_unlink errno ENOENT"); 130 183 assert( (status == -1) && (errno == ENOENT) ); 131 184 */ … … 138 191 return NULL; /* just so the compiler thinks we returned something */ 139 192 } 193 194 195 -
testsuites/psxtests/psxsem01/system.h
r23168f53 r8c5cc6b2 21 21 #include <sched.h> 22 22 #include <semaphore.h> 23 #include <tmacros.h> 23 24 24 25 void *POSIX_Init( … … 42 43 #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 10 43 44 45 #define CONFIGURE_POSIX_INIT_THREAD_TABLE 46 #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ 47 (RTEMS_MINIMUM_STACK_SIZE * 4) 48 44 49 #include <confdefs.h> 45 50 46 51 /* global variables */ 47 48 #ifdef CONFIGURE_INIT49 #define TEST_EXTERN50 #else51 #define TEST_EXTERN extern52 #endif53 52 54 53 TEST_EXTERN pthread_t Init_id; … … 56 55 57 56 /* end of include file */ 57
Note: See TracChangeset
for help on using the changeset viewer.