Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reuse of file names restricts concurrent runs #77

Open
dankingtech opened this issue Nov 27, 2018 · 1 comment
Open

Reuse of file names restricts concurrent runs #77

dankingtech opened this issue Nov 27, 2018 · 1 comment

Comments

@dankingtech
Copy link
Contributor

This is more of a feature request, and may be similar to issues #1 and #6, but I feel the scope may be different then the resolutions mentioned there.

I have found that I receive errors, or have the potential for inconsistent results if I am running multiple instances concurrently, or if previous tests failed. Specifically, I am seeing that certain file names are being reused for multiple tests. Some example names include:

/tmp/waffles-300x225.jpg
/tmp/waffles.jpg
/tmp/canola.jpg
/tmp/canola-150x150.jpg

As you could suspect from the directory, on my system the temp directory is set globally to /tmp, which means that if two different users attempt to run the tests at the same time, it fails because of user permissions issues. The symptoms may not be important for most people, as they are likely using only a single user to run the tests on a given machine. However, as I have seen those files remaining after certain runs, perhaps after a failed run, I had suspected that they might cause problems if they remain until the next run for that same user.

In my environments, I am running the scripts directly on certain servers which will be hosting WordPress with the intention of having more accurate results.

If this is a problem, I would recommend adding some other information onto the file names, perhaps such as a hash value, or perhaps by adding in an ID for the run.

@danielbachhuber
Copy link
Member

Hi @dankadmin,

The WordPress unit test suite uses get_temp_dir() to generate the temp directory path. get_temp_dir() respects the WP_TEMP_DIR constant, which you could set to a unique value for each test suite:

https://github.com/WordPress/wordpress-develop/blob/45efe978fc7ed9ae865b1a80a16aef6570fca0e1/src/wp-includes/functions.php#L1913-L1917

If you wanted to submit a pull request against the documentation (or the test runner, to have it handle this for you automatically), I'd be happy to review :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants