Fix bug that all full clean targets are cleaned.
Only the first target should be cleaned or later incremental build is not incremental.
--
PiperOrigin-RevId: 150096210
MOS_MIGRATED_REVID=150096210
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
index 82d4d3b..aedd764 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BuildGroupRunner.java
@@ -112,6 +112,11 @@
}
lastIsIncremental = envConfig.getIncremental();
+ // Builder's clean method, only clean before the first target
+ if (targetIndex == 0 && envConfig.getCleanBeforeBuild()) {
+ builder.clean();
+ }
+
if (removeFirstResult) {
buildTargetAndGetElapsedTime(buildBinary, envConfig, targetConfig);
}
@@ -129,11 +134,6 @@
private double buildTargetAndGetElapsedTime(
Path buildBinary, BuildEnvConfig envConfig, BuildTargetConfig targetConfig)
throws CommandException {
- // Builder's clean method
- if (envConfig.getCleanBeforeBuild()) {
- builder.clean();
- }
-
// Run build
double elapsedTime =
builder.buildAndGetElapsedTime(