Skip to content

Commit 8902dcf

Browse files
committed
tests: TEMP_DIR replaced with getTempDir()
1 parent 97b4f44 commit 8902dcf

8 files changed

+38
-23
lines changed

tests/Loaders/RobotLoader.caseSensitivity.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require __DIR__ . '/../bootstrap.php';
1414

1515

1616
$loader = new RobotLoader;
17-
$loader->setTempDirectory(TEMP_DIR);
17+
$loader->setTempDirectory(getTempDir());
1818
$loader->addDirectory(__DIR__ . '/files');
1919
$loader->register();
2020

tests/Loaders/RobotLoader.emptyArrayVariadicArgument.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use Tester\Assert;
1313
require __DIR__ . '/../bootstrap.php';
1414

1515
$loader = new RobotLoader;
16-
$loader->setTempDirectory(TEMP_DIR);
16+
$loader->setTempDirectory(getTempDir());
1717

1818
Assert::noError(
1919
function () use ($loader) {

tests/Loaders/RobotLoader.phar.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use Tester\Assert;
1515
require __DIR__ . '/../bootstrap.php';
1616

1717

18-
$pharFile = TEMP_DIR . '/test.phar';
18+
$pharFile = getTempDir() . '/test.phar';
1919

2020
$phar = new Phar($pharFile);
2121
$phar['class.A.php'] = '<?php class A {}';
@@ -30,7 +30,7 @@ Phar::loadPhar($pharFile, 'test.phar');
3030

3131

3232
$loader = new RobotLoader;
33-
$loader->setTempDirectory(TEMP_DIR);
33+
$loader->setTempDirectory(getTempDir());
3434
$loader->addDirectory("phar://$pharFile/sub");
3535
$loader->addDirectory("PHAR://$pharFile/class.B.php");
3636
$loader->addDirectory('phar://test.phar/class.C.php');
@@ -43,15 +43,15 @@ Assert::true(class_exists('D'));
4343

4444

4545
$loader = new RobotLoader;
46-
$loader->setTempDirectory(TEMP_DIR);
46+
$loader->setTempDirectory(getTempDir());
4747
$loader->addDirectory("phar://$pharFile/non-dir");
4848
Assert::exception(function () use ($loader, $pharFile) {
4949
$loader->register();
5050
}, Nette\IOException::class, "File or directory 'phar://$pharFile/non-dir' not found.");
5151

5252

5353
$loader = new RobotLoader;
54-
$loader->setTempDirectory(TEMP_DIR);
54+
$loader->setTempDirectory(getTempDir());
5555
$loader->addDirectory("phar://$pharFile/non-file.php");
5656
Assert::exception(function () use ($loader, $pharFile) {
5757
$loader->register();

tests/Loaders/RobotLoader.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require __DIR__ . '/../bootstrap.php';
1414

1515

1616
$loader = new RobotLoader;
17-
$loader->setTempDirectory(TEMP_DIR);
17+
$loader->setTempDirectory(getTempDir());
1818
$loader->addDirectory(__DIR__ . '/files');
1919
$loader->addDirectory(__DIR__ . '/files/'); // purposely doubled
2020
$loader->addDirectory(__DIR__ . '/file/interface.php'); // as file

tests/Loaders/RobotLoader.rebuild.phpt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,26 @@ use Tester\Assert;
1313
require __DIR__ . '/../bootstrap.php';
1414

1515

16-
file_put_contents(TEMP_DIR . '/file1.php', '<?php class A {}');
17-
file_put_contents(TEMP_DIR . '/file2.php', '<?php class B {}');
16+
file_put_contents(getTempDir() . '/file1.php', '<?php class A {}');
17+
file_put_contents(getTempDir() . '/file2.php', '<?php class B {}');
1818

1919
$loader = new RobotLoader;
20-
$loader->setTempDirectory(TEMP_DIR);
21-
$loader->addDirectory(TEMP_DIR);
20+
$loader->setTempDirectory(getTempDir());
21+
$loader->addDirectory(getTempDir());
2222
$loader->register(); // rebuilds cache
2323

24-
rename(TEMP_DIR . '/file1.php', TEMP_DIR . '/file3.php');
24+
rename(getTempDir() . '/file1.php', getTempDir() . '/file3.php');
2525

2626
Assert::false(class_exists('A'));
2727

2828

2929
$loader2 = new RobotLoader;
30-
$loader2->setTempDirectory(TEMP_DIR);
31-
$loader2->addDirectory(TEMP_DIR);
30+
$loader2->setTempDirectory(getTempDir());
31+
$loader2->addDirectory(getTempDir());
3232
$loader2->register();
3333

3434
Assert::true(class_exists('A'));
3535

36-
rename(TEMP_DIR . '/file2.php', TEMP_DIR . '/file4.php');
36+
rename(getTempDir() . '/file2.php', getTempDir() . '/file4.php');
3737

3838
Assert::false(class_exists('B'));

tests/Loaders/RobotLoader.relative.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ require __DIR__ . '/../bootstrap.php';
1414

1515

1616
$loader = new RobotLoader;
17-
$loader->setTempDirectory(TEMP_DIR);
17+
$loader->setTempDirectory(getTempDir());
1818
$loader->addDirectory(__DIR__ . '/../Loaders/files');
1919
$loader->excludeDirectory(__DIR__ . '/../Loaders/files/exclude');
2020
$loader->excludeDirectory(__DIR__ . '/../Loaders/files/exclude2/excluded.php');

tests/Loaders/RobotLoader.renamed.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ require __DIR__ . '/../bootstrap.php';
1414

1515

1616
$loader = new RobotLoader;
17-
$loader->setTempDirectory(TEMP_DIR);
18-
$loader->addDirectory(TEMP_DIR);
17+
$loader->setTempDirectory(getTempDir());
18+
$loader->addDirectory(getTempDir());
1919

20-
$dir = TEMP_DIR . DIRECTORY_SEPARATOR;
20+
$dir = getTempDir() . DIRECTORY_SEPARATOR;
2121
file_put_contents($dir . 'file1.php', '<?php class A {}');
2222
file_put_contents($dir . 'file2.php', '<?php class B {}');
2323

tests/bootstrap.php

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,22 @@
1616
date_default_timezone_set('Europe/Prague');
1717

1818

19-
// create temporary directory
20-
define('TEMP_DIR', __DIR__ . '/tmp/' . lcg_value());
21-
@mkdir(dirname(TEMP_DIR));
22-
@mkdir(TEMP_DIR);
19+
function getTempDir(): string
20+
{
21+
$dir = __DIR__ . '/tmp/' . getmypid();
22+
23+
if (empty($GLOBALS['\\lock'])) {
24+
// garbage collector
25+
$GLOBALS['\\lock'] = $lock = fopen(__DIR__ . '/lock', 'w');
26+
if (rand(0, 100)) {
27+
flock($lock, LOCK_SH);
28+
@mkdir(dirname($dir));
29+
} elseif (flock($lock, LOCK_EX)) {
30+
Tester\Helpers::purge(dirname($dir));
31+
}
32+
33+
@mkdir($dir);
34+
}
35+
36+
return $dir;
37+
}

0 commit comments

Comments
 (0)