[DEVELOPMENT ENVIRONMENT]
* NEW: Update some translations.
* NEW: File properties dialog: Add a version control history tab.
* NEW: Version control dialog: Add a version control history tab.
* NEW: Version control dialog: Always open the dialog, even if there is nothing to commit.
[GB.UTIL]
* NEW: String.PadLeft() is a new method that pad a string to the left up to a specified length using a string pattern.
* NEW: String.PadRight() is a new method that pad a string to the right up to a specified length using a string pattern.
[GB.TEST]
* NEW: Flowchart made by libre office draw and exported as svg
This is a first try to show the interplay between gbt3, gb.test and
gb.test.tap.
[GB.FORM]
* NEW: FileProperties: Add() now returns the index of the added tab.
* NEW: FileProperties: Index is a new property that returns or sets the current tab index.
* NEW: FileProperties: Click is a new event that is raised when a tab is selected.
[DEVELOPMENT ENVIRONMENT]
* NEW: File properties dialog: Display file history if version control is enabled.
* NEW: Use bold text instead of shadows to display project titles.
[GB.TEST.TAP]
* NEW: Assert.SubtestLevel is a new property that returns the number of nested subtests.
* NEW: Assert.BailOut always unwinds the subtest stack and bails out of the entire TAP session.
* BUG: Tests can bail out even if Finished was called.
[GB.TEST]
* NEW: Bail out again if errors from test methods are caught.
* BUG: Don't call Finish on a subtest when it was already finished.
After the Bail out message, we Quit with non-zero exit status to signal
an abnormal termination to the harness.
[GB.TEST]
* NEW: Use gb.test.
This removes the Assert and Track classes and uses gb.test.tap instead.
Test methods are now executed inside subtests, plan lines are auto-
matically emitted by the harness.
Differences between gb.tests's and gb.test.tap's Assert module:
- Instead of Assert.True and Assert.False, use Assert.Ok.
- Instead of Assert.Equals* for every type, there is a generic
Assert.Equals for Variants and a specific Assert.StringEquals
for strings which prints diagnostics when the test fails.
- Assert.BailOut does not terminate the entire program, just
the TAP stream.
- Assert.ErrorWithCode is called Assert.ErrorCode.
All TAP printing is done through Assert now. Errors happening in the
test code are not caught and spoofed in the TAP stream anymore, they
cause a test failure. The system would be more robust if the testee
would be in a different process from the tester.
[GB.TEST.TAP]
* NEW: Add Reset() method to Assert. Useful if you use the same (automatic) instance for multiple TAP streams.
* BUG: Fix state handling in TapPrinter.Finished.
[GB.TEST.TAP]
* NEW: Turn TestStats into a class.
* NEW: Store TestStats.Failures as an Integer[].
* BUG: Do NOT intercept test's stderr and convert it to diagnostics.
[GB.FORM.EDITOR]
* BUG: TextEditor: Correctly handle the drawing of the difference before the first line.
* BUG: TextEditor: Correctly relayout differences when the Wrap property changes.
[GB.UTIL]
* NEW: CsvFile: Open() is a new method for opening a CSV file for reading.
* NEW: CsvFile: Create() is a new method for opening a CSV file for writing.