This functionality is provided by libFuzzer, which is available on most platforms. However, libFuzzer is also missing on some platforms. E.g. https://github.com/google/sanitizers/issues/1165

Thus, it could make sense to implement this in our code to be able to execute the existing fuzz inputs.

The basic idea is to check if a folder was passed into `main` (https://github.com/bitcoin/bitcoin/blob/63314b8211d795b2bf0814e244d801e74f50b152/src/test/fuzz/fuzz.cpp#L75) and then iterate over the files and pass them into `test_one_input`.

#### Useful skills:

* C++17 std::filesystem
* https://github.com/bitcoin/bitcoin/blob/master/doc/fuzzing.md


#### Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

{
    initialize();
    static const auto& test_one_input = *Assert(g_test_one_input);
#ifdef __AFL_INIT
    
    
    __AFL_INIT();
#endif
#ifdef __AFL_LOOP
    
    
    while (__AFL_LOOP(1000)) {
        std::vector<uint8_t> buffer;
        if (!read_stdin(buffer)) {
            continue;
        }
        test_one_input(buffer);
    }
#else
    std::vector<uint8_t> buffer;
    if (!read_stdin(buffer)) {
        return 0;
    }
    test_one_input(buffer);
#endif
    return 0;
}
#endif