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: 724458707
  • Loading branch information
xinhaoyuan authored and copybara-github committed Feb 7, 2025
1 parent af84f4c commit e995ce8
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 88 deletions.
19 changes: 9 additions & 10 deletions centipede/analyze_corpora.cc
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,13 @@ AnalyzeCorporaResults AnalyzeCorpora(const BinaryInfo &binary_info,
<< VV(b_shared_indices.size()) << VV(b_unique_indices.size());

// Sort PCs to put them in the canonical order, as in pc_table.
AnalyzeCorporaResults ret = {
.a_pcs = std::vector<size_t>{a_pcs.begin(), a_pcs.end()},
.b_pcs = std::vector<size_t>{b_pcs.begin(), b_pcs.end()},
.a_only_pcs = std::vector<size_t>{a_only_pcs.begin(), a_only_pcs.end()},
.b_only_pcs = std::vector<size_t>{b_only_pcs.begin(), b_only_pcs.end()},
.a_pc_to_corpus_record = std::move(a_pc_to_corpus),
.b_pc_to_corpus_record = std::move(b_pc_to_corpus),
};
AnalyzeCorporaResults ret;
ret.a_pcs = std::vector<size_t>{a_pcs.begin(), a_pcs.end()};
ret.b_pcs = std::vector<size_t>{b_pcs.begin(), b_pcs.end()};
ret.a_only_pcs = std::vector<size_t>{a_only_pcs.begin(), a_only_pcs.end()};
ret.b_only_pcs = std::vector<size_t>{b_only_pcs.begin(), b_only_pcs.end()};
ret.a_pc_to_corpus_record = std::move(a_pc_to_corpus);
ret.b_pc_to_corpus_record = std::move(b_pc_to_corpus);
std::sort(ret.a_pcs.begin(), ret.a_pcs.end());
std::sort(ret.b_pcs.begin(), ret.b_pcs.end());
std::sort(ret.a_only_pcs.begin(), ret.a_only_pcs.end());
Expand All @@ -160,8 +159,8 @@ CoverageResults GetCoverage(const std::vector<CorpusRecord> &corpus_records,
}
}
CoverageResults ret = {
.pcs = {pcs.begin(), pcs.end()},
.binary_info = std::move(binary_info),
/*pcs=*/{pcs.begin(), pcs.end()},
/*binary_info=*/std::move(binary_info),
};
// Sort PCs to put them in the canonical order, as in pc_table.
std::sort(ret.pcs.begin(), ret.pcs.end());
Expand Down
12 changes: 8 additions & 4 deletions centipede/batch_fuzz_example/customized_centipede_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ std::string GetTargetPath() {

TEST(BatchFuzzWithExecutionResults, SucceedsToCollectCoverageForTwoInputs) {
const std::string target_path = GetTargetPath();
Environment env = {.binary = target_path};
Environment env;
env.binary = target_path;
CustomizedCallbacks callbacks(env, /*feature_only_feedback=*/false);

BatchResult batch_result;
Expand All @@ -70,7 +71,8 @@ TEST(BatchFuzzWithExecutionResults, SucceedsToCollectCoverageForTwoInputs) {

TEST(BatchFuzzWithExecutionResults, CollectsTheSameCoverageForSameInputs) {
const std::string target_path = GetTargetPath();
const Environment env = {.binary = GetTargetPath()};
Environment env;
env.binary = target_path;
CustomizedCallbacks callbacks(env, /*feature_only_feedback=*/false);

BatchResult batch_result;
Expand All @@ -95,7 +97,8 @@ MATCHER_P(HasFeaturesOnly, features_matcher, "") {

TEST(BatchFuzzWithCoverageData, SucceedsToCollectCoverageForTwoInputs) {
const std::string target_path = GetTargetPath();
const Environment env = {.binary = GetTargetPath()};
Environment env;
env.binary = target_path;
CustomizedCallbacks callbacks(env, /*feature_only_feedback=*/true);

BatchResult batch_result;
Expand All @@ -107,7 +110,8 @@ TEST(BatchFuzzWithCoverageData, SucceedsToCollectCoverageForTwoInputs) {

TEST(BatchFuzzWithCoverageData, CollectsTheSameCoverageForSameInputs) {
const std::string target_path = GetTargetPath();
const Environment env = {.binary = target_path};
Environment env;
env.binary = target_path;
CustomizedCallbacks callbacks(env, /*feature_only_feedback=*/true);

BatchResult batch_result;
Expand Down
18 changes: 11 additions & 7 deletions centipede/binary_info_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ namespace {
TEST(BinaryInfoTest, SerializesAndDeserializesBinaryInfoSuccessfully) {
const std::string temp_dir = GetTestTempDir(test_info_->name());

const PCTable input_pcs = {{.pc = 0, .flags = 1}, {.pc = 2, .flags = 3}};
const PCTable input_pcs = {{/*pc=*/0,
/*flags=*/1},
{/*pc=*/2, /*flags=*/3}};
std::string input_symbols =
R"(FunctionOne
source/location/one.cc:1:0
Expand All @@ -43,9 +45,10 @@ TEST(BinaryInfoTest, SerializesAndDeserializesBinaryInfoSuccessfully) {
std::istringstream input_stream(input_symbols);
SymbolTable symbol_table;
symbol_table.ReadFromLLVMSymbolizer(input_stream);
BinaryInfo input = {.pc_table = input_pcs,
.symbols = std::move(symbol_table),
.cf_table = cf_table};
BinaryInfo input;
input.pc_table = input_pcs;
input.symbols = std::move(symbol_table);
input.cf_table = cf_table;
input.Write(temp_dir);
BinaryInfo output;
output.Read(temp_dir);
Expand All @@ -64,9 +67,10 @@ TEST(BinaryInfoTest, SerializesAndDeserializesEmptyBinaryInfoSuccessfully) {
std::istringstream input_stream(input_symbols);
SymbolTable symbol_table;
symbol_table.ReadFromLLVMSymbolizer(input_stream);
BinaryInfo input = {.pc_table = input_pcs,
.symbols = std::move(symbol_table),
.cf_table = cf_table};
BinaryInfo input;
input.pc_table = input_pcs;
input.symbols = std::move(symbol_table);
input.cf_table = cf_table;
input.Write(temp_dir);
BinaryInfo output;
output.Read(temp_dir);
Expand Down
36 changes: 18 additions & 18 deletions centipede/byte_array_mutator_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,23 +106,23 @@ TEST(DictEntry, DictEntry) {

TEST(CmpDictionary, CmpDictionary) {
CmpDictionary dict;
ExecutionMetadata metadata{.cmp_data = {
2, // size
1, 2, // a
3, 4, // b
3, // size
5, 6, 7, // a
8, 9, 10, // b
4, // size
11, 12, 13, 14, // a
15, 16, 17, 18, // b
3, // size
20, 21, 22, // a
15, 16, 17, // b
3, // size
15, 16, 20, // a
30, 40, 50, // b
}};
ExecutionMetadata metadata{/*cmp_data=*/{
2, // size
1, 2, // a
3, 4, // b
3, // size
5, 6, 7, // a
8, 9, 10, // b
4, // size
11, 12, 13, 14, // a
15, 16, 17, 18, // b
3, // size
20, 21, 22, // a
15, 16, 17, // b
3, // size
15, 16, 20, // a
30, 40, 50, // b
}};
EXPECT_TRUE(dict.SetFromMetadata(metadata));

using S = ByteSpan;
Expand Down Expand Up @@ -206,7 +206,7 @@ void TestMutatorFn(ByteArrayMutator::Fn fn, const ByteArray &seed,
EXPECT_TRUE(mutator.set_size_alignment(size_alignment));
EXPECT_TRUE(mutator.set_max_len(max_len));
mutator.AddToDictionary(dictionary);
mutator.SetMetadata({.cmp_data = {cmp_data.begin(), cmp_data.end()}});
mutator.SetMetadata({/*cmp_data=*/{cmp_data.begin(), cmp_data.end()}});
absl::flat_hash_set<ByteArray> expected(expected_mutants.begin(),
expected_mutants.end());
absl::flat_hash_set<ByteArray> unexpected(unexpected_mutants.begin(),
Expand Down
83 changes: 42 additions & 41 deletions centipede/centipede.cc
Original file line number Diff line number Diff line change
Expand Up @@ -221,57 +221,58 @@ void Centipede::UpdateAndMaybeLogStats(std::string_view log_type,

stats_.store(Stats{
StatsMeta{
.timestamp_unix_micros =
static_cast<uint64_t>(absl::ToUnixMicros(absl::Now())),
/*timestamp_unix_micros=*/
static_cast<uint64_t>(absl::ToUnixMicros(absl::Now())),
},
ExecStats{
.fuzz_time_sec = static_cast<uint64_t>(std::ceil(fuzz_time_secs)),
.num_executions = num_runs_,
.num_target_crashes = static_cast<uint64_t>(num_crashes_),
/*fuzz_time_sec=*/static_cast<uint64_t>(std::ceil(fuzz_time_secs)),
/*num_executions*/ num_runs_,
/*num_target_crashes*/ static_cast<uint64_t>(num_crashes_),
},
CovStats{
.num_covered_pcs = fs_.CountFeatures(fd::kPCs),
.num_8bit_counter_features = fs_.CountFeatures(fd::k8bitCounters),
.num_data_flow_features = fs_.CountFeatures(fd::kDataFlow),
.num_cmp_features = fs_.CountFeatures(fd::kCMPDomains),
.num_call_stack_features = fs_.CountFeatures(fd::kCallStack),
.num_bounded_path_features = fs_.CountFeatures(fd::kBoundedPath),
.num_pc_pair_features = fs_.CountFeatures(fd::kPCPair),
.num_user_features = fs_.CountFeatures(fd::kUserDomains),
.num_user0_features = fs_.CountFeatures(fd::kUserDomains[0]),
.num_user1_features = fs_.CountFeatures(fd::kUserDomains[1]),
.num_user2_features = fs_.CountFeatures(fd::kUserDomains[2]),
.num_user3_features = fs_.CountFeatures(fd::kUserDomains[3]),
.num_user4_features = fs_.CountFeatures(fd::kUserDomains[4]),
.num_user5_features = fs_.CountFeatures(fd::kUserDomains[5]),
.num_user6_features = fs_.CountFeatures(fd::kUserDomains[6]),
.num_user7_features = fs_.CountFeatures(fd::kUserDomains[7]),
.num_user8_features = fs_.CountFeatures(fd::kUserDomains[8]),
.num_user9_features = fs_.CountFeatures(fd::kUserDomains[9]),
.num_user10_features = fs_.CountFeatures(fd::kUserDomains[10]),
.num_user11_features = fs_.CountFeatures(fd::kUserDomains[11]),
.num_user12_features = fs_.CountFeatures(fd::kUserDomains[12]),
.num_user13_features = fs_.CountFeatures(fd::kUserDomains[13]),
.num_user14_features = fs_.CountFeatures(fd::kUserDomains[14]),
.num_user15_features = fs_.CountFeatures(fd::kUserDomains[15]),
.num_unknown_features = fs_.CountFeatures(fd::kUnknown),
.num_funcs_in_frontier = coverage_frontier_.NumFunctionsInFrontier(),
/*num_covered_pcs=*/fs_.CountFeatures(fd::kPCs),
/*num_8bit_counter_features=*/fs_.CountFeatures(fd::k8bitCounters),
/*num_data_flow_features=*/fs_.CountFeatures(fd::kDataFlow),
/*num_cmp_features=*/fs_.CountFeatures(fd::kCMPDomains),
/*num_call_stack_features=*/fs_.CountFeatures(fd::kCallStack),
/*num_bounded_path_features=*/fs_.CountFeatures(fd::kBoundedPath),
/*num_pc_pair_features=*/fs_.CountFeatures(fd::kPCPair),
/*num_user_features=*/fs_.CountFeatures(fd::kUserDomains),
/*num_user0_features=*/fs_.CountFeatures(fd::kUserDomains[0]),
/*num_user1_features=*/fs_.CountFeatures(fd::kUserDomains[1]),
/*num_user2_features=*/fs_.CountFeatures(fd::kUserDomains[2]),
/*num_user3_features=*/fs_.CountFeatures(fd::kUserDomains[3]),
/*num_user4_features=*/fs_.CountFeatures(fd::kUserDomains[4]),
/*num_user5_features=*/fs_.CountFeatures(fd::kUserDomains[5]),
/*num_user6_features=*/fs_.CountFeatures(fd::kUserDomains[6]),
/*num_user7_features=*/fs_.CountFeatures(fd::kUserDomains[7]),
/*num_user8_features=*/fs_.CountFeatures(fd::kUserDomains[8]),
/*num_user9_features=*/fs_.CountFeatures(fd::kUserDomains[9]),
/*num_user10_features=*/fs_.CountFeatures(fd::kUserDomains[10]),
/*num_user11_features=*/fs_.CountFeatures(fd::kUserDomains[11]),
/*num_user12_features=*/fs_.CountFeatures(fd::kUserDomains[12]),
/*num_user13_features=*/fs_.CountFeatures(fd::kUserDomains[13]),
/*num_user14_features=*/fs_.CountFeatures(fd::kUserDomains[14]),
/*num_user15_features=*/fs_.CountFeatures(fd::kUserDomains[15]),
/*num_unknown_features=*/fs_.CountFeatures(fd::kUnknown),
/*num_funcs_in_frontier=*/coverage_frontier_.NumFunctionsInFrontier(),
},
CorpusStats{
.active_corpus_size = corpus_.NumActive(),
.total_corpus_size = corpus_.NumTotal(),
.max_corpus_element_size = max_corpus_size,
.avg_corpus_element_size = avg_corpus_size,
/*active_corpus_size=*/corpus_.NumActive(),
/*total_corpus_size=*/corpus_.NumTotal(),
/*max_corpus_element_size=*/max_corpus_size,
/*avg_corpus_element_size=*/avg_corpus_size,
},
RusageStats{
.engine_rusage_avg_millicores = static_cast<uint64_t>(
/*engine_rusage_avg_millicores=*/static_cast<uint64_t>(
std::lround(rusage_timing.cpu_hyper_cores * 1000)),
.engine_rusage_cpu_percent = static_cast<uint64_t>(
/*engine_rusage_cpu_percent=*/
static_cast<uint64_t>(
std::lround(rusage_timing.cpu_utilization * 100)),
.engine_rusage_rss_mb =
static_cast<uint64_t>(rusage_memory.mem_rss >> 20),
.engine_rusage_vsize_mb =
static_cast<uint64_t>(rusage_memory.mem_vsize >> 20),
/*engine_rusage_rss_mb=*/
static_cast<uint64_t>(rusage_memory.mem_rss >> 20),
/*engine_rusage_vsize_mb=*/
static_cast<uint64_t>(rusage_memory.mem_vsize >> 20),
},
});

Expand Down
16 changes: 8 additions & 8 deletions centipede/centipede_interface.cc
Original file line number Diff line number Diff line change
Expand Up @@ -209,21 +209,21 @@ int Fuzz(const Environment &env, const BinaryInfo &binary_info,
csv_appender.ReportCurrStats();
},
PeriodicAction::Options{
.sleep_before_each =
[](size_t iteration) {
return absl::Minutes(std::clamp(iteration, 0UL, 10UL));
},
/*sleep_before_each=*/
[](size_t iteration) {
return absl::Minutes(std::clamp(iteration, 0UL, 10UL));
},
});
if (!envs.front().experiment.empty() || ABSL_VLOG_IS_ON(1)) {
stats_reporters.emplace_back(
[logger = StatsLogger{stats_vec, envs}]() mutable {
logger.ReportCurrStats();
},
PeriodicAction::Options{
.sleep_before_each =
[](size_t iteration) {
return absl::Seconds(std::clamp(iteration, 5UL, 600UL));
},
/*sleep_before_each=*/
[](size_t iteration) {
return absl::Seconds(std::clamp(iteration, 5UL, 600UL));
},
});
}

Expand Down

0 comments on commit e995ce8

Please sign in to comment.