xref: /aosp_15_r20/external/libcxx/fuzzing/fuzzing.h (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
1*58b9f456SAndroid Build Coastguard Worker // -*- C++ -*-
2*58b9f456SAndroid Build Coastguard Worker //===-------------------------- fuzzing.h --------------------------------===//
3*58b9f456SAndroid Build Coastguard Worker //
4*58b9f456SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
5*58b9f456SAndroid Build Coastguard Worker //
6*58b9f456SAndroid Build Coastguard Worker // This file is dual licensed under the MIT and the University of Illinois Open
7*58b9f456SAndroid Build Coastguard Worker // Source Licenses. See LICENSE.TXT for details.
8*58b9f456SAndroid Build Coastguard Worker //
9*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
10*58b9f456SAndroid Build Coastguard Worker 
11*58b9f456SAndroid Build Coastguard Worker #ifndef _LIBCPP_FUZZING
12*58b9f456SAndroid Build Coastguard Worker #define _LIBCPP_FUZZING
13*58b9f456SAndroid Build Coastguard Worker 
14*58b9f456SAndroid Build Coastguard Worker #include <cstddef> // for size_t
15*58b9f456SAndroid Build Coastguard Worker #include <cstdint> // for uint8_t
16*58b9f456SAndroid Build Coastguard Worker 
17*58b9f456SAndroid Build Coastguard Worker namespace fuzzing {
18*58b9f456SAndroid Build Coastguard Worker 
19*58b9f456SAndroid Build Coastguard Worker //  These all return 0 on success; != 0 on failure
20*58b9f456SAndroid Build Coastguard Worker     int sort             (const uint8_t *data, size_t size);
21*58b9f456SAndroid Build Coastguard Worker     int stable_sort      (const uint8_t *data, size_t size);
22*58b9f456SAndroid Build Coastguard Worker     int partition        (const uint8_t *data, size_t size);
23*58b9f456SAndroid Build Coastguard Worker     int partition_copy   (const uint8_t *data, size_t size);
24*58b9f456SAndroid Build Coastguard Worker     int stable_partition (const uint8_t *data, size_t size);
25*58b9f456SAndroid Build Coastguard Worker 	int unique           (const uint8_t *data, size_t size);
26*58b9f456SAndroid Build Coastguard Worker 	int unique_copy      (const uint8_t *data, size_t size);
27*58b9f456SAndroid Build Coastguard Worker 
28*58b9f456SAndroid Build Coastguard Worker //  partition and stable_partition take Bi-Di iterators.
29*58b9f456SAndroid Build Coastguard Worker //  Should test those, too
30*58b9f456SAndroid Build Coastguard Worker     int nth_element       (const uint8_t *data, size_t size);
31*58b9f456SAndroid Build Coastguard Worker     int partial_sort      (const uint8_t *data, size_t size);
32*58b9f456SAndroid Build Coastguard Worker     int partial_sort_copy (const uint8_t *data, size_t size);
33*58b9f456SAndroid Build Coastguard Worker 
34*58b9f456SAndroid Build Coastguard Worker //  Heap operations
35*58b9f456SAndroid Build Coastguard Worker     int make_heap        (const uint8_t *data, size_t size);
36*58b9f456SAndroid Build Coastguard Worker     int push_heap        (const uint8_t *data, size_t size);
37*58b9f456SAndroid Build Coastguard Worker     int pop_heap         (const uint8_t *data, size_t size);
38*58b9f456SAndroid Build Coastguard Worker 
39*58b9f456SAndroid Build Coastguard Worker //  Various flavors of regex
40*58b9f456SAndroid Build Coastguard Worker     int regex_ECMAScript (const uint8_t *data, size_t size);
41*58b9f456SAndroid Build Coastguard Worker     int regex_POSIX      (const uint8_t *data, size_t size);
42*58b9f456SAndroid Build Coastguard Worker     int regex_extended   (const uint8_t *data, size_t size);
43*58b9f456SAndroid Build Coastguard Worker     int regex_awk        (const uint8_t *data, size_t size);
44*58b9f456SAndroid Build Coastguard Worker     int regex_grep       (const uint8_t *data, size_t size);
45*58b9f456SAndroid Build Coastguard Worker     int regex_egrep      (const uint8_t *data, size_t size);
46*58b9f456SAndroid Build Coastguard Worker 
47*58b9f456SAndroid Build Coastguard Worker //	Searching
48*58b9f456SAndroid Build Coastguard Worker 	int search                      (const uint8_t *data, size_t size);
49*58b9f456SAndroid Build Coastguard Worker // 	int search_boyer_moore          (const uint8_t *data, size_t size);
50*58b9f456SAndroid Build Coastguard Worker // 	int search_boyer_moore_horspool (const uint8_t *data, size_t size);
51*58b9f456SAndroid Build Coastguard Worker 
52*58b9f456SAndroid Build Coastguard Worker //	Set operations
53*58b9f456SAndroid Build Coastguard Worker // 	int includes                 (const uint8_t *data, size_t size);
54*58b9f456SAndroid Build Coastguard Worker // 	int set_union                (const uint8_t *data, size_t size);
55*58b9f456SAndroid Build Coastguard Worker // 	int set_intersection         (const uint8_t *data, size_t size);
56*58b9f456SAndroid Build Coastguard Worker // 	int set_difference           (const uint8_t *data, size_t size);
57*58b9f456SAndroid Build Coastguard Worker // 	int set_symmetric_difference (const uint8_t *data, size_t size);
58*58b9f456SAndroid Build Coastguard Worker // 	int merge                    (const uint8_t *data, size_t size);
59*58b9f456SAndroid Build Coastguard Worker 
60*58b9f456SAndroid Build Coastguard Worker } // namespace fuzzing
61*58b9f456SAndroid Build Coastguard Worker 
62*58b9f456SAndroid Build Coastguard Worker #endif // _LIBCPP_FUZZING
63