Skip to content

Commit

Permalink
Revert designated initializer usages for C++17 compliance.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 729167988
  • Loading branch information
hadi88 authored and copybara-github committed Feb 20, 2025
1 parent 2018472 commit 05f63cf
Show file tree
Hide file tree
Showing 6 changed files with 156 additions and 129 deletions.
4 changes: 2 additions & 2 deletions centipede/command.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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<int>(absl::ToInt64Milliseconds(
std::max(poll_deadline - absl::Now(), absl::Milliseconds(1))));
Expand Down
11 changes: 5 additions & 6 deletions centipede/config_init.cc
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,11 @@ ABSL_ATTRIBUTE_WEAK std::unique_ptr<RuntimeState> 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<std::string> leftover_argv =
CastArgv(absl::ParseCommandLine(argc, argv));
Expand Down
3 changes: 1 addition & 2 deletions centipede/corpus_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
11 changes: 7 additions & 4 deletions centipede/distill.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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());

Expand Down
164 changes: 88 additions & 76 deletions centipede/environment_flags.cc
Original file line number Diff line number Diff line change
Expand Up @@ -436,85 +436,97 @@ Environment CreateEnvironmentFromFlags(const std::vector<std::string> &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();
Expand Down
Loading

0 comments on commit 05f63cf

Please sign in to comment.