1212
1313#include < cstddef>
1414#include < cstdint>
15+ #include < optional>
1516#include < string>
1617#include < vector>
1718
@@ -29,6 +30,7 @@ namespace {
2930using api::OutputLayout;
3031using ::fuzztest::Arbitrary;
3132using ::fuzztest::ElementOf;
33+ using ::fuzztest::OptionalOf;
3234
3335constexpr absl::string_view kIamfFileTestPath = " iamf/cli/testdata/iamf/" ;
3436
@@ -113,13 +115,15 @@ void DoesNotDieCreateFromDescriptors(const std::string& descriptor_data,
113115FUZZ_TEST (IamfDecoderFuzzTest_ArbitraryBytesToDescriptors,
114116 DoesNotDieCreateFromDescriptors);
115117
116- void DoesNotDieAllParams (api::OutputLayout output_layout,
118+ void DoesNotDieAllParams (std::optional< api::OutputLayout> output_layout,
117119 api::OutputSampleType output_sample_type,
118- uint32_t mix_presentation_id, std::string data) {
120+ std::optional<uint32_t > mix_presentation_id,
121+ std::string data) {
119122 std::vector<uint8_t > bitstream (data.begin (), data.end ());
120123 std::unique_ptr<api::IamfDecoder> iamf_decoder;
121124 const api::IamfDecoder::Settings kSettings = {
122- .requested_mix = {.output_layout = output_layout},
125+ .requested_mix = {.mix_presentation_id = mix_presentation_id,
126+ .output_layout = output_layout},
123127 .requested_output_sample_type = output_sample_type,
124128 };
125129 ASSERT_TRUE (api::IamfDecoder::Create (kSettings , iamf_decoder).ok ());
@@ -157,10 +161,10 @@ auto AnyOutputSampleType() {
157161}
158162
159163FUZZ_TEST (IamfDecoderFuzzTest_AllArbitraryParams, DoesNotDieAllParams)
160- .WithDomains(AnyOutputLayout(), // output_layout,
161- AnyOutputSampleType (), // output_sample_type,
162- Arbitrary<uint32_t >(), // mix_presentation_id,
163- Arbitrary<std::string>()); // data
164+ .WithDomains(OptionalOf( AnyOutputLayout()), // output_layout,
165+ AnyOutputSampleType (), // output_sample_type,
166+ OptionalOf ( Arbitrary<uint32_t >()), // mix_presentation_id,
167+ Arbitrary<std::string>()); // data
164168
165169} // namespace
166170} // namespace iamf_tools
0 commit comments