speccpu: support build_type for SPEC commands

This commit is contained in:
2025-04-23 21:20:36 +08:00
parent 1885fedfb2
commit 41e569bfd8
3 changed files with 37 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
import copy import copy
import enum
import os import os
from collections.abc import MutableMapping from collections.abc import MutableMapping
from pathlib import Path from pathlib import Path
@@ -99,6 +100,11 @@ class SPEC:
def env(self): def env(self):
return create_spec_env(self.dir) return create_spec_env(self.dir)
class BuildType(enum.Enum):
Default = "default"
Nobuild = "nobuild"
Rebuild = "rebuild"
def mkcmd_runcpu( def mkcmd_runcpu(
self, self,
config: str, config: str,
@@ -106,6 +112,7 @@ class SPEC:
setprocgroup: bool = True, setprocgroup: bool = True,
workload: str = "ref", workload: str = "ref",
output_root: Path | None = None, output_root: Path | None = None,
build_type: BuildType = BuildType.Default,
): ):
return [ return [
"runcpu", "runcpu",
@@ -116,6 +123,8 @@ class SPEC:
config, config,
*(["--output_root", str(output_root)] if output_root else []), *(["--output_root", str(output_root)] if output_root else []),
*benchmarks, *benchmarks,
*(["--nobuild"] if build_type == self.BuildType.Nobuild else []),
*(["--rebuild"] if build_type == self.BuildType.Rebuild else []),
] ]

View File

@@ -80,6 +80,33 @@ class TestSPEC:
assert "--output_root" in cmd assert "--output_root" in cmd
assert str(output_dir) in cmd assert str(output_dir) in cmd
def test_mkcmd_runcpu_build_type_default(self):
"""Test that mkcmd_runcpu doesn't add build flags with default build type."""
spec = SPEC(Path("/path/to/spec"))
cmd = spec.mkcmd_runcpu(
"myconfig", ["benchmark1"], build_type=SPEC.BuildType.Default
)
assert "--nobuild" not in cmd
assert "--rebuild" not in cmd
def test_mkcmd_runcpu_build_type_nobuild(self):
"""Test that mkcmd_runcpu adds --nobuild flag with Nobuild build type."""
spec = SPEC(Path("/path/to/spec"))
cmd = spec.mkcmd_runcpu(
"myconfig", ["benchmark1"], build_type=SPEC.BuildType.Nobuild
)
assert "--nobuild" in cmd
assert "--rebuild" not in cmd
def test_mkcmd_runcpu_build_type_rebuild(self):
"""Test that mkcmd_runcpu adds --rebuild flag with Rebuild build type."""
spec = SPEC(Path("/path/to/spec"))
cmd = spec.mkcmd_runcpu(
"myconfig", ["benchmark1"], build_type=SPEC.BuildType.Rebuild
)
assert "--rebuild" in cmd
assert "--nobuild" not in cmd
class TestCheckBenchDir: class TestCheckBenchDir:
def test_valid_bench_dir(self, tmpdir): def test_valid_bench_dir(self, tmpdir):

View File

@@ -45,6 +45,7 @@ def x264_disable_mc_mul(
setprocgroup=True, setprocgroup=True,
workload="ref", workload="ref",
output_root=spec_outputroot, output_root=spec_outputroot,
build_type=SPEC.BuildType.Nobuild,
), ),
env=spec_env, env=spec_env,
) as process: ) as process: