Files
TerminalBasic/tests/compat
..
2026-09-04 07:01:53 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 11:37:55 +02:00
2026-09-04 07:01:53 +02:00
2026-09-04 07:01:53 +02:00

Kompatibilitäts-Testkorpus

Kleine Referenzprogramme mit dokumentierter erwarteter Ausgabe. Jede name.bas hat eine name.out mit der exakten Konsolenausgabe (UTF-8, LF-Zeilenenden). Achtung: PRINT gibt Zahlen mit führendem Leerzeichen (bzw. -) und nachgestelltem Leerzeichen aus — auch am Zeilenende. Die .out-Dateien enthalten daher signifikante Leerzeichen am Zeilenende; Editoren dürfen sie nicht wegtrimmen; .gitattributes schützt die Dateien vor Zeilenenden-Konvertierung.

Ab Phase 2 führt ein Test-Harness (cargo test) jede Datei per tbc run aus und vergleicht die Ausgabe. Bis dahin dienen die .out-Dateien als festgehaltene Verhaltensspezifikation — wo möglich am Vorbild (Emulator) verifiziert, sonst nach Referenzlage rekonstruiert und mit TODO verify im Programmkopf markiert.

Konventionen:

  • Nur Konsolen-E/A (keine Forms) bis Phase 4
  • Kein Zufall/Zeit, außer der Test fixiert die Saat (RANDOMIZE mit Konstante) bzw. prüft nur Invarianten

Die Programme eingabefortschritt, timezoneknown und timezonefallback prüfen den TerminalBasic-Vertrag für Codepoints, gemeinsame Dateileseposition und den sichtbaren Zonenzustand. tb-tz: +00:00 setzt eine bekannte UTC-Zone, tb-tz: unknown erzwingt den UTC-Rückfall. Späterer Ausfall und Erholung werden zusätzlich mit einer ersetzbaren Zonenquelle in den Laufzeit- und VM-Tests geprüft, ohne die Zeitzone des Rechners zu verändern.