]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Add test to check shared memory support sanity
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 29 Jun 2016 13:51:50 +0000 (14:51 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 29 Jun 2016 13:51:50 +0000 (14:51 +0100)
CMakeLists.txt
config.h.in

index 4d1f8cf94a05cf95b1d993d0136aa15399e5b657..40b4907a6090c321ee982bfc6f012412df0c41c3 100644 (file)
@@ -1051,6 +1051,49 @@ ELSE()
        MESSAGE(STATUS "atomic builtins are supported")
 ENDIF()
 
+CHECK_C_SOURCE_RUNS("
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <unistd.h>
+#define TEST_NAME \"/test-shmem-work\"
+int
+main (int argc, char **argv)
+{
+  int fd;
+
+  fd = shm_open (TEST_NAME, O_RDWR | O_CREAT | O_EXCL, 00600);
+  if (fd == -1) {
+    return -1;
+  }
+  if (ftruncate (fd, 100) == -1) {
+    shm_unlink (TEST_NAME);
+    close (fd);
+    return -1;
+  }
+
+  if (ftruncate (fd, 200) == -1) {
+    shm_unlink (TEST_NAME);
+    close (fd);
+    return -1;
+  }
+  if (ftruncate (fd, 300) == -1) {
+    shm_unlink (TEST_NAME);
+    close (fd);
+    return -1;
+  }
+
+  close (fd);
+  shm_unlink (TEST_NAME);
+  return 0;
+}
+" HAVE_SANE_SHMEM)
+
+IF(NOT HAVE_SANE_SHMEM)
+       MESSAGE(STATUS "shmem support is NOT compatible with POSIX")
+ELSE()
+       MESSAGE(STATUS "shmem support is compatible with POSIX")
+ENDIF()
+
 # Check queue.h compatibility
 IF(NOT HAVE_COMPATIBLE_QUEUE_H)
        INCLUDE_DIRECTORIES(compat)
index 30b07797a0051edbec5b27f1382f236795f473dd..8ebb2e56d4470b2dcb2ff9c300632312590036b7 100644 (file)
@@ -69,6 +69,7 @@
 #cmakedefine HAVE_PWD_H          1
 #cmakedefine HAVE_READPASSPHRASE_H  1
 #cmakedefine HAVE_SA_SIGINFO     1
+#cmakedefine HAVE_SANE_SHMEM     1
 #cmakedefine HAVE_SCHED_YEILD    1
 #cmakedefine HAVE_SC_NPROCESSORS_ONLN 1
 #cmakedefine HAVE_SEARCH_H       1