diff --git a/ecrire/inc/nfslock.php b/ecrire/inc/nfslock.php index e66921892c08b0ad09958b20eb489798f75173eb..c238c4469ad784518d102dd38868cf1ff6be7c09 100644 --- a/ecrire/inc/nfslock.php +++ b/ecrire/inc/nfslock.php @@ -225,7 +225,7 @@ function spip_nfslock($fichier, $max_age = 0) { * @see spip_nfslock() * * @param string $fichier Chemin du fichier - * @param bool $birth Timestamp de l'heure de création du verrou + * @param int $birth Timestamp de l'heure de création du verrou * @param int $max_age Age maximum du verrou * @param bool $test Mode de test * return bool true si déverrouillé, false sinon @@ -314,7 +314,7 @@ function spip_nfsunlock($fichier, $birth, $max_age = 0, $test = false) { * @see spip_nfsunlock() about lost and stolen locks. * * @param string $fichier Chemin du fichier - * @param bool $birth Timestamp de l'heure de création du verrou + * @param int $birth Timestamp de l'heure de création du verrou * @param int $max_age Age maximum du verrou * return bool true si déverrouillé, false sinon */ diff --git a/ecrire/tests/Filesystem/FlockTest.php b/ecrire/tests/Filesystem/FlockTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8814d7a65c96e53d5e1946957629d763d6633faa --- /dev/null +++ b/ecrire/tests/Filesystem/FlockTest.php @@ -0,0 +1,29 @@ +<?php + +declare(strict_types=1); + +namespace Spip\Test\Filesystem; + +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\TestCase; + +class FlockTest extends TestCase +{ + public static function setUpBeforeClass(): void { + include_spip('inc/flock'); + } + + public function testSousRepertoire(): void { + $sous_repertoire = 'test' . md5(strval(random_int(0, mt_getrandmax()))); + $this->assertSame( + sous_repertoire(_DIR_VAR, $sous_repertoire), + _DIR_VAR . $sous_repertoire . '/' + ); + $this->assertTrue(file_exists(_DIR_VAR . $sous_repertoire)); + $this->assertTrue(is_dir(_DIR_VAR . $sous_repertoire)); + + // Nettoyage + @unlink(_DIR_VAR . $sous_repertoire . '/.ok'); + @rmdir(_DIR_VAR . $sous_repertoire); + } +} diff --git a/ecrire/tests/Filesystem/NfslockTest.php b/ecrire/tests/Filesystem/NfslockTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d34679ff2df983ebc42b3154a54ba9b37f2e6d99 --- /dev/null +++ b/ecrire/tests/Filesystem/NfslockTest.php @@ -0,0 +1,27 @@ +<?php + +declare(strict_types=1); + +namespace Spip\Test\Filesystem; + +use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\TestCase; + +class NfslockTest extends TestCase +{ + public static function setUpBeforeClass(): void { + include_spip('inc/nfslock'); + } + + public function testNfslock(): void { + $verrou = spip_nfslock('monfichier'); + $this->assertNotFalse($verrou, 'Echec: pose du verrou'); + + $this->assertTrue(spip_nfslock_test('monfichier', $verrou), 'Échec: Ne valide pas le verrou posé sur le fichier'); + $this->assertFalse(spip_nfslock_test('un autre', $verrou), 'Échec: valide le verrou sur un autre fichier'); + $this->assertTrue(spip_nfsunlock('monfichier', $verrou), 'Échec: déverrouillage du verrou sur notre fichier'); + + $this->assertFalse(spip_nfslock_test('monfichier', $verrou), 'Échec: verrou toujours présent sur notre fichier'); + $this->assertFalse(spip_nfslock_test('monfichier', 0)); + } +} diff --git a/ecrire/tests/legacy/unit/entrees_sorties/flock_sous_repertoire.php b/ecrire/tests/legacy/unit/entrees_sorties/flock_sous_repertoire.php deleted file mode 100644 index d4b5eca9f37fc65e66f5a3cd1358314a0d02c13b..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/entrees_sorties/flock_sous_repertoire.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -declare(strict_types=1); - -/** - * Tests unitaires de sous_repertoire() du fichier ecrire/inc/flock.php - */ - -$test = 'sous_repertoire'; -$remonte = __DIR__ . '/'; -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -$ok = true; - -$sous_repertoire = 'test' . md5(strval(random_int(0, mt_getrandmax()))); - -include_spip('inc/flock'); - -$ok = (sous_repertoire( - _NOM_TEMPORAIRES_ACCESSIBLES, - $sous_repertoire -) === _NOM_TEMPORAIRES_ACCESSIBLES . $sous_repertoire . '/'); - -// Nettoyage -@unlink(_NOM_TEMPORAIRES_ACCESSIBLES . $sous_repertoire . '/.ok'); -@rmdir(_NOM_TEMPORAIRES_ACCESSIBLES . $sous_repertoire); - -if ($ok) { - echo 'OK'; -} diff --git a/ecrire/tests/legacy/unit/entrees_sorties/spip_nfslock.php b/ecrire/tests/legacy/unit/entrees_sorties/spip_nfslock.php deleted file mode 100644 index 6eb74993fa19e2c3e096ebebae466c0a908a9e78..0000000000000000000000000000000000000000 --- a/ecrire/tests/legacy/unit/entrees_sorties/spip_nfslock.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -declare(strict_types=1); - -$test = 'spip_nfslock'; - -$remonte = __DIR__ . '/'; - -while (!is_file($remonte . 'test.inc')) { - $remonte .= '../'; -} - -require $remonte . 'test.inc'; - -include_spip('inc/nfslock'); - -$verrou = spip_nfslock('monfichier'); - -$verrou_ok = spip_nfslock_test('monfichier', $verrou); - -$verrou_absent = spip_nfslock_test('un autre', $verrou); - -$deverrouille = spip_nfsunlock('monfichier', $verrou); - -$birth = false; - -$verrou_absent2 = spip_nfslock_test('monfichier', $birth); - -if ($verrou && $verrou_ok && !$verrou_absent && $deverrouille && !$verrou_absent2) { - echo 'OK'; - exit; -} - -echo '<ul><li>Erreur NFSLock :'; - -echo '<ul>'; - -echo "<li>verrou sur 'monfichier':{$verrou}</li>"; - -echo "<li>test du verrou sur 'monfichier':{$verrou_ok}</li>"; - -echo "<li>test du verrou sur 'un autre':{$verrou_absent}</li>"; - -echo "<li>deverrouille 'monfichier':{$deverrouille}</li>"; - -echo "<li>test du verrou sur 'monfichier':{$verrou_absent2}</li>"; - -echo '</ul></li></ul>';