Skip to content

Commit 6f49714

Browse files
committed
Add miniscript_string fuzz test
1 parent 2cf7c86 commit 6f49714

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

bitcoin/test/fuzz/miniscript_random.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,3 +872,18 @@ FUZZ_TARGET_INIT(miniscript_random_smart, FuzzInitSmart)
872872
return ConsumeNodeSmart(provider, needed_type);
873873
}, PickValue(provider, BASE_TYPES), true), provider);
874874
}
875+
876+
/* Fuzz tests that test parsing from a string, and roundtripping via string. */
877+
FUZZ_TARGET_INIT(miniscript_string, FuzzInit)
878+
{
879+
FuzzedDataProvider provider(buffer.data(), buffer.size());
880+
auto str = provider.ConsumeRemainingBytesAsString();
881+
auto parsed = miniscript::FromString(str, PARSER_CTX);
882+
if (!parsed) return;
883+
884+
std::string str2;
885+
assert(parsed->ToString(PARSER_CTX, str2));
886+
auto parsed2 = miniscript::FromString(str2, PARSER_CTX);
887+
assert(parsed2);
888+
assert(*parsed == *parsed2);
889+
}

0 commit comments

Comments
 (0)