Files

7.7 KiB
Raw Permalink Blame History

Release-Grundabnahme: Fälle und Voraussetzungen

Basis: 54ee427c1c676170450068c5436e5875c84c9dce, lokale Änderungen dieses Changes. Alle folgenden Tests sind headless. Keine DOS-/GUI-Emulatoren.

Ausführbare Aufrufe

Vom Repository aus; --locked bewahrt die Abhängigkeitsrevisionen:

# K: gesamter Korpus einschließlich Vergleichs-Gegenproben
cargo test --locked -p tb-cli --test compat
# P: Projekte, Includes, TBC, Diagnosen und Dateieffekte
cargo test --locked -p tb-cli --test project
# I: Inventar, Sollquellen, Absenkungsziele und Statusgruppen
cargo test --locked -p tb-cli --test inventar -- --nocapture
# E: tatsächliche Ereignisauslöser bis BASIC
cargo test --locked -p tb-vm --test events
# A: IDE-Projektablauf, CLI-/TBC-Parität und Befehlsmatrix
cargo test --locked -p tb-cli --bin tbc ide_acceptance::
# F: Pflichtnachweis des fixierten öffentlichen Bestands
TB_VBDOS_REPO=/absoluter/pfad/zu/vbdos cargo test --locked -p tb-cli --test foreign -- --include-ignored --nocapture
# G: zusammenhängende Grundabnahme, zuerst F, dann Workspace/Inventar/Gates/Benchmarks
python3 tests/support/release-abnahme.py --vbdos-repo /absoluter/pfad/zu/vbdos

Unter Windows wird TB_VBDOS_REPO als Prozessumgebungsvariable gesetzt; G übernimmt dies plattformunabhängig. Alle Aufrufe liefern bei Fehler einen von null verschiedenen Exitcode. Die reale Windows-/Linux-Prüfung folgt in 05/06, diese Matrix behauptet nur die ausgeführten lokalen Nachweise.

Verhaltensgruppen und unabhängiges Soll

Gruppe Fälle Aufruf Soll und festgelegter Anfangszustand
Konsole/Zahlen/Steuerung hello, printzahlen, konvertierung, byref, kontrollfluss K: korpus_laeuft_mit_korrekter_ausgabe Jeweilige .out, explizite tb-screen-Größe, keine Eingaben, Hostuhr 0; bestehende Sprach-/VM-Specs
Unicode/Attribute/Größe breitezeichen, bildschirm, groesse, groessenaenderung, release-formular K COLOR/LOCATE-/Unicodevertrag; 80×25 bzw. 120×40, deklarierte Resize-Schritte; für release-formular 100×30 und Zeichen ab Spalte 90
Forms/Fokus/Maus/Menü formular, formular-access-backtab, eingabe-maus-taste, eingabe-taste-maus, release-formular K Geordnete Kopfereignisse; LostFocus vor GotFocus, genau ein Click, Menüauswahl; separate Zeichen-/Farberwartungen und zwei Läufe
Listen/Timer/modal listenauswahl, timer-aktivierung, formular K Deklarierte Tasten/Maus/Zeit; bestehende .out mit Listenauswahl, Timertext und Dialogresultat
Zeit/Traps traps, trap-masken, datumzeit, timezoneknown, timezonefallback K, E Virtuelle Uhr oder ausdrücklich gesetzte Zeit/Zone; KEY/UEVENT/TIMER-Masken und Reihenfolge. Zeitlose Invarianten bleiben als solche benannt
Dateien/ISAM dateien, eingabefortschritt, alle isam*.bas K Frisches leeres Tempverzeichnis, deklarierte Bildschirmgröße, feste Dateiinhalte aus dem BASIC-Programm; .out prüft Lese-/Record-/Transaktionsresultate
Projekt-/Include-/Dateikette release_projekt_prueft_anfangsdateien_dateieffekte_und_include_fehler P Zwei Module, verschachtelte Includes; seed.txt=Grüße\n, result.txt=Start\n; Ergebnis exakt Start\nGrüße\n, Quelle unverändert, Exit 2 und inner.bi Zeile 8 Spalte 5; Quell-/TBC-Lauf jeweils zweimal, Library-Quellen vor TBC-Lauf entfernt
Fehler/physische Orte fehlerbehandlung; cli_meldet_physische_quellorte_auch_nach_verschachtelten_includes; tbc_run_stop_exitcode, tbc_run_laufzeitfehler_exitcode K, P ERR/ERL getrennt von Dateizeile; STOP=3, Runtimefehler=2; Sollstellen im jeweiligen Test, keine Systemzeitabhängigkeit
Quellfreie Projekte und Startdatei projekt_und_formular_laufen_nach_entfernen_saemtlicher_quellen, explicit_startup_order_and_form_selection_survive_tbc P Festes Projekt/Form/Include, danach Quellen entfernt; identische Ausgabe und richtige Startformularwahl aus TBC
Vollständiges Inventar inventar_stimmt_mit_code_ueberein, jeder_inventareintrag_erreicht_hir_und_laufzeitziel, forms_inventar_stimmt_mit_der_klassentabelle_ueberein, abdeckungsstand_wird_ausgewiesen I docs/inventar plus feste Inventar-Quellliste und unabhängige Absenkungsziele; Gegenproben für falsche Status-/Builtin-/Forms-Bindung
Ereignisvollständigkeit registrierte_form_ereignisse_erreichen_basic_aus_realen_quellen, registrierte_control_ereignisse_erreichen_basic_aus_realen_quellen, fehlender_ereignispfad_wird_namentlich_erkannt E Jede registrierte Quelle löst ihren BASIC-Handler aus; künstlich fehlender Auslöser wird benannt
IDE/CLI/TBC create_save_debug_help_exports_and_reopen, saved_project_ide_source_cli_and_tbc_have_identical_sessions, reference_matrix_is_complete_and_points_to_runnable_tests A Feste Tastensequenzen, Hostzeiten, Anfangsdateien und konkrete Ausgabe/Dateieffekte; bestehende 45-zeilige Phase-5-Befehlsmatrix. Native Exporterzeugung ist hier noch nicht implementiert
Dialog-EOF eof_im_dialog_eines_formularhandlers_beendet_die_ereignispumpe, eof_leert_angenommene_eingaben_bei_modalen_und_modellosen_forms E EOF in einem Dialog beendet die Pumpe; bereits angenommene normale Formularereignisse bleiben vor EOF zustellbar
Vergleichsqualität release_formular_vergleicht_zeichen_und_attribute_unabhaengig, farbabweichung_nennt_zeile_spalte_soll_und_ist, fehlende_groessenangabe_wird_abgewiesen K Vorab geschriebene Sollausgabe; gezielte Text-/Farbmutation, verkürzte Attributzeile und CJK-Spaltenposition müssen konkrete Diagnosen liefern

Jede Korpus-Sollausgabe muss bereits existieren. Der Harness erzeugt bei fehlendem Soll keine Ersatzdatei. Neue Ausgabe release-formular.out wurde aus Handlerfolge und COLOR/LOCATE-Vorgaben geschrieben, nicht vom Istwert übernommen. Bestehende Golden-Dateien bleiben unverändert.

Öffentlicher Bestand

cout/vbdos, Revision 1cdd2b32b829fe1721d0b6aecc433abc47a96fb6. Lokaler Prüfbestand: /tmp/terminalbasic-vbdos-evidence; die Bereitstellung ist extern und wird nicht einvendort. git archive liefert für jeden Lauf frische Dateien exakt dieser Revision. Größe 100×30, virtuelle Hostuhr 0, keine echten Wartezeiten; je Einstieg zwei Läufe mit gleichen Eingaben.

Einstieg Eingabe Erwartete sichtbare Wirkung
graphics/graphics.mak Alt+X Startformular sichtbar, danach entladen
microsoft/check.mak Alt+F, X, N im Save-Dialog Menü und Save-Dialog nachgewiesen, N konsumiert, Exit entlädt Formular
microsoft/qlbview.mak Esc Cancel entlädt Startformular
microsoft/seek.mak Alt+X Exit entlädt Startformular
microsoft/spindemo.mak Tab, Tab, Pfeil hoch Text1 wird 1, sichtbarer Snapshot ändert sich
microsoft/notepad.frm Alt+F, X, N im Save-Dialog Menü und Save-Dialog nachgewiesen, N konsumiert, Formular entladen
misc/mentors/mentors.frm Alt+F, X, N im Save-Dialog Menü und Save-Dialog nachgewiesen, N konsumiert, Exit entlädt Formular

Snapshots/Zustände müssen zwischen beiden Läufen identisch sein; die obigen konkreten Wirkungen werden zusätzlich geprüft. Ein bloßer Vergleich zweier gleich falscher Starts genügt nicht. Fehlendes TB_VBDOS_REPO, ein unlesbares Repository und eine falsche HEAD-Revision scheitern mit Sollrevision und konkreter Ursache. Temporäre Dateien werden bei Erfolg und beim Entrollen von Assertions aufgeräumt.

Übergabe an 0207

G ist der wiederverwendbare lokale Abnahmeaufruf für spätere Actions; F bleibt zwingend. 0204 ergänzen EXE-/TBL-/IDE-Link-Parität mit diesem Sollsatz, 05 echte Terminalziele, 06 Zielpakete und Gitea-Läufe. Die finale Inventar- und Leistungsprüfung nach deren Fachänderungen gehört in 07. Dieser Change baut keine nativen Exportartefakte und nimmt keine fremden Plattformen ab.