Skip to content

Commit 266be38

Browse files
committed
chore: use latest cifuzz.h file
1 parent d412fd4 commit 266be38

File tree

1 file changed

+19
-57
lines changed

1 file changed

+19
-57
lines changed

include/cifuzz/cifuzz.h

Lines changed: 19 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -10,50 +10,6 @@
1010
#include <stdint.h>
1111
#endif
1212

13-
#if defined(__CLION_IDE__) && defined(__cplusplus)
14-
/* This code will only be seen by CLion's static analysis/preprocessing engine
15-
* and thus doesn't have to contain any definitions, declarations are
16-
* sufficient. It mocks enough of the Doctest classes to make CLion's test
17-
* framework support treat it as the full Doctest library. */
18-
namespace doctest {
19-
namespace detail {
20-
struct TestSuite {};
21-
typedef int (*funcType)(const uint8_t *data, std::size_t size);
22-
struct TestCase
23-
{
24-
TestCase(funcType test, const char* file, unsigned line, const TestSuite& test_suite,
25-
const char* type = "", int template_id = -1);
26-
TestCase& operator*(const char* in);
27-
};
28-
int regTest(const TestCase& tc);
29-
}
30-
}
31-
32-
/* This macro has to be defined or CLion will not show a play button, but the
33-
* value doesn't matter. */
34-
#define DOCTEST_TEST_CASE
35-
36-
#define CLION_TEST_PLAY_BUTTON \
37-
/* Silence a CLion warning about a static
38-
* initializer with static storage duration */ \
39-
/* NOLINTBEGIN(cert-err58-cpp) */ \
40-
static const int DOCTEST_ANON_VAR_15771531 = \
41-
doctest::detail::regTest( \
42-
doctest::detail::TestCase( \
43-
&LLVMFuzzerTestOneInput, \
44-
"", \
45-
1, \
46-
doctest::detail::TestSuite() \
47-
/* This string is used as the test name and has
48-
* to be globally unique so that CLion
49-
* generates a unique run configuration per
50-
* test. */ \
51-
) * CIFUZZ_TEST_NAME); \
52-
/* NOLINTEND(cert-err58-cpp) */
53-
#else
54-
#define CLION_TEST_PLAY_BUTTON
55-
#endif
56-
5713
#ifdef __cplusplus
5814
#define CIFUZZ_C_LINKAGE extern "C"
5915
#else
@@ -63,22 +19,28 @@ static const int DOCTEST_ANON_VAR_15771531 = \
6319
static void LLVMFuzzerTestOneInputNoReturn(const uint8_t *data, size_t size);
6420

6521
#ifdef CIFUZZ_GCOV
66-
CIFUZZ_C_LINKAGE void __gcov_dump();
67-
CIFUZZ_C_LINKAGE void __gcov_reset();
68-
CIFUZZ_C_LINKAGE int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
69-
LLVMFuzzerTestOneInputNoReturn(data, size);
70-
__gcov_dump();
71-
__gcov_reset();
72-
return 0;
73-
}
22+
#define DEFINE_LLVM_FUZZER_TEST_ONE_INPUT \
23+
CIFUZZ_C_LINKAGE void __gcov_dump(); \
24+
CIFUZZ_C_LINKAGE void __gcov_reset(); \
25+
CIFUZZ_C_LINKAGE int LLVMFuzzerTestOneInput(const uint8_t *data, \
26+
size_t size) { \
27+
LLVMFuzzerTestOneInputNoReturn(data, size); \
28+
__gcov_dump(); \
29+
__gcov_reset(); \
30+
return 0; \
31+
}
7432
#else
75-
CIFUZZ_C_LINKAGE int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
76-
LLVMFuzzerTestOneInputNoReturn(data, size);
77-
return 0;
78-
}
33+
#define DEFINE_LLVM_FUZZER_TEST_ONE_INPUT \
34+
CIFUZZ_C_LINKAGE int LLVMFuzzerTestOneInput(const uint8_t *data, \
35+
size_t size) { \
36+
LLVMFuzzerTestOneInputNoReturn(data, size); \
37+
return 0; \
38+
}
7939
#endif
8040

81-
#define FUZZ_TEST void LLVMFuzzerTestOneInputNoReturn
41+
#define FUZZ_TEST \
42+
DEFINE_LLVM_FUZZER_TEST_ONE_INPUT; \
43+
void LLVMFuzzerTestOneInputNoReturn
8244

8345
#ifdef __APPLE__
8446
#define DECLARE_LLVM_FUZZER_INITIALIZE_NO_RETURN \

0 commit comments

Comments
 (0)