From 05f63cf994d74d70b55b536160516ce11ac04dfd Mon Sep 17 00:00:00 2001 From: Hadi Ravanbakhsh Date: Thu, 20 Feb 2025 10:40:57 -0800 Subject: [PATCH] Revert designated initializer usages for C++17 compliance. PiperOrigin-RevId: 729167988 --- centipede/command.cc | 4 +- centipede/config_init.cc | 11 +-- centipede/corpus_test.cc | 3 +- centipede/distill.cc | 11 ++- centipede/environment_flags.cc | 164 ++++++++++++++++++--------------- centipede/environment_test.cc | 92 ++++++++++-------- 6 files changed, 156 insertions(+), 129 deletions(-) diff --git a/centipede/command.cc b/centipede/command.cc index 6d78c184..981b8526 100644 --- a/centipede/command.cc +++ b/centipede/command.cc @@ -338,8 +338,8 @@ int Command::Execute() { do { // NOTE: `poll_fd` has to be reset every time. poll_fd = { - .fd = fork_server_->pipe_[1], // The file descriptor to wait for. - .events = POLLIN, // Wait until `fd` gets readable data. + /*fd=*/fork_server_->pipe_[1], // The file descriptor to wait for. + /*events=*/POLLIN, // Wait until `fd` gets readable data. }; const int poll_timeout_ms = static_cast(absl::ToInt64Milliseconds( std::max(poll_deadline - absl::Now(), absl::Milliseconds(1)))); diff --git a/centipede/config_init.cc b/centipede/config_init.cc index fe1c6073..4a4f96ee 100644 --- a/centipede/config_init.cc +++ b/centipede/config_init.cc @@ -41,12 +41,11 @@ ABSL_ATTRIBUTE_WEAK std::unique_ptr InitRuntime(int argc, // `--stderrthreshold=N` on the command line will override this. absl::SetStderrThreshold(absl::LogSeverityAtLeast::kInfo); // Make --help print any flags defined by any Centipede source. - absl::SetFlagsUsageConfig({ - .contains_help_flags = - [](std::string_view filename) { - return absl::StrContains(filename, "centipede"); - }, - }); + absl::FlagsUsageConfig usage_config; + usage_config.contains_help_flags = [](std::string_view filename) { + return absl::StrContains(filename, "centipede"); + }; + absl::SetFlagsUsageConfig(usage_config); // Parse the known flags from the command line. std::vector leftover_argv = CastArgv(absl::ParseCommandLine(argc, argv)); diff --git a/centipede/corpus_test.cc b/centipede/corpus_test.cc index 56a83f59..fba64d93 100644 --- a/centipede/corpus_test.cc +++ b/centipede/corpus_test.cc @@ -45,8 +45,7 @@ TEST(Corpus, GetCmpData) { ByteArray cmp_data{2, 0, 1, 2, 3}; FeatureVec features1 = {10, 20, 30}; fs.IncrementFrequencies(features1); - corpus.Add({1}, features1, /*metadata=*/{.cmp_data = cmp_data}, fs, - coverage_frontier); + corpus.Add({1}, features1, /*metadata=*/{cmp_data}, fs, coverage_frontier); EXPECT_EQ(corpus.NumActive(), 1); EXPECT_EQ(corpus.GetMetadata(0).cmp_data, cmp_data); } diff --git a/centipede/distill.cc b/centipede/distill.cc index 522d731a..8d554ffd 100644 --- a/centipede/distill.cc +++ b/centipede/distill.cc @@ -94,7 +94,8 @@ static_assert(kMaxReadingThreads * kMaxWritingThreads <= kMaxTotalThreads); inline constexpr perf::MemSize kGB = 1024L * 1024L * 1024L; // The total approximate amount of RAM to be shared by the concurrent threads. // TODO(ussuri): Replace by a function of free RSS on the system. -inline constexpr perf::RUsageMemory kRamQuota{.mem_rss = 25 * kGB}; +inline constexpr perf::RUsageMemory kRamQuota{/*mem_vsize=*/0, /*mem_vpeak=*/0, + /*mem_rss=*/25 * kGB}; // The amount of time that each thread will wait for enough RAM to be freed up // by its concurrent siblings. inline constexpr absl::Duration kRamLeaseTimeout = absl::Hours(5); @@ -354,9 +355,11 @@ void DistillToOneOutputShard( // threads.Schedule([shard_idx, &reader, &writer, &env, num_shards, &ram_pool] { const auto ram_lease = ram_pool.AcquireLeaseBlocking({ - .id = absl::StrCat("out_", env.my_shard_index, "/in_", shard_idx), - .amount = {.mem_rss = reader.EstimateRamFootprint(shard_idx)}, - .timeout = kRamLeaseTimeout, + /*id=*/absl::StrCat("out_", env.my_shard_index, "/in_", shard_idx), + /*amount=*/ + {/*mem_vsize=*/0, /*mem_vpeak=*/0, + /*mem_rss=*/reader.EstimateRamFootprint(shard_idx)}, + /*timeout=*/kRamLeaseTimeout, }); CHECK_OK(ram_lease.status()); diff --git a/centipede/environment_flags.cc b/centipede/environment_flags.cc index 19e9a093..f5b5ed2c 100644 --- a/centipede/environment_flags.cc +++ b/centipede/environment_flags.cc @@ -436,85 +436,97 @@ Environment CreateEnvironmentFromFlags(const std::vector &argv) { : *absl::StrSplit(binary, ' ').begin()) : absl::GetFlag(FLAGS_coverage_binary); Environment env_from_flags = { - .binary = binary, - .coverage_binary = coverage_binary, - .clang_coverage_binary = absl::GetFlag(FLAGS_clang_coverage_binary), - .extra_binaries = absl::GetFlag(FLAGS_extra_binaries), - .workdir = absl::GetFlag(FLAGS_workdir), - .merge_from = absl::GetFlag(FLAGS_merge_from), - .num_runs = absl::GetFlag(FLAGS_num_runs), - .total_shards = absl::GetFlag(FLAGS_total_shards), - .my_shard_index = absl::GetFlag(FLAGS_first_shard_index), - .num_threads = absl::GetFlag(FLAGS_num_threads), - .max_len = absl::GetFlag(FLAGS_max_len), - .batch_size = absl::GetFlag(FLAGS_batch_size), - .mutate_batch_size = absl::GetFlag(FLAGS_mutate_batch_size), - .use_legacy_default_mutator = - absl::GetFlag(FLAGS_use_legacy_default_mutator), - .load_other_shard_frequency = - absl::GetFlag(FLAGS_load_other_shard_frequency), - .serialize_shard_loads = absl::GetFlag(FLAGS_serialize_shard_loads), - .seed = absl::GetFlag(FLAGS_seed), - .prune_frequency = absl::GetFlag(FLAGS_prune_frequency), - .address_space_limit_mb = absl::GetFlag(FLAGS_address_space_limit_mb), - .rss_limit_mb = absl::GetFlag(FLAGS_rss_limit_mb), - .stack_limit_kb = absl::GetFlag(FLAGS_stack_limit_kb), - .timeout_per_input = absl::GetFlag(FLAGS_timeout_per_input), - .timeout_per_batch = absl::GetFlag(FLAGS_timeout_per_batch), - .stop_at = GetStopAtTime(absl::GetFlag(FLAGS_stop_at), - absl::GetFlag(FLAGS_stop_after)), - .fork_server = absl::GetFlag(FLAGS_fork_server), - .full_sync = absl::GetFlag(FLAGS_full_sync), - .use_corpus_weights = absl::GetFlag(FLAGS_use_corpus_weights), - .use_coverage_frontier = absl::GetFlag(FLAGS_use_coverage_frontier), - .max_corpus_size = absl::GetFlag(FLAGS_max_corpus_size), - .crossover_level = absl::GetFlag(FLAGS_crossover_level), - .use_pc_features = absl::GetFlag(FLAGS_use_pc_features), - .path_level = absl::GetFlag(FLAGS_path_level), - .use_cmp_features = absl::GetFlag(FLAGS_use_cmp_features), - .callstack_level = absl::GetFlag(FLAGS_callstack_level), - .use_auto_dictionary = absl::GetFlag(FLAGS_use_auto_dictionary), - .use_dataflow_features = absl::GetFlag(FLAGS_use_dataflow_features), - .use_counter_features = absl::GetFlag(FLAGS_use_counter_features), - .use_pcpair_features = absl::GetFlag(FLAGS_use_pcpair_features), - .user_feature_domain_mask = absl::GetFlag(FLAGS_user_feature_domain_mask), - .feature_frequency_threshold = - absl::GetFlag(FLAGS_feature_frequency_threshold), - .require_pc_table = absl::GetFlag(FLAGS_require_pc_table), - .telemetry_frequency = absl::GetFlag(FLAGS_telemetry_frequency), - .print_runner_log = absl::GetFlag(FLAGS_print_runner_log), - .distill = absl::GetFlag(FLAGS_distill), - .log_features_shards = absl::GetFlag(FLAGS_log_features_shards), - .knobs_file = absl::GetFlag(FLAGS_knobs_file), - .corpus_to_files = absl::GetFlag(FLAGS_corpus_to_files), - .corpus_from_files = absl::GetFlag(FLAGS_corpus_from_files), - .corpus_dir = absl::GetFlag(FLAGS_corpus_dir), - .symbolizer_path = absl::GetFlag(FLAGS_symbolizer_path), - .objdump_path = absl::GetFlag(FLAGS_objdump_path), - .runner_dl_path_suffix = absl::GetFlag(FLAGS_runner_dl_path_suffix), - .input_filter = absl::GetFlag(FLAGS_input_filter), - .dictionary = absl::GetFlag(FLAGS_dictionary), - .function_filter = absl::GetFlag(FLAGS_function_filter), - .for_each_blob = absl::GetFlag(FLAGS_for_each_blob), - .experiment = absl::GetFlag(FLAGS_experiment), - .analyze = absl::GetFlag(FLAGS_analyze), - .exit_on_crash = absl::GetFlag(FLAGS_exit_on_crash), - .max_num_crash_reports = absl::GetFlag(FLAGS_num_crash_reports), - .minimize_crash_file_path = absl::GetFlag(FLAGS_minimize_crash), - .batch_triage_suspect_only = - absl::GetFlag(FLAGS_batch_triage_suspect_only), - .shmem_size_mb = absl::GetFlag(FLAGS_shmem_size_mb), - .use_posix_shmem = absl::GetFlag(FLAGS_use_posix_shmem), - .dry_run = absl::GetFlag(FLAGS_dry_run), - .save_binary_info = absl::GetFlag(FLAGS_save_binary_info), - .populate_binary_info = absl::GetFlag(FLAGS_populate_binary_info), + /*binary=*/binary, + /*coverage_binary=*/coverage_binary, + /*clang_coverage_binary=*/absl::GetFlag(FLAGS_clang_coverage_binary), + /*extra_binaries=*/absl::GetFlag(FLAGS_extra_binaries), + /*workdir=*/absl::GetFlag(FLAGS_workdir), + /*merge_from=*/absl::GetFlag(FLAGS_merge_from), + /*num_runs=*/absl::GetFlag(FLAGS_num_runs), + /*total_shards=*/absl::GetFlag(FLAGS_total_shards), + /*my_shard_index=*/absl::GetFlag(FLAGS_first_shard_index), + /*num_threads=*/absl::GetFlag(FLAGS_num_threads), + /*j=*/Environment::Default().j, + /*max_len*/ absl::GetFlag(FLAGS_max_len), + /*batch_size=*/absl::GetFlag(FLAGS_batch_size), + /*mutate_batch_size=*/absl::GetFlag(FLAGS_mutate_batch_size), + /*use_legacy_default_mutator=*/ + absl::GetFlag(FLAGS_use_legacy_default_mutator), + /*load_other_shard_frequency=*/ + absl::GetFlag(FLAGS_load_other_shard_frequency), + /*serialize_shard_loads=*/absl::GetFlag(FLAGS_serialize_shard_loads), + /*seed=*/absl::GetFlag(FLAGS_seed), + /*prune_frequency=*/absl::GetFlag(FLAGS_prune_frequency), + /*address_space_limit_mb=*/absl::GetFlag(FLAGS_address_space_limit_mb), + /*rss_limit_mb=*/absl::GetFlag(FLAGS_rss_limit_mb), + /*stack_limit_kb=*/absl::GetFlag(FLAGS_stack_limit_kb), + /*timeout_per_input=*/absl::GetFlag(FLAGS_timeout_per_input), + /*timeout_per_batch=*/absl::GetFlag(FLAGS_timeout_per_batch), + /*stop_at=*/ + GetStopAtTime(absl::GetFlag(FLAGS_stop_at), + absl::GetFlag(FLAGS_stop_after)), + /*fork_server=*/absl::GetFlag(FLAGS_fork_server), + /*full_sync=*/absl::GetFlag(FLAGS_full_sync), + /*use_corpus_weights=*/absl::GetFlag(FLAGS_use_corpus_weights), + /*use_coverage_frontier=*/absl::GetFlag(FLAGS_use_coverage_frontier), + /*max_corpus_size=*/absl::GetFlag(FLAGS_max_corpus_size), + /*crossover_level=*/absl::GetFlag(FLAGS_crossover_level), + /*use_pc_features=*/absl::GetFlag(FLAGS_use_pc_features), + /*path_level=*/absl::GetFlag(FLAGS_path_level), + /*use_cmp_features=*/absl::GetFlag(FLAGS_use_cmp_features), + /*callstack_level=*/absl::GetFlag(FLAGS_callstack_level), + /*use_auto_dictionary=*/absl::GetFlag(FLAGS_use_auto_dictionary), + /*use_dataflow_features=*/absl::GetFlag(FLAGS_use_dataflow_features), + /*use_counter_features=*/absl::GetFlag(FLAGS_use_counter_features), + /*use_pcpair_features=*/absl::GetFlag(FLAGS_use_pcpair_features), + /*user_feature_domain_mask=*/ + absl::GetFlag(FLAGS_user_feature_domain_mask), + /*feature_frequency_threshold=*/ + absl::GetFlag(FLAGS_feature_frequency_threshold), + /*require_pc_table=*/absl::GetFlag(FLAGS_require_pc_table), + /*telemetry_frequency=*/absl::GetFlag(FLAGS_telemetry_frequency), + /*print_runner_log=*/absl::GetFlag(FLAGS_print_runner_log), + /*distill=*/absl::GetFlag(FLAGS_distill), + /*log_features_shards=*/absl::GetFlag(FLAGS_log_features_shards), + /*knobs_file=*/absl::GetFlag(FLAGS_knobs_file), + /*corpus_to_files=*/absl::GetFlag(FLAGS_corpus_to_files), + /*corpus_from_files=*/absl::GetFlag(FLAGS_corpus_from_files), + /*corpus_dir=*/absl::GetFlag(FLAGS_corpus_dir), + /*symbolizer_path=*/absl::GetFlag(FLAGS_symbolizer_path), + /*objdump_path=*/absl::GetFlag(FLAGS_objdump_path), + /*runner_dl_path_suffix=*/absl::GetFlag(FLAGS_runner_dl_path_suffix), + /*input_filter=*/absl::GetFlag(FLAGS_input_filter), + /*dictionary=*/absl::GetFlag(FLAGS_dictionary), + /*function_filter=*/absl::GetFlag(FLAGS_function_filter), + /*for_each_blob=*/absl::GetFlag(FLAGS_for_each_blob), + /*experiment=*/absl::GetFlag(FLAGS_experiment), + /*analyze=*/absl::GetFlag(FLAGS_analyze), + /*exit_on_crash=*/absl::GetFlag(FLAGS_exit_on_crash), + /*max_num_crash_reports=*/absl::GetFlag(FLAGS_num_crash_reports), + /*minimize_crash_file_path=*/absl::GetFlag(FLAGS_minimize_crash), + /*batch_triage_suspect_only=*/ + absl::GetFlag(FLAGS_batch_triage_suspect_only), + /*shmem_size_mb=*/absl::GetFlag(FLAGS_shmem_size_mb), + /*use_posix_shmem=*/absl::GetFlag(FLAGS_use_posix_shmem), + /*dry_run=*/absl::GetFlag(FLAGS_dry_run), + /*save_binary_info=*/absl::GetFlag(FLAGS_save_binary_info), + /*populate_binary_info=*/absl::GetFlag(FLAGS_populate_binary_info), #ifdef CENTIPEDE_DISABLE_RIEGELI - .riegeli = false, + /*riegeli=*/false, #else - .riegeli = absl::GetFlag(FLAGS_riegeli), + /*riegeli=*/absl::GetFlag(FLAGS_riegeli), #endif // CENTIPEDE_DISABLE_RIEGELI - .binary_name = std::filesystem::path(coverage_binary).filename().string(), - .binary_hash = absl::GetFlag(FLAGS_binary_hash), + /*first_corpus_dir_output_only=*/ + Environment::Default().first_corpus_dir_output_only, + /*load_shards_only=*/Environment::Default().load_shards_only, + /*fuzztest_single_test_mode=*/ + Environment::Default().fuzztest_single_test_mode, + /*fuzztest_configuration=*/Environment::Default().fuzztest_configuration, + /*exec_name=*/Environment::Default().exec_name, + /*args=*/Environment::Default().args, + /*binary_name=*/ + std::filesystem::path(coverage_binary).filename().string(), + /*binary_hash=*/absl::GetFlag(FLAGS_binary_hash), }; env_from_flags.UpdateBinaryHashIfEmpty(); diff --git a/centipede/environment_test.cc b/centipede/environment_test.cc index 4516b0e4..65fd6463 100644 --- a/centipede/environment_test.cc +++ b/centipede/environment_test.cc @@ -56,8 +56,12 @@ TEST(Environment, UpdateForExperiment) { } TEST(Environment, UpdatesNumberOfShardsAndThreadsFromTargetConfigJobs) { - Environment env{.total_shards = 20, .my_shard_index = 10, .num_threads = 5}; - fuzztest::internal::Configuration config{.jobs = 10}; + Environment env; + env.total_shards = 20; + env.my_shard_index = 10; + env.num_threads = 5; + fuzztest::internal::Configuration config; + config.jobs = 10; env.UpdateWithTargetConfig(config); EXPECT_EQ(env.j, 10); EXPECT_EQ(env.total_shards, 10); @@ -66,16 +70,20 @@ TEST(Environment, UpdatesNumberOfShardsAndThreadsFromTargetConfigJobs) { } TEST(Environment, DiesOnInconsistentJAndTargetConfigJobs) { - Environment env{.j = 10}; - fuzztest::internal::Configuration config{.jobs = 20}; + Environment env; + env.j = 10; + fuzztest::internal::Configuration config; + config.jobs = 20; EXPECT_DEATH(env.UpdateWithTargetConfig(config), "Value for --j is inconsistent with the value for jobs in the " "target binary"); } TEST(Environment, UpdatesTimeoutPerBatchFromTimeoutPerInputAndBatchSize) { - Environment env{ - .batch_size = 1000, .timeout_per_input = 100, .timeout_per_batch = 0}; + Environment env; + env.batch_size = 1000; + env.timeout_per_input = 100; + env.timeout_per_batch = 0; env.UpdateTimeoutPerBatchIfEqualTo(0); EXPECT_GT(env.timeout_per_batch, 0); @@ -86,29 +94,30 @@ TEST(Environment, UpdatesTimeoutPerBatchFromTimeoutPerInputAndBatchSize) { TEST(Environment, UpdatesTimeoutPerInputFromFiniteTargetConfigTimeLimitPerInput) { - Environment env{.timeout_per_input = - Environment::Default().timeout_per_input}; - fuzztest::internal::Configuration config{.time_limit_per_input = - absl::Seconds(456)}; + Environment env; + env.timeout_per_input = Environment::Default().timeout_per_input; + fuzztest::internal::Configuration config; + config.time_limit_per_input = absl::Seconds(456); env.UpdateWithTargetConfig(config); EXPECT_EQ(env.timeout_per_input, 456); } TEST(Environment, UpdatesTimeoutPerInputFromInfiniteTargetConfigTimeLimitPerInput) { - Environment env{.timeout_per_input = - Environment::Default().timeout_per_input}; - fuzztest::internal::Configuration config{.time_limit_per_input = - absl::InfiniteDuration()}; + Environment env; + env.timeout_per_input = Environment::Default().timeout_per_input; + fuzztest::internal::Configuration config; + config.time_limit_per_input = absl::InfiniteDuration(); env.UpdateWithTargetConfig(config); EXPECT_EQ(env.timeout_per_input, 0); } TEST(Environment, DiesOnInconsistentTimeoutPerInputAndTargetConfigTimeLimitPerInput) { - Environment env{.timeout_per_input = 123}; - fuzztest::internal::Configuration config{.time_limit_per_input = - absl::Seconds(456)}; + Environment env; + env.timeout_per_input = 123; + fuzztest::internal::Configuration config; + config.time_limit_per_input = absl::Seconds(456); EXPECT_DEATH( env.UpdateWithTargetConfig(config), "Value for --timeout_per_input is inconsistent with the value for " @@ -117,33 +126,32 @@ TEST(Environment, TEST(Environment, UpdatesTimeoutPerBatchFromFiniteTargetConfigTimeLimitPerInput) { - Environment env{.timeout_per_input = - Environment::Default().timeout_per_input}; + Environment env; + env.timeout_per_input = Environment::Default().timeout_per_input; env.UpdateTimeoutPerBatchIfEqualTo(Environment::Default().timeout_per_batch); const size_t autocomputed_timeout_per_batch = env.timeout_per_batch; - fuzztest::internal::Configuration config{.time_limit_per_input = - absl::Seconds(456)}; + fuzztest::internal::Configuration config; + config.time_limit_per_input = absl::Seconds(456); env.UpdateWithTargetConfig(config); EXPECT_NE(env.timeout_per_batch, autocomputed_timeout_per_batch); } TEST(Environment, UpdatesTimeoutPerBatchFromInfiniteTargetConfigTimeLimitPerInput) { - Environment env{.timeout_per_input = - Environment::Default().timeout_per_input}; + Environment env; + env.timeout_per_input = Environment::Default().timeout_per_input; env.UpdateTimeoutPerBatchIfEqualTo(Environment::Default().timeout_per_batch); - fuzztest::internal::Configuration config{.time_limit_per_input = - absl::InfiniteDuration()}; + fuzztest::internal::Configuration config; + config.time_limit_per_input = absl::InfiniteDuration(); env.UpdateWithTargetConfig(config); EXPECT_EQ(env.timeout_per_batch, 0); } TEST(Environment, UpdatesTimeoutPerBatchFromTargetConfigTimeLimit) { Environment env; - fuzztest::internal::Configuration config{ - .time_limit = absl::Seconds(123), - .time_budget_type = fuzztest::internal::TimeBudgetType::kPerTest, - }; + fuzztest::internal::Configuration config; + config.time_limit = absl::Seconds(123); + config.time_budget_type = fuzztest::internal::TimeBudgetType::kPerTest; CHECK(config.GetTimeLimitPerTest() == absl::Seconds(123)); env.UpdateWithTargetConfig(config); EXPECT_EQ(env.timeout_per_batch, 123) @@ -164,17 +172,19 @@ TEST(Environment, UpdatesTimeoutPerBatchFromTargetConfigTimeLimit) { } TEST(Environment, UpdatesRssLimitMbFromTargetConfigRssLimit) { - Environment env{.rss_limit_mb = Environment::Default().rss_limit_mb}; - fuzztest::internal::Configuration config{.rss_limit = - 5UL * 1024 * 1024 * 1024}; + Environment env; + env.rss_limit_mb = Environment::Default().rss_limit_mb; + fuzztest::internal::Configuration config; + config.rss_limit = 5UL * 1024 * 1024 * 1024; env.UpdateWithTargetConfig(config); EXPECT_EQ(env.rss_limit_mb, 5 * 1024); } TEST(Environment, DiesOnInconsistentRssLimitMbAndTargetConfigRssLimit) { - Environment env{.rss_limit_mb = 123}; - fuzztest::internal::Configuration config{.rss_limit = - 5UL * 1024 * 1024 * 1024}; + Environment env; + env.rss_limit_mb = 123; + fuzztest::internal::Configuration config; + config.rss_limit = 5UL * 1024 * 1024 * 1024; EXPECT_DEATH( env.UpdateWithTargetConfig(config), "Value for --rss_limit_mb is inconsistent with the value for rss_limit " @@ -182,15 +192,19 @@ TEST(Environment, DiesOnInconsistentRssLimitMbAndTargetConfigRssLimit) { } TEST(Environment, UpdatesStackLimitKbFromTargetConfigStackLimit) { - Environment env{.stack_limit_kb = Environment::Default().stack_limit_kb}; - fuzztest::internal::Configuration config{.stack_limit = 5UL * 1024}; + Environment env; + env.stack_limit_kb = Environment::Default().stack_limit_kb; + fuzztest::internal::Configuration config; + config.stack_limit = 5UL * 1024; env.UpdateWithTargetConfig(config); EXPECT_EQ(env.stack_limit_kb, 5); } TEST(Environment, DiesOnInconsistentStackLimitKbAndTargetConfigStackLimit) { - Environment env{.stack_limit_kb = 123}; - fuzztest::internal::Configuration config{.stack_limit = 5UL * 1024}; + Environment env; + env.stack_limit_kb = 123; + fuzztest::internal::Configuration config; + config.stack_limit = 5UL * 1024; EXPECT_DEATH(env.UpdateWithTargetConfig(config), "Value for --stack_limit_kb is inconsistent with the value for " "stack_limit in the target binary");