diff --git a/tests/src/Core/Lock/SemaphoreLockTest.php b/tests/src/Core/Lock/SemaphoreLockTest.php index dd696d4aef..a2291b2c24 100644 --- a/tests/src/Core/Lock/SemaphoreLockTest.php +++ b/tests/src/Core/Lock/SemaphoreLockTest.php @@ -22,7 +22,7 @@ class SemaphoreLockTest extends LockTest $configMock ->shouldReceive('get') ->with('system', 'temppath', NULL, false) - ->andReturn('/tmp'); + ->andReturn('/tmp/'); $dice->shouldReceive('create')->with(Configuration::class)->andReturn($configMock); // @todo Because "get_temppath()" is using static methods, we have to initialize the BaseObject @@ -43,11 +43,13 @@ class SemaphoreLockTest extends LockTest } /** - * Test if semaphore locking works even for + * Test if semaphore locking works even when trying to release locks, where the file exists + * but it shouldn't harm locking */ public function testMissingFileNotOverriding() { $file = get_temppath() . '/test.sem'; + touch($file); $this->assertTrue(file_exists($file)); $this->assertFalse($this->instance->releaseLock('test', false)); @@ -64,9 +66,24 @@ class SemaphoreLockTest extends LockTest public function testMissingFileOverriding() { $file = get_temppath() . '/test.sem'; + touch($file); $this->assertTrue(file_exists($file)); $this->assertFalse($this->instance->releaseLock('test', true)); $this->assertTrue(file_exists($file)); } + + /** + * Test acquire lock even the semaphore file exists, but isn't used + */ + public function testOverrideSemFile() + { + $file = get_temppath() . '/test.sem'; + touch($file); + + $this->assertTrue(file_exists($file)); + $this->assertTrue($this->instance->acquireLock('test')); + $this->assertTrue($this->instance->isLocked('test')); + $this->assertTrue($this->instance->releaseLock('test')); + } }