blob: 6624955f8ed4ceb4cc44e707e64ca91f11d4cdcd [file] [log] [blame]
Marshall Clow29ae2ba2017-10-04 22:23:03 +00001// -*- C++ -*-
2//===-------------------------- fuzzing.h --------------------------------===//
3//
4// The LLVM Compiler Infrastructure
5//
6// This file is dual licensed under the MIT and the University of Illinois Open
7// Source Licenses. See LICENSE.TXT for details.
8//
9//===----------------------------------------------------------------------===//
10
11#ifndef _LIBCPP_FUZZING
12#define _LIBCPP_FUZZING
13
14#include <cstddef> // for size_t
15#include <cstdint> // for uint8_t
16
17namespace fuzzing {
18
19// These all return 0 on success; != 0 on failure
20 int sort (const uint8_t *data, size_t size);
21 int stable_sort (const uint8_t *data, size_t size);
22 int partition (const uint8_t *data, size_t size);
23 int stable_partition (const uint8_t *data, size_t size);
24
25// partition and stable_partition take Bi-Di iterators.
26// Should test those, too
27
28 int nth_element (const uint8_t *data, size_t size);
29 int partial_sort (const uint8_t *data, size_t size);
Marshall Clowc85f85a2017-10-12 14:48:09 +000030
31// Various flavors of regex
32 int regex_ECMAScript (const uint8_t *data, size_t size);
33 int regex_POSIX (const uint8_t *data, size_t size);
34 int regex_extended (const uint8_t *data, size_t size);
35 int regex_awk (const uint8_t *data, size_t size);
36 int regex_grep (const uint8_t *data, size_t size);
37 int regex_egrep (const uint8_t *data, size_t size);
38
Marshall Clow29ae2ba2017-10-04 22:23:03 +000039} // namespace fuzzing
40
41#endif // _LIBCPP_FUZZING