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