xref: /aosp_15_r20/external/libcxx/test/libcxx/fuzzing/regex_egrep.cpp (revision 58b9f456b02922dfdb1fad8a988d5fd8765ecb80)
1*58b9f456SAndroid Build Coastguard Worker // -*- C++ -*-
2*58b9f456SAndroid Build Coastguard Worker //===------------------------ regex_egrep.cpp -----------------------------===//
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 // XFAIL
12*58b9f456SAndroid Build Coastguard Worker 
13*58b9f456SAndroid Build Coastguard Worker #include "fuzzing.h"
14*58b9f456SAndroid Build Coastguard Worker #include <cassert>
15*58b9f456SAndroid Build Coastguard Worker #include <cstring> // for strlen
16*58b9f456SAndroid Build Coastguard Worker 
17*58b9f456SAndroid Build Coastguard Worker const char * test_cases[] = {
18*58b9f456SAndroid Build Coastguard Worker 	"",
19*58b9f456SAndroid Build Coastguard Worker 	"s",
20*58b9f456SAndroid Build Coastguard Worker 	"b*c",
21*58b9f456SAndroid Build Coastguard Worker 	"ba?sf"
22*58b9f456SAndroid Build Coastguard Worker 	"lka*ea",
23*58b9f456SAndroid Build Coastguard Worker 	"adsf*kas;lnc441[0-9]1r34525234"
24*58b9f456SAndroid Build Coastguard Worker 	};
25*58b9f456SAndroid Build Coastguard Worker 
26*58b9f456SAndroid Build Coastguard Worker const size_t k_num_tests = sizeof(test_cases)/sizeof(test_cases[0]);
27*58b9f456SAndroid Build Coastguard Worker 
main()28*58b9f456SAndroid Build Coastguard Worker int main ()
29*58b9f456SAndroid Build Coastguard Worker {
30*58b9f456SAndroid Build Coastguard Worker 	for (size_t i = 0; i < k_num_tests; ++i)
31*58b9f456SAndroid Build Coastguard Worker 		{
32*58b9f456SAndroid Build Coastguard Worker 		const size_t   size = std::strlen(test_cases[i]);
33*58b9f456SAndroid Build Coastguard Worker 		const uint8_t *data = (const uint8_t *) test_cases[i];
34*58b9f456SAndroid Build Coastguard Worker 		assert(0 == fuzzing::regex_egrep(data, size));
35*58b9f456SAndroid Build Coastguard Worker 		}
36*58b9f456SAndroid Build Coastguard Worker 	return 0;
37*58b9f456SAndroid Build Coastguard Worker }
38