Jelajahi Sumber

Move required patches for "check" unit test framework to "check"

Since we use our private copy of check anyway, move all patches there.
We need some additional patches for FreeBSD now.
Don't add another patch here, but fix it in the check framework itself.
bel2125 3 tahun lalu
induk
melakukan
b3e90ee1e1

+ 0 - 31
cmake/check/c82fe8888aacfe784476112edd3878256d2e30bc.patch

@@ -1,31 +0,0 @@
-From c82fe8888aacfe784476112edd3878256d2e30bc Mon Sep 17 00:00:00 2001
-From: Joshua Boyd <jdboyd@Joshua-Boyds-Mac-mini.local>
-Date: Wed, 23 Mar 2016 17:54:41 -0400
-Subject: [PATCH] Detect missing itimerspec on OSX.
-
-Set define to compiler accordingly.
-
-This fixes cmake on osx support.
----
- CMakeLists.txt | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e271e31..1d413e8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -193,6 +193,14 @@ if(NOT HAVE_SYS_TIME_H)
-     endif(MSVC)
- endif(NOT HAVE_SYS_TIME_H)
- 
-+# OSX has sys/time.h, but it still lacks itimerspec
-+if(HAVE_SYS_TIME_H)
-+    check_struct_member("struct itimerspec" it_value "sys/time.h" HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
-+    if(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
-+        add_definitions(-DSTRUCT_ITIMERSPEC_DEFINITION_MISSING=1)
-+        set(STRUCT_ITIMERSPEC_DEFINITION_MISSING 1)
-+    endif(NOT HAVE_STRUCT_ITIMERSPEC_IT_VALUE)
-+endif(HAVE_SYS_TIME_H)
- 
- ###############################################################################
- # Check for integer types

+ 0 - 27
cmake/check/check_run.patch

@@ -1,27 +0,0 @@
---- check_run.c.orig	2020-01-12 03:06:59.992434700 +0100
-+++ check_run.c.new	2020-01-12 04:40:42.224635800 +0100
-@@ -28,6 +28,8 @@
- #include <stdarg.h>
- #include <signal.h>
- #include <setjmp.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
- 
- #include "check.h"
- #include "check_error.h"
-@@ -486,6 +488,15 @@
-         eprintf("Error in call to fork:", __FILE__, __LINE__ - 2);
-     if(pid == 0)
-     {
-+char fn[256];
-+int fd1, fd2;
-+sprintf(fn, "%s.stdout", srunner_log_fname(sr));
-+fd1 = open(fn, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-+dup2(fd1, 1);
-+sprintf(fn, "%s.stderr", srunner_log_fname(sr));
-+fd2 = open(fn, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-+dup2(fd2, 2);
-+
-         setpgid(0, 0);
-         group_pid = getpgrp();
-         tr = tcase_run_checked_setup(sr, tc);

+ 0 - 12
cmake/check/patch.cmake

@@ -1,12 +0,0 @@
-message(STATUS "Patching check ${VERSION} ${SOURCE_DIR}")
-
-# Patch checks for MinGW
-# https://sourceforge.net/p/check/patches/53/
-set(CMAKE_LISTS_LOCATION "${SOURCE_DIR}/CMakeLists.txt")
-file(READ ${CMAKE_LISTS_LOCATION} CMAKE_LISTS)
-string(REGEX REPLACE
-  "(check_type_size\\((clock|clockid|timer)_t [A-Z_]+\\)[\r\n]+[^\r\n]+[\r\n]+[^\r\n]+[\r\n]+endif\\(NOT HAVE[A-Z_]+\\))"
-  "set(CMAKE_EXTRA_INCLUDE_FILES time.h)\n\\1\nunset(CMAKE_EXTRA_INCLUDE_FILES)"
-  CMAKE_LISTS "${CMAKE_LISTS}")
-file(WRITE ${CMAKE_LISTS_LOCATION} "${CMAKE_LISTS}")
-message(STATUS "Patched ${CMAKE_LISTS_LOCATION}")

+ 0 - 11
unittest/CMakeLists.txt

@@ -7,16 +7,6 @@ endif()
 
 # We use the check unit testing framework for our C unit tests
 include(ExternalProject)
-if(NOT WIN32)
-  # Apply the patch to check to fix CMake building on OS X
-  set(CHECK_PATCH_COMMAND patch
-     ${CIVETWEB_THIRD_PARTY_DIR}/src/check-unit-test-framework/src/check_run.c
-     ${CMAKE_SOURCE_DIR}/cmake/check/check_run.patch
-   )
-else()
-  set(CHECK_PATCH_COMMAND "")
-endif()
-
 IF (DEFINED ENV{CHECK_URL})
 SET (CHECK_URL $ENV{CHECK_URL})
 ELSE()
@@ -39,7 +29,6 @@ DOWNLOAD_NAME "master.zip"
 
   PREFIX "${CIVETWEB_THIRD_PARTY_DIR}"
   BUILD_IN_SOURCE 1
-  PATCH_COMMAND ${CHECK_PATCH_COMMAND}
   CMAKE_ARGS
     "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
     "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"