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.
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 ;-)
[GB.TEST]
* BUG: Forward Description in Assert.ErrorCode.
* BUG: Fix spelling of TearDown -> Teardown special test method.
* OPT: Use Assert.Note() instead of Print in tests.
[TESTER]
* NEW: Use gb.test's TestHarness to parse TAP.
* BUG: Do not overwrite existing classes when generating temporary startup class.
* OPT: Prefer Exec over Shell.
[INTERPRETER]
* NEW: Support for JIT '&=' optimization.
* BUG: Fix '&=' optimization on argument variables.
* OPT: Strings greater than 4096 bytes are allocated by 4096 bytes steps.
[GB.JIT]
* NEW: JIT optimization of '&=' has been implemented.
[DEVELOPMENT ENVIRONMENT]
* NEW: Support for 'gb.web.gui' component.
* NEW: Support for custom stock icons sizes depending on the form family.
* NEW: Allow any form family to use the menu editor.
[GB.WEB.GUI]
* NEW: This is the new name of 'gb.web.form2'.
* NEW: Support for popup menus.
* NEW: Support for stock icons.
[GB.WEB.FORM2]
* NEW: Rename the component as 'gb.web.gui'.
[GB.UTIL]
* NEW: CSVFile: Charset now can be specified. If not specified, the first line of the files is used to guess if it could be WINDOWS-1252, or otherwise UTF-8.