From Newsgroup: comp.lang.ada
bbt is what you get when you take "docs IS code" literally: the
documentation is the test suite.
Describe your scenarios in near-natural language in the format of your
Markdown documentation, and then just run this doc.
This release delivers two major features:
1. COMPARISON MODIFIERS
When comparing an output with a reference file, or with an expected
output, you often have to do acrobatics to neutralize the unpredictable
parts of the output:
* time tags:
Oct 26 19:52:03 myhost sshd[1234]: warning: 3 authentication
failures; remote 192.168.1.42
* source locations:
test.c:6:17: note: expansion point is location 283648
* paths: c:\tmp and /tmp are both OK
* etc.
This version makes it easy: just state, on the comparison step line,
what you ignore:
- When I run ....
- Then I get (ignoring time)
```
[12:34:56] Building foo
[12:34:56] Done
```
You can ignore time tags, order, version, dir, and more to come.
The command line options that drive how casing / empty lines / spaces
are handled are now integrated into this mechanism.
Patterns can be combined: (ignoring time, order and dir)
And last but not least, any pattern can be masked with a regexp:
(ignoring [0-9.]+)
2. SHELL STEPS
Some commands only make sense through a shell - pipes, redirections,
command substitutions. You used to spawn the shell explicitly, e.g.
"When I run `sh -c \"cmd1 | cmd2 > out\"`". This version gives them
first class steps:
- When I run shell `ls | wc -l > count.txt`
The shell is selected with the --shell option or the BBT_SHELL
environment variable, among sh, bash, dash, zsh, fish, cmd, powershell
and pwsh - defaulting to sh on POSIX and cmd.exe on Windows. And no
more shell metacharacter warning on those steps: the metacharacters
are exactly the point.
bbt 0.6.0 is available on Alire (alr install bbt) for
Linux/Mac/Windows.
For the other changes and fixes, see the complete changelog:
https://github.com/LionelDraghi/bbt/blob/main/docs/changelog.md
--- Synchronet 3.22a-Linux NewsLink 1.2