Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / compiler-rt / test / fuzzer / SimpleThreadedTest.cpp
blob8f4cf6a9a14ce4ff14d6c3c37329f387a8b9e5e5
1 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
2 // See https://llvm.org/LICENSE.txt for license information.
3 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5 // Threaded test for a fuzzer. The fuzzer should find "H"
6 #include <assert.h>
7 #include <cstddef>
8 #include <cstdint>
9 #include <cstring>
10 #include <iostream>
11 #include <ostream>
12 #include <thread>
14 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
15 auto C = [&] {
16 if (Size >= 2 && Data[0] == 'H') {
17 std::cout << "BINGO; Found the target, exiting\n" << std::flush;
18 abort();
21 std::thread T[] = {std::thread(C), std::thread(C), std::thread(C),
22 std::thread(C), std::thread(C), std::thread(C)};
23 for (auto &X : T)
24 X.join();
25 return 0;