[Fuzzer] Check FieldTrial bitmask size at compile time.

Rather fail at compile time than at run-time.

Bug: chromium:898373
Bug: webrtc:9855
Change-Id: Iaae81e04e4a8135814c1226f82d3a994de75e9ad
Reviewed-on: https://webrtc-review.googlesource.com/c/107886
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25364}
This commit is contained in:
Yves Gerey 2018-10-25 14:26:07 +02:00 committed by Commit Bot
parent 1803bb2470
commit 9516c38538

View File

@ -93,7 +93,8 @@ std::unique_ptr<AudioProcessing> CreateApm(test::FuzzDataHelper* fuzz_data,
constexpr size_t kNumFieldTrials = arraysize(kFieldTrialNames);
// Verify that the read data type has enough bits to fuzz the field trials.
using FieldTrialBitmaskType = uint64_t;
RTC_DCHECK_LE(kNumFieldTrials, sizeof(FieldTrialBitmaskType) * 8);
static_assert(kNumFieldTrials <= sizeof(FieldTrialBitmaskType) * 8,
"FieldTrialBitmaskType is not large enough.");
std::bitset<kNumFieldTrials> field_trial_bitmask(
fuzz_data->ReadOrDefaultValue<FieldTrialBitmaskType>(0));
for (size_t i = 0; i < kNumFieldTrials; ++i) {