Skip to content

Commit 4aa85e6

Browse files
committed
Sort scenarios for deterministic output
1 parent 4c768ea commit 4aa85e6

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

collector/src/compile/benchmark/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ impl Benchmark {
277277

278278
struct BenchmarkDir {
279279
dir: TempDir,
280-
scenarios: HashSet<Scenario>,
280+
scenarios: Vec<Scenario>,
281281
profile: Profile,
282282
backend: CodegenBackend,
283283
target: Target,
@@ -291,7 +291,7 @@ impl Benchmark {
291291
for profile in &profiles {
292292
for target in targets {
293293
// Do we have any scenarios left to compute?
294-
let remaining_scenarios = scenarios
294+
let mut remaining_scenarios = scenarios
295295
.iter()
296296
.flat_map(|scenario| {
297297
self.create_test_cases(scenario, profile, backend, target)
@@ -300,10 +300,13 @@ impl Benchmark {
300300
})
301301
.filter(|(_, test_case)| !already_computed.contains(test_case))
302302
.map(|(scenario, _)| scenario)
303-
.collect::<HashSet<Scenario>>();
303+
.collect::<HashSet<Scenario>>()
304+
.into_iter()
305+
.collect::<Vec<Scenario>>();
304306
if remaining_scenarios.is_empty() {
305307
continue;
306308
}
309+
remaining_scenarios.sort();
307310

308311
let temp_dir = self.make_temp_dir(&self.path)?;
309312
benchmark_dirs.push(BenchmarkDir {

collector/src/compile/benchmark/scenario.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, clap::ValueEnum, serde::Deserialize)]
1+
#[derive(
2+
Clone, Copy, Debug, Eq, Hash, PartialEq, PartialOrd, Ord, clap::ValueEnum, serde::Deserialize,
3+
)]
24
#[value(rename_all = "PascalCase")]
35
pub enum Scenario {
46
Full,

0 commit comments

Comments
 (0)