android_build_soong/tests
Cole Faust 2fec4128e0 Make globs compatible with hash-based ninja semantics
Previously, globs worked by having soong_build rewrite a ninja file
that ran the globs, and then dependended on the results of that ninja
file. soong_build also pre-filled their outputs so that it wouldn't
be immediately rerun on the 2nd build.

However, the pre-filling of outputs worked for ninja, because although
it updated their timestamps, the soong ninja file was then touched
by soong_build after that, so the soong_build ninja file was newer
and ninja wouldn't rerun soong. But N2 reruns actions if their inputs'
mtimes change in any way, not just if they're newer. Similarly,
hashed-based ninja implementations could not enforce an order on
file contents, so they would have the same problem.

To fix this, lift the glob checking out of ninja and into soong_ui.
Soong_build will output a globs report file every time it's run, and
every time soong_ui is run it will check the globs file, and if any
globs change, update an input to soong_build. soong_ui is essentially
doing what was done in ninja with bpglob actions before.

Bug: 364749114
Test: m nothing, m nothing again doesn't reanalyze, create a new file under a glob directory, m nothing again reanalyzes
Change-Id: I0dbc5ec58c89b869b59cd0602b82215c4972d799
2024-09-09 17:42:49 -07:00
..
Android.bp Add run_tool_with_logging as a standalone scripts 2024-06-06 00:18:29 +00:00
androidmk_test.sh Fixes for run_integration_tests.sh 2024-03-29 19:00:20 +00:00
b_args_test.sh Add b_args_test. 2023-10-11 17:27:29 +00:00
bootstrap_test.sh Make globs compatible with hash-based ninja semantics 2024-09-09 17:42:49 -07:00
genrule_sandbox_test.py Improve genrule sandboxing script 2023-11-15 11:44:12 -08:00
lib.sh Pin TARGET_PRODUCT to aosp_arm in integration tests 2024-04-01 21:37:13 +00:00
run_integration_tests.sh Fixes for run_integration_tests.sh 2024-03-29 19:00:20 +00:00
run_tool_with_logging_test.py Fix run_tool_with_logging_test in CI 2024-07-19 17:08:31 +00:00
sbom_test.sh Switch SBOM generation of products to Soong. 2024-08-02 18:00:38 -07:00
soong_test.sh simplify m clean 2023-05-23 17:34:15 -04:00