Skip to content

Commit e48094a

Browse files
tests: Add FuzzedAutoFileProvider which provides a CAutoFile interface to FuzzedDataProvider
1 parent 9dbcd68 commit e48094a

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/test/fuzz/util.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,4 +383,25 @@ NODISCARD inline FuzzedFileProvider ConsumeFile(FuzzedDataProvider& fuzzed_data_
383383
return {fuzzed_data_provider};
384384
}
385385

386+
class FuzzedAutoFileProvider
387+
{
388+
FuzzedDataProvider& m_fuzzed_data_provider;
389+
FuzzedFileProvider m_fuzzed_file_provider;
390+
391+
public:
392+
FuzzedAutoFileProvider(FuzzedDataProvider& fuzzed_data_provider) : m_fuzzed_data_provider{fuzzed_data_provider}, m_fuzzed_file_provider{fuzzed_data_provider}
393+
{
394+
}
395+
396+
CAutoFile open()
397+
{
398+
return {m_fuzzed_file_provider.open(), m_fuzzed_data_provider.ConsumeIntegral<int>(), m_fuzzed_data_provider.ConsumeIntegral<int>()};
399+
}
400+
};
401+
402+
NODISCARD inline FuzzedAutoFileProvider ConsumeAutoFile(FuzzedDataProvider& fuzzed_data_provider) noexcept
403+
{
404+
return {fuzzed_data_provider};
405+
}
406+
386407
#endif // BITCOIN_TEST_FUZZ_UTIL_H

0 commit comments

Comments
 (0)