@@ -48,15 +48,21 @@ struct StatsMeta {
48
48
49
49
// NOTE: Ordering in general won't be applicable to metadata, so define
50
50
// equality only.
51
- friend bool operator ==(const StatsMeta &, const StatsMeta &) = default ;
51
+ friend bool operator ==(const StatsMeta &lhs, const StatsMeta &rhs) {
52
+ return lhs.timestamp_unix_micros == rhs.timestamp_unix_micros ;
53
+ }
52
54
};
53
55
54
56
struct ExecStats {
55
57
uint64_t fuzz_time_sec = 0 ;
56
58
uint64_t num_executions = 0 ;
57
59
uint64_t num_target_crashes = 0 ;
58
60
59
- friend bool operator ==(const ExecStats &, const ExecStats &) = default ;
61
+ friend bool operator ==(const ExecStats &lhs, const ExecStats &rhs) {
62
+ return lhs.fuzz_time_sec == rhs.fuzz_time_sec &&
63
+ lhs.num_executions == rhs.num_executions &&
64
+ lhs.num_target_crashes == rhs.num_target_crashes ;
65
+ }
60
66
};
61
67
62
68
struct CovStats {
@@ -87,7 +93,34 @@ struct CovStats {
87
93
uint64_t num_unknown_features = 0 ;
88
94
uint64_t num_funcs_in_frontier = 0 ;
89
95
90
- friend bool operator ==(const CovStats &, const CovStats &) = default ;
96
+ friend bool operator ==(const CovStats &lhs, const CovStats &rhs) {
97
+ return lhs.num_covered_pcs == rhs.num_covered_pcs &&
98
+ lhs.num_8bit_counter_features == rhs.num_8bit_counter_features &&
99
+ lhs.num_data_flow_features == rhs.num_data_flow_features &&
100
+ lhs.num_cmp_features == rhs.num_cmp_features &&
101
+ lhs.num_call_stack_features == rhs.num_call_stack_features &&
102
+ lhs.num_bounded_path_features == rhs.num_bounded_path_features &&
103
+ lhs.num_pc_pair_features == rhs.num_pc_pair_features &&
104
+ lhs.num_user_features == rhs.num_user_features &&
105
+ lhs.num_user0_features == rhs.num_user0_features &&
106
+ lhs.num_user1_features == rhs.num_user1_features &&
107
+ lhs.num_user2_features == rhs.num_user2_features &&
108
+ lhs.num_user3_features == rhs.num_user3_features &&
109
+ lhs.num_user4_features == rhs.num_user4_features &&
110
+ lhs.num_user5_features == rhs.num_user5_features &&
111
+ lhs.num_user6_features == rhs.num_user6_features &&
112
+ lhs.num_user7_features == rhs.num_user7_features &&
113
+ lhs.num_user8_features == rhs.num_user8_features &&
114
+ lhs.num_user9_features == rhs.num_user9_features &&
115
+ lhs.num_user10_features == rhs.num_user10_features &&
116
+ lhs.num_user11_features == rhs.num_user11_features &&
117
+ lhs.num_user12_features == rhs.num_user12_features &&
118
+ lhs.num_user13_features == rhs.num_user13_features &&
119
+ lhs.num_user14_features == rhs.num_user14_features &&
120
+ lhs.num_user15_features == rhs.num_user15_features &&
121
+ lhs.num_unknown_features == rhs.num_unknown_features &&
122
+ lhs.num_funcs_in_frontier == rhs.num_funcs_in_frontier ;
123
+ }
91
124
};
92
125
93
126
struct CorpusStats {
@@ -96,7 +129,12 @@ struct CorpusStats {
96
129
uint64_t max_corpus_element_size = 0 ;
97
130
uint64_t avg_corpus_element_size = 0 ;
98
131
99
- friend bool operator ==(const CorpusStats &, const CorpusStats &) = default ;
132
+ friend bool operator ==(const CorpusStats &lhs, const CorpusStats &rhs) {
133
+ return lhs.active_corpus_size == rhs.active_corpus_size &&
134
+ lhs.total_corpus_size == rhs.total_corpus_size &&
135
+ lhs.max_corpus_element_size == rhs.max_corpus_element_size &&
136
+ lhs.avg_corpus_element_size == rhs.avg_corpus_element_size ;
137
+ }
100
138
};
101
139
102
140
struct RusageStats {
@@ -105,7 +143,13 @@ struct RusageStats {
105
143
uint64_t engine_rusage_rss_mb = 0 ;
106
144
uint64_t engine_rusage_vsize_mb = 0 ;
107
145
108
- friend bool operator ==(const RusageStats &, const RusageStats &) = default ;
146
+ friend bool operator ==(const RusageStats &lhs, const RusageStats &rhs) {
147
+ return lhs.engine_rusage_avg_millicores ==
148
+ rhs.engine_rusage_avg_millicores &&
149
+ lhs.engine_rusage_cpu_percent == rhs.engine_rusage_cpu_percent &&
150
+ lhs.engine_rusage_rss_mb == rhs.engine_rusage_rss_mb &&
151
+ lhs.engine_rusage_vsize_mb == rhs.engine_rusage_vsize_mb ;
152
+ }
109
153
};
110
154
111
155
struct Stats : StatsMeta, ExecStats, CovStats, CorpusStats, RusageStats {
0 commit comments