From b0301beee347669ffec7f4f59be32d70998b9950 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Thu, 20 Nov 2025 10:51:45 +0000 Subject: [PATCH] Fix slow SafeUpgradeServiceTest by optimizing snapshot pruning --- system/src/Grav/Common/Upgrade/SafeUpgradeService.php | 7 ++++++- tests/unit/Grav/Common/Upgrade/SafeUpgradeServiceTest.php | 3 --- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/system/src/Grav/Common/Upgrade/SafeUpgradeService.php b/system/src/Grav/Common/Upgrade/SafeUpgradeService.php index e313f2bc3..f9c7af4aa 100644 --- a/system/src/Grav/Common/Upgrade/SafeUpgradeService.php +++ b/system/src/Grav/Common/Upgrade/SafeUpgradeService.php @@ -1184,7 +1184,12 @@ class SafeUpgradeService // Sort by created_at descending usort($manifests, static function ($a, $b) { - return $b['created_at'] <=> $a['created_at']; + $result = $b['created_at'] <=> $a['created_at']; + if ($result === 0) { + return strcmp($b['path'], $a['path']); + } + + return $result; }); $toDelete = array_slice($manifests, $limit); diff --git a/tests/unit/Grav/Common/Upgrade/SafeUpgradeServiceTest.php b/tests/unit/Grav/Common/Upgrade/SafeUpgradeServiceTest.php index 8d5babc3f..4931ee6f0 100644 --- a/tests/unit/Grav/Common/Upgrade/SafeUpgradeServiceTest.php +++ b/tests/unit/Grav/Common/Upgrade/SafeUpgradeServiceTest.php @@ -128,9 +128,6 @@ class SafeUpgradeServiceTest extends \Codeception\TestCase\Test $manifests[] = $service->promote($package, '1.8.' . $i, ['backup', 'cache', 'images', 'logs', 'tmp', 'user']); // Ensure subsequent promotions have a marker to restore. file_put_contents($root . '/ORIGINAL', 'state-' . $i); - // Sleep to ensure different timestamps for sorting (time() has 1s resolution) - sleep(1); - usleep(100000); // +100ms to be sure } $files = glob($manifestStore . '/*.json');