Touch soong_build output at the end of main
This fixes an incrementality bug that resulted in superfluous
build.ninja regeneration after a new glob definition is added.
Fixes: 279674820
Test: Treehugger
Test; New integration test in this CL
Change-Id: Ifefe66a0eb1c125e9ad5373d60437a1cb1e6fdec
diff --git a/tests/bootstrap_test.sh b/tests/bootstrap_test.sh
index fda5ca0..5935247 100755
--- a/tests/bootstrap_test.sh
+++ b/tests/bootstrap_test.sh
@@ -885,4 +885,37 @@
fi
}
+# This test verifies that adding a new glob to a blueprint file only
+# causes build.ninja to be regenerated on the *next* build, and *not*
+# the build after. (This is a regression test for a bug where globs
+# resulted in two successive regenerations.)
+function test_new_glob_incrementality {
+ setup
+
+ run_soong nothing
+ local -r mtime1=$(stat -c "%y" out/soong/build.ninja)
+
+ mkdir -p globdefpkg/
+ cat > globdefpkg/Android.bp <<'EOF'
+filegroup {
+ name: "fg_with_glob",
+ srcs: ["*.txt"],
+}
+EOF
+
+ run_soong nothing
+ local -r mtime2=$(stat -c "%y" out/soong/build.ninja)
+
+ if [[ "$mtime1" == "$mtime2" ]]; then
+ fail "Ninja file was not regenerated, despite a new bp file"
+ fi
+
+ run_soong nothing
+ local -r mtime3=$(stat -c "%y" out/soong/build.ninja)
+
+ if [[ "$mtime2" != "$mtime3" ]]; then
+ fail "Ninja file was regenerated despite no previous bp changes"
+ fi
+}
+
scan_and_run_tests