This is a big refactor of the TapPrinter and Assert interaction with
the goal of enabling gb.test to print a self-summary after a TAP session
(without storing the TAP we printed and parsing it afterwards). The main
feature addition is a new class representing an assertion (together with
its subtests). Objects of this type are now produced by TapPrinter when
it prints an assertion and by TapParser alike when it parses TAP.
This allows more uniform and more detailed reporting of failures, too.
For organizational reasons, subtest support was moved into the printer.
[GB.TEST]
* NEW: Expose the TapContext class which holds the current TAP session's state.
* NEW: Represent assertions (and entire subtests) by TestAssertion objects in both TapPrinter and TapParser.
* NEW: Coalesce the four TapParser events for assertions into one.
* OPT: Move subtest support into TapPrinter, removing the need to create multiple TapPrinter objects.
* OPT: Remove the need for buffering the TAP to print a self-summary.
* BUG: Fix the buffering issue that would lose TAP when the process crashes.
This is a big refactor of the TapPrinter and Assert interaction with
the goal of enabling gb.test to print a self-summary after a TAP session
(without storing the TAP we printed and parsing it afterwards). The main
feature addition is a new class representing an assertion (together with
its subtests). Objects of this type are now produced by TapPrinter when
it prints an assertion and by TapParser alike when it parses TAP.
This allows more uniform and more detailed reporting of failures, too.
For organizational reasons, subtest support was moved into the printer.
[GB.TEST]
* NEW: Expose the TapContext class which holds the current TAP session's state.
* NEW: Represent assertions (and entire subtests) by TestAssertion objects in both TapPrinter and TapParser.
* NEW: Coalesce the four TapParser events for assertions into one.
* OPT: Move subtest support into TapPrinter, removing the need to create multiple TapPrinter objects.
* OPT: Remove the need for buffering the TAP to print a self-summary.
* BUG: Fix the buffering issue that would lose TAP when the process crashes.
[GB.GTK]
* BUG: The Window State event is correctly raised now, and the state properties are now correctly synchronized.
[GB.GTK3]
* BUG: The Window State event is correctly raised now, and the state properties are now correctly synchronized.
[DEVELOPMENT ENVIRONMENT]
* BUG: Hitting ESC key when the focus is on the console immediate command textbox now always closes the console tab.
* NEW: Form editor: Add a information line on the toolbox that displays the name of the current hovered toolbox control, and the component it belongs to.
[GB.GTK]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
[GB.GTK3]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
[GB.QT4]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
[GB.QT5]
* NEW: Window: Add a State event that is raised when the window is minimized, maximized or set to fullscreen.
[DEVELOPMENT ENVIRONMENT]
* BUG: Code editor: The automatic completion now appears at the correct position when the view is splitted.
* NEW: Search dialog: The project browsing is now done through a background task.
* NEW: Redraw the module icons.
[GB.FORM.EDITOR]
* NEW: TextEditor: Do not use Application.Busy in Load() and Save() methods.
* BUG: TextEditor: TextEditor[].Purge() works as expected now.
Without "Debug oTest.Name" in TestSuite.class:39 it would silently crash anywhere
after TestNoMessage is done without printing any single character. Reason is
"Assert.BailOut" in TestSuite:51 which miraculously does nothing.
If the testsystem itself crashes, ist must print "BailOut ..."
But here also can be seen, why the system has to print every assertion immediately.
Any bufferíng is bad because if the testsystem crashes the buffered results are gone.
So we must get rid of the buffered stream thing and go back to Print scattered all over ;-)