Fassung 1.4.6: das Update schreibt mit, und die Ergebnisseite ist nachsichtig
Zwei Nachtraege zu 1.4.5, beide aus der Generalprobe. - Jeder Schritt des Archiv-Updaters geht sofort nach var/updates.log, waehrend des Laufs und nicht am Ende. Auf Umuts Hosting war die Ergebnisseite tot, und damit war auch verloren, was der Updater berichtet hatte. Genau so wurde der naechste Fehlschlag dann doch lesbar: "bin liess sich nicht beiseitelegen - der alte Stand wurde zurueckgeschoben" (ein Windows-Artefakt der Testumgebung, und zugleich der Beweis, dass der Rueckweg funktioniert). - Die Ergebnisseite versteht auch die Schreibweise bis 1.4.4. Das ist kein Nachgeben, sondern noetig: Beim Update schreibt der alte Code die Schritte in die Sitzung und der neue zeigt sie an. Eine Fassung, die nur die neue Schreibweise kennt, koennte das Update, das sie selbst einspielt, nicht berichten. Nachgestellt mit einer echten Installation aus dem Releasearchiv, die ueber die Oberflaeche aktualisiert wurde - nicht ueber die Konsole. Geprueft: 434 Tests auf PHP 8.2 und 8.4. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d295757ce0
commit
af5a2cef86
5 files changed
+51
-4
No files matched your search
@@ -219,6 +219,22 @@ final class ArchiveUpdateTest extends TestCase
|
||||
self::assertStringContainsString('herunterladen', $gescheitert['detail']);
|
||||
}
|
||||
|
||||
public function testEveryStepIsWrittenToTheLogWhileItHappens(): void
|
||||
{
|
||||
// Auf Umuts Hosting endete die Ergebnisseite mit 500, und damit war auch verloren, was
|
||||
// der Updater berichtet hatte. Eine Zeile in einer Datei überlebt das - und auf einem
|
||||
// Hosting ohne Konsole ist sie manchmal das Einzige, was von einem gescheiterten Update
|
||||
// übrig bleibt. Geschrieben wird während des Laufs, nicht am Ende: Ein Lauf, der
|
||||
// mittendrin abbricht, hat sonst nichts hinterlassen.
|
||||
$this->releases->release(self::BASE, self::API, '1.1.0', $this->archive('1.1.0'), str_repeat('a', 64));
|
||||
$this->updater()->run();
|
||||
|
||||
$protokoll = (string) file_get_contents($this->root.'/var/updates.log');
|
||||
self::assertStringContainsString('Update aus dem Archiv', $protokoll);
|
||||
self::assertStringContainsString('ok Fassung ermitteln', $protokoll);
|
||||
self::assertStringContainsString('FEHLER Prüfsumme', $protokoll, 'Gerade der gescheiterte Schritt muss dort stehen.');
|
||||
}
|
||||
|
||||
public function testTheUpdaterReplacesEveryEntryTheReleaseArchiveShips(): void
|
||||
{
|
||||
// Der Fehler, der schon einmal auf dem Hosting aufgeschlagen ist, andersherum: Kommt eine
|
||||
|
||||
Reference in new issue
Block a user