diff options
author | Andrew Tridgell <tridge@samba.org> | 1998-09-05 13:35:54 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1998-09-05 13:35:54 +0000 |
commit | f5e6f03389e53c6575c68f7bde5f9fa7dc496240 (patch) | |
tree | dd0b8285ab7c56d9e32ab83d93d042fe2da68dad | |
parent | f6044c87c021342d68d614d59bc8dacd32d223b9 (diff) | |
download | samba-f5e6f03389e53c6575c68f7bde5f9fa7dc496240.tar.gz samba-f5e6f03389e53c6575c68f7bde5f9fa7dc496240.tar.bz2 samba-f5e6f03389e53c6575c68f7bde5f9fa7dc496240.zip |
expand the sysv shmem test to look for semaphores as well as shared
memory. Some FreeBSD systems have sysv shared memory but no
semaphores!
(This used to be commit 3f4959a065ed987a8254903a5aaf6234bb88ad5c)
-rw-r--r-- | source3/tests/sysv_ipc.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/source3/tests/sysv_ipc.c b/source3/tests/sysv_ipc.c index 2374174e8f..13956ec6f0 100644 --- a/source3/tests/sysv_ipc.c +++ b/source3/tests/sysv_ipc.c @@ -6,15 +6,27 @@ #include <sys/stat.h> #include <sys/ipc.h> #include <sys/shm.h> +#include <sys/sem.h> #define KEY 0x963796 +#define SEMKEY 0x963797 #define SIZE (32*1024) +#ifndef HAVE_UNION_SEMUN +union semun { + int val; + struct semid_ds *buf; + unsigned short *array; +}; +#endif + + main() { - int id; + int id, sem_id; int *buf; int count=7; + union semun su; #ifdef LINUX if (sizeof(struct shmid_ds) == 52) { @@ -23,6 +35,14 @@ main() } #endif + + sem_id = semget(SEMKEY, 1, IPC_CREAT|IPC_EXCL|0600); + + if (sem_id == -1) exit(1); + + su.val = 1; + semctl(sem_id, 0, IPC_RMID, su); + id = shmget(KEY, 0, 0); if (id != -1) { if (shmctl(id, IPC_RMID, 0) != 0) exit(1); |