1 /* Copyright (c) 2015-2018 the Civetweb developers
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a copy
4  * of this software and associated documentation files (the "Software"), to deal
5  * in the Software without restriction, including without limitation the rights
6  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7  * copies of the Software, and to permit persons to whom the Software is
8  * furnished to do so, subject to the following conditions:
9  *
10  * The above copyright notice and this permission notice shall be included in
11  * all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19  * THE SOFTWARE.
20  */
21 #ifndef TEST_CIVETWEB_CHECK_H_
22 #define TEST_CIVETWEB_CHECK_H_
23 
24 #ifdef __clang__
25 #pragma clang diagnostic push
26 // FIXME: check uses GCC specific variadic macros that are non-standard
27 #pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
28 #endif
29 
30 #if defined(__MINGW__) || defined(__GNUC__)
31 #pragma GCC diagnostic push
32 #pragma GCC diagnostic ignored "-Wall"
33 /* Disable warnings for defining _CRT_SECURE_NO_* (here) and
34  * _CHECK_CHECK_STDINT_H (in check.h)
35  */
36 /* Disable until Warning returns to Travis CI or AppVeyor
37 #pragma GCC diagnostic ignored "-Wunknown-pragmas"
38 #pragma GCC diagnostic ignored "-Wno-variadic-macros"
39 #pragma GCC diagnostic ignored "-Wreserved-id-macro"
40 */
41 #endif
42 
43 #ifdef _MSC_VER
44 #undef pid_t
45 #define pid_t int
46 /* Unreferenced formal parameter. START_TEST has _i */
47 #pragma warning(disable : 4100)
48 /* conditional expression is constant . asserts use while(0) */
49 #pragma warning(disable : 4127)
50 #endif
51 #include <stdint.h>
52 
53 /* All unit tests use the "check" framework.
54  * Download from https://libcheck.github.io/check/
55  */
56 #include "check.h"
57 
58 #if (CHECK_MINOR_VERSION < 11)
59 #ifndef LOCAL_TEST
60 #error "CivetWeb unit tests require at least check 0.11.0"
61 #endif
62 #endif
63 
64 #ifdef __clang__
65 #pragma clang diagnostic pop
66 #endif
67 
68 #if !defined(_CRT_SECURE_NO_WARNINGS)
69 #define _CRT_SECURE_NO_WARNINGS
70 #endif
71 #if !defined(_CRT_SECURE_NO_DEPRECATE)
72 #define _CRT_SECURE_NO_DEPRECATE
73 #endif
74 
75 #if defined(__MINGW__) || defined(__GNUC__)
76 #pragma GCC diagnostic pop
77 #endif
78 
79 #ifdef __clang__
80 /* When using -Weverything, clang does not accept it's own headers
81  * in a release build configuration. Disable what is too much in
82  * -Weverything. */
83 #pragma clang diagnostic ignored "-Wdisabled-macro-expansion"
84 #endif
85 
86 /* A minimal timeout used for all tests with the "check" framework. */
87 #define civetweb_min_test_timeout (30)
88 
89 /* A minimal timeout for all tests starting a server. */
90 #define civetweb_min_server_test_timeout (civetweb_min_test_timeout + 30)
91 
92 /* A default timeout for all tests running multiple requests to a server. */
93 #define civetweb_mid_server_test_timeout                                       \
94 	(civetweb_min_server_test_timeout + 180)
95 
96 #endif /* TEST_CIVETWEB_CHECK_H_ */
97