* **************************************************************************************************************
*/
int shm_tests( void * the_argp )
-{
+{
+#if !TARGET_OS_EMBEDDED
int my_err;
int my_shm_id;
void * my_shm_addr = NULL;
printf( "shmdt failed with error %d - \"%s\" \n", errno, strerror( errno) );
goto test_failed_exit;
}
+
+ my_err = shmctl( my_shm_id, IPC_RMID, NULL );
+ if ( my_err == -1 ) {
+ printf("shmctl failed to delete memory segment.\n");
+ goto test_failed_exit;
+ }
+
my_shm_addr = NULL;
my_err = 0;
test_passed_exit:
if ( my_shm_addr != NULL ) {
shmdt( my_shm_addr );
+ shmctl( my_shm_id, IPC_RMID, NULL);
}
return( my_err );
+#else
+ printf( "\t--> Not supported on EMBEDDED TARGET\n" );
+ return 0;
+#endif
}
printf( "shm_unlink failed with error %d - \"%s\" \n", errno, strerror( errno) );
goto test_failed_exit;
}
+
+ /* unlinking a non existent path */
+ my_err = shm_unlink ( "/tmp/anonexistent_shm_oject" );
+ my_err = errno;
+ if ( my_err != ENOENT ) {
+ printf( "shm_unlink of non existent path failed with error %d - \"%s\" \n", errno, strerror( errno) );
+ goto test_failed_exit;
+ }
my_addr = (char *) mmap( NULL, 4096, (PROT_READ | PROT_WRITE), (MAP_FILE | MAP_SHARED), my_fd, 0 );
if ( my_addr == (char *) -1 ) {