tree 8661da9633432fc63fbe88abb73b11803f16dd8c
parent 9a739a4fd38f9da8bd3e3141fc4782bb2706bb4f
author Fabian Meumertzheim <fabian@meumertzhe.im> 1786554904 +0200
committer GitHub <noreply@github.com> 1786554904 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqfKoYCRC1aQ7uu5UhlAAAG80QAHO3+sdD3Eh351ZTUYzm/Cwq
 Uz+fAvu+wcfDepBOHkcycFbFEPIm1czb8OBDzq9GVmgz5V+z8F3WHLLUbk3a5BrE
 YRph+bjujUUekh5P4F057GcgrR+46gKbw1CjZzYGjU4U/Or69OsxSgVd73gvEzu6
 AvNmHbhPrLBP0DaBaPNYipQFd3DO+cg7F2LPjK515BaZp2gC3M/Uuueyrax3U9Gt
 UaSgg6gGF41oxDtobX1AOauiKJ6EeslXbyWYcE7WG6++H510Rta6b8ezymYbmHkN
 fkHIe58ZRDS4NpJeicWtjmndmfJ9Kbrnx7OEBkQqv0nNu1VyGI8VAbCC3ELHrj+V
 DKcNngcMQQ+Sk2RHJXC9TVqlViZOOHwAggGMF8ZpiCwmnjWMziuToWNN3BPG1L8i
 Q43cwoFoHfwPa1aPCB/GxcFnklnkVKhwY281VWUt23mgeWZmZaGeOwVqdYHqq3x6
 br9Byrj5jWL3oqgOEzXtpjYxxsBZH0jbqG1zAR6BU3m6l9v9sLNTKoRQeFfRurfz
 shSk9ujHJNJ9c0Vv6Cs3oNBZJdUg5fesrIAOSrPHqgolh54VXnycHn5ioAGxNUpX
 H5cu0HrSKIbWDxAw5EkvFgqjp78zjskIvO6NcChUsko7lvd0k/0+UFB7GNGmdVDM
 OXzUuhdDBPfV4r/XJ4i8
 =T5DT
 -----END PGP SIGNATURE-----
 

Prefer the runfiles manifest over the runfiles directory (#68)

`runfiles_rlocation_checked` looked up a path in the runfiles directory
before consulting the manifest. Whether the runfiles directory is
populated is a property of how the action or test is executed and is not
known at analysis time, so the directory may exist while holding the
stale contents of a previous execution. Consult the manifest first and
only fall back to the runfiles directory if no manifest exists.

This also fixes `runfiles_current_repository` on Windows with
`--enable_runfiles`. That mode is the only one in which both
`RUNFILES_DIR` and `RUNFILES_MANIFEST_FILE` are set: Windows does not
sandbox, so the runfiles tree used at runtime contains the `MANIFEST`
file that `runfiles_export_envvars` promotes to
`RUNFILES_MANIFEST_FILE`. `rlocation` then returned a path inside the
runfiles tree, but the manifest maps rlocation paths to the locations of
the original files, so the caller could never be the target of a
manifest entry and `runfiles_current_repository` reported every caller
as belonging to the main repository. With the manifest taking
precedence, callers are manifest targets again and the lookup succeeds.

`runfiles_current_repository` had no test coverage at all, which is why
this went unnoticed. Cover all three combinations of the two envvars:
directory only, manifest only, and both set at the same time. The last
case also asserts that a stale copy in the runfiles directory is never
preferred over the manifest.

Future work (https://github.com/bazelbuild/bazel/pull/30674) will allow
the directory to be used again in both functions, assuming it's
materialized.