[U-Boot] [PATCH] test/py: Set cache_dir to /tmp/.pytest_cache
swarren at wwwdotorg.org
Thu Oct 31 16:04:18 UTC 2019
On 10/31/19 8:51 AM, Tom Rini wrote:
> For some time now, pytest has supported setting where a cache directory
> that it will use is located (and in turn has logic to re-use this cache
> and speed things up when possible). When running the pytest tests on
> Azure Pipelines, our source directory is read-only and we now see a
> warning about being unable to create the .pytest_cache directory as the
> default is in the same place as pytest.ini. Set cache_dir to
> /tmp/.pytest_cache so that it will always be placed in a read/write
> Cc: Stephen Warren <swarren at nvidia.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> Looking at
> https://docs.pytest.org/en/latest/customize.html#confval-cache_dir we
> could use an environment variable but TMP/TMPDIR/etc aren't always going
> to be set and that in turn leads to test/py/$TMPDIR/.pytest_cache being
> used. I think hard-coding to /tmp here ends up being less problematic
> but I am open to suggestions. We could even just ignore the warning, I
> only spotted it when seeing why a test had otherwise failed.
> test/py/pytest.ini | 1 +
> 1 file changed, 1 insertion(+)
> diff --git a/test/py/pytest.ini b/test/py/pytest.ini
> index e93d010f1fa2..56c1f0521a54 100644
> --- a/test/py/pytest.ini
> +++ b/test/py/pytest.ini
> @@ -11,3 +11,4 @@ markers =
> notbuildconfigspec: U-Boot: Describes required disabled Kconfig options.
> requiredtool: U-Boot: Required host tools for a test.
> slow: U-Boot: Specific test will run slowly.
> +cache_dir = /tmp/.pytest_cache
Won't this hard-coding break running parallel invocations; they'll all
try to use the same cache directory and conflict with each-other?
Various test/py tests create data files (e.g. disk images, files for DFU
to download/upload, etc.). That directory must be writable. Can we tell
pytest to use (a sub-directory of that) directory as the cache?
More information about the U-Boot