blob: 3a893d625623622ce4f3765125110f6d52210cd2 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <cstdlib>
#include <iostream>
#include <string_view>
#include "third_party/fuzztest/src/fuzztest/fuzztest.h"
// Very simple fuzzer to allow us to (manually) test that string comparison
// instrumentation is working. If so, this should almost immediately crash,
// otherwise it will run almost forever because there's no real chance of
// hitting upon 'fish' by accident.
void StringCompareWithSeeds(std::string_view the_string) {
if (the_string == "fish") {
std::cout << "Found fish\n";
exit(1);
}
}
// Seed with strings similar to target string to see impact on number of execs
// to find the crash.
FUZZ_TEST(TestFuzzer, StringCompareWithSeeds)
.WithDomains(fuzztest::String().WithSeeds([]() -> std::vector<std::string> {
// "fis" will not provide much direct signal to FuzzTest because it won't
// make it past the string len check but "fisk" should help speed up
// finding the string match by reporting a prefix match of "fis".
return {"fis", "fisk"};
}));