final class PhpVersionManifestTest extends TestCase (View source)

Pins the rule that tests/cache/php-versions.json only ever moves forward.

check-and-update-php-versions.php used to assign the fetched patch unconditionally and then compare, so a fetch that came back older overwrote the manifest with the older patch while printing the newer one labelled "(up to date)". The next regeneration then built from a different PHP patch than the committed cache came from.

Methods

void
testItAdvancesToANewerPatch()

No description

void
testItKeepsTheRecordedPatchWhenTheFetchedOneIsOlder()

The case the bug produced: Docker Hub rebuilds 8.4.22-*, its last_updated jumps above 8.4.23-alpine's, and 8.4.23-alpine falls out of the paged tag window — so the fetch legitimately returns a patch below the recorded one.

void
testItComparesNumericallyRatherThanLexicographically()

Double-digit patches are where a string comparison diverges from a version comparison, and the tracked lines have long since passed patch 9.

Details

void testItRecordsTheFetchedPatchOnTheFirstRun()

No description

Return Value

void

void testItAdvancesToANewerPatch()

No description

Return Value

void

void testItKeepsTheRecordedPatchWhenTheFetchedOneIsOlder()

The case the bug produced: Docker Hub rebuilds 8.4.22-*, its last_updated jumps above 8.4.23-alpine's, and 8.4.23-alpine falls out of the paged tag window — so the fetch legitimately returns a patch below the recorded one.

Return Value

void

void testItIsAStableNoOpWhenNothingChanged()

No description

Return Value

void

void testItComparesNumericallyRatherThanLexicographically()

Double-digit patches are where a string comparison diverges from a version comparison, and the tracked lines have long since passed patch 9.

Return Value

void