diff options
author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-01-30 12:55:40 +0000 |
---|---|---|
committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-01-30 12:55:40 +0000 |
commit | 6c83c9f67195a21425e43b7873ebac8042c50ec0 (patch) | |
tree | 5b16345f3891064a428b773d28cb3648e2e09e61 /lib/msan/tests | |
parent | 0534d70a97ccca49e0047e8e49c9ebcf3682edb7 (diff) |
[Msan] Fix the shmctl unit tests to pass on FreeBSD
Differential Revision: http://reviews.llvm.org/D7253
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@227571 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/tests')
-rw-r--r-- | lib/msan/tests/msan_test.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index fcbfcb190..7f9144e6f 100644 --- a/lib/msan/tests/msan_test.cc +++ b/lib/msan/tests/msan_test.cc @@ -21,6 +21,19 @@ #include "sanitizer/allocator_interface.h" #include "sanitizer/msan_interface.h" +#if defined(__FreeBSD__) +# define _KERNEL // To declare 'shminfo' structure. +# include <sys/shm.h> +# undef _KERNEL +extern "C" { +// <sys/shm.h> doesn't declare these functions in _KERNEL mode. +void *shmat(int, const void *, int); +int shmget(key_t, size_t, int); +int shmctl(int, int, struct shmid_ds *); +int shmdt(const void *); +} +#endif + #include <inttypes.h> #include <stdlib.h> #include <stdarg.h> @@ -1165,6 +1178,8 @@ TEST(MemorySanitizer, shmctl) { ASSERT_GT(res, -1); EXPECT_NOT_POISONED(ds); + // FreeBSD does not support shmctl(IPC_INFO) and shmctl(SHM_INFO). +#if !defined(__FreeBSD__) struct shminfo si; res = shmctl(id, IPC_INFO, (struct shmid_ds *)&si); ASSERT_GT(res, -1); @@ -1174,6 +1189,7 @@ TEST(MemorySanitizer, shmctl) { res = shmctl(id, SHM_INFO, (struct shmid_ds *)&s_i); ASSERT_GT(res, -1); EXPECT_NOT_POISONED(s_i); +#endif res = shmctl(id, IPC_RMID, 0); ASSERT_GT(res, -1); |