diff options
author | Roeland Jago Douma <rullzer@owncloud.com> | 2016-05-11 14:01:05 +0200 |
---|---|---|
committer | Roeland Jago Douma <rullzer@owncloud.com> | 2016-05-11 14:07:37 +0200 |
commit | 8bfa532075a1d755ed9e3031286b6f255d0abed2 (patch) | |
tree | 495f931c3af7e5d07e362287f0bec6ab1aa2e380 | |
parent | f39e163d4a6ee63444bfb6a797e12a482bd0a49f (diff) | |
download | nextcloud-server-8bfa532075a1d755ed9e3031286b6f255d0abed2.tar.gz nextcloud-server-8bfa532075a1d755ed9e3031286b6f255d0abed2.zip |
Fix test race condition
E-tag propagation replies on the mtime of the file. Order of events:
1. add file 'foo.txt' with content 'bar'
2. Set mtime to now() - 1
3. Check if etag changed.
Now this goes right often when 1 and 2 happen in the same second.
However imagine
1. add file 'foo.txt' with content 'bar' (at t=0.999)
2. Set mtime to now() - 1 (at t=1.001)
Now the mtime will be set to the same time. Thus not chaning the etag.
-rw-r--r-- | apps/files_sharing/tests/etagpropagation.php | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php index 2f3604e63cd..e7d5bb46258 100644 --- a/apps/files_sharing/tests/etagpropagation.php +++ b/apps/files_sharing/tests/etagpropagation.php @@ -192,7 +192,8 @@ class EtagPropagation extends PropagationTestCase { public function testOwnerWritesToSingleFileShare() { $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1); Filesystem::file_put_contents('/foo.txt', 'longer_bar'); - Filesystem::touch('/foo.txt', time() - 1); + $t = (int)Filesystem::filemtime('/foo.txt') - 1; + Filesystem::touch('/foo.txt', $t); $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4, self::TEST_FILES_SHARING_API_USER3]); $this->assertEtagsChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2]); |