The format is based on Keep a Changelog and this project adheres to Semantic Versioning, with exception of a "0." prefix until version 1 is released.
- Builtin symbol - string
OS_PATH_SEP
- Support of Python 3.10
- Support of Python 3.11
- Build using "build" frontend
- Type
files-source
- Produces a set of files (for populating a directory) - Instruction
dir
- Populate a dir with contents given by afiles-source
- Instruction
file
- Append contents to existing file - Instruction
def
-string
- Form:> TEXT-UNTIL-END-OF-LINE
- Type
text-source
- Form:> TEXT-UNTIL-END-OF-LINE
- Syntax element
REGEX
- Form:> TEXT-UNTIL-END-OF-LINE
- Syntax element
PROGRAM-ARGUMENT
- FormHERE-DOCUMENT
- Default timeout - Set to 60s
- Instruction
dir
- Fails if the directory already exists (breaking) - Type
string
- Reserved words - Type
list
-)
ends list - Type
list
- Multi line list using backslash - Syntax elements
PROGRAM-ARGUMENT
- Reserved words - Syntax elements
PROGRAM-ARGUMENT
-)
ends list - Syntax elements
PROGRAM-ARGUMENT
- Multi line list using backslash
- Syntax element
PATH
- Optional surrounding by parentheses
- Instruction
setup
/env
- Ability to set variables separately for theaction to check
- Instruction
timeout
- Ability to set no-timeout - Type
text-source
(together with improvements of corresponding elementTEXT-SOURCE
) - Type
text-transformer
-grep
- Shortcut forfilter contents matches
- Type
text-transformer
-replace
--at LINE-MATCHER
- Limits replacement to certain lines
- Instruction
setup
/env
- VALUE argument is atext-source
- Instruction
conf
/timeout
- Move to later phases (breaking) - Type
string-matcher
- Rename totext-matcher
(breaking) - Type
string-transformer
- Rename totext-transformer
(breaking)
- Support of Python v 3.5
- Interpreter actors - interpreter
% STRING [PROGRAM-ARGUMENT]...
- Interpreter actors - interpreter
-python [PROGRAM-ARGUMENT]...
- Instruction
conf
/actor
- Ability to set the "null" actor - Instruction
%
- Instruction
copy
- Available in all phases - Instruction
exit-code
- Option to check exit code from arbitrary program - Type
file-matcher
-path
- matches the absolute path of files - Type
file-matcher
-stem
- matches the "stem" part of file names - Type
file-matcher
-suffixes
- matches the "suffixes" part of file names - Type
file-matcher
-suffix
- matches the "suffix" part of file names - Type
line-matcher
-contents
- matches text contents using astring-matcher
- Type
string-transformer
-char-case
- Type
string-transformer
-replace-test-case-dirs
- Type
string-transformer
-strip
- Type
string-transformer
-filter
--line-nums
Matches lines against line number ranges - Type
string-matcher
- Add alias~
formatches
- Type
string-matcher
- Add alias==
forequals
- Type
program
--stdin
- Ability to set stdin - Type
integer-matcher
- Syntax element
STRING-SOURCE
- Builtin symbol - string
NEW_LINE
- Syntax of type expressions in nested expressions - May not contain binary operators (unless inside parentheses) (breaking)
- Syntax of type expressions - Precedences of
||
and&&
(breaking) - Type
files-matcher
- rename-prune
->-with-pruned
(breaking) - Type
files-matcher
- renameempty
->is-empty
(breaking) - Type
file-matcher
-name
- match base name (also for the GLOB-PATTERN variant) (breaking) - Type
file-matcher
-name
/path
- Use~
for regex matching (breaking) - Type
string-transformer
-replace
- Include new-lines in processed lines, unless-preserve-new-lines
is given (breaking) - Type
string-transformer
-filter
/LINE-MATCHER
- Optimize by deriving interval of applicable lines - Type
string-matcher
-equals
- Expected value isSTRING-SOURCE
- Type
string-matcher
- renameempty
->is-empty
(breaking) - Syntax element
STRING-SOURCE
- Option-file
->-contents-of
(breaking) - Syntax element
PATH
- Add optional surrounding by parentheses - Syntax element
PATH
- Introduces "reserved words" that must be quoted if used as a file name (breaking) - Syntax element
PROGRAM
- Add optional surrounding by parentheses - Interpreter actors - interpreter
EXECUTABLE [ARGUMENT]...
requiresEXECUTABLE
to be a file - Actor -
file interpreter
- arguments to source file arePROGRAM-ARGUMENT
- Exit codes - rename
IMPLEMENTATION_ERROR
->INTERNAL_ERROR
(breaking) - Exit codes - Syntax error in
[act]
-VALIDATION_ERROR
->SYNTAX_ERROR
- Exit codes - Values of all non-zero exit codes (breaking)
- Instruction
conf
/actor
- Remove "-" prefix from actor names (breaking) - Instruction
setup
/stdin
- Contents value isSTRING-SOURCE
- Instruction
assert
/contents
- Syntax - add:
between path and matcher (breaking) - Instruction
assert
/dir-contents
- Syntax - add:
between path and matcher (breaking) - Builtin symbol -
string-transformer
-TO_LOWER_CASE
-> Replaced withchar-case
(breaking) - Builtin symbol -
string-transformer
-TO_UPPER_CASE
-> Replaced withchar-case
(breaking) - Builtin symbol -
string-transformer
-REPLACE_TEST_CASE_DIRS
-> Replaced withreplace-test-case-dirs
(breaking) - Builtin symbol -
string
-LINE_SEP
-> Rename toOS_LINE_SEP
(breaking) - Syntax of
instruction description
- Delimiter is backtick (`) (breaking) - Phase
conf
- Invalid HDS path givesVALIDATION_ERROR
- Interpreter actors - interpreter
$ SHELL-COMMAND
- Type
line-matcher
-matches
- replaced bycontents
- Syntax error messages - Include instruction name
- Help text of instruction
[assert]
/exists
- CLI case:
--preprocessor
- Detection of invalid argument syntax - CLI case:
--actor
- Detection of invalid argument syntax - CLI suite:
--actor
- Detection of invalid argument syntax - Type
string-transformer
-replace
- handling of new-lines in replacement string - Instruction
assert
/exists
- Handling of paths with non-last component that is not a directory
- Builtin symbol - string
LINE_SEP
- Builtin symbol - string
TAB
- Actor
command-line
- Executes aPROGRAM
- Type
files-matcher
/matches -full
- Crash rendering err msg for recursive model w too few files. - Test - tests not working for CWD=/ or CWD=/sub
- Test - tests not working for Python >= 3.8 (comparison of XML-strings generated from objects with dicts)
- Type
file-matcher
- primitiverun
- Type
string-matcher
- primitiverun
- Type
string-transformer
- primitiverun
- Instruction
file
--ignore-exit-code
option - Instruction
run
--ignore-exit-code
option
- Instructions
contents
,stdout
,stderr
: Detection of HARD_ERROR from string matcher
- Type
files-condition
- Type
files-matcher
- primitivematches
- Improves meaning of parentheses in expressions
- Type
files-matcher
- complex expressions (&& and ||) - Type
files-matcher
--prune
- Type
string-matcher
- complex expressions (&& and ||) - Type
file-matcher
- primitivedir-contents
- Type
string-transformer
- primitiveidentity
- Type
program
- options-existing-dir
,-existing-path
- Matcher types - primitive
constant
- Matcher and
string-transformer
types - alternative syntax for sym-refs:SYMBOL-REFERENCE
- Instruction
dir-contents
--recursive
option
- Instruction
def
- LINE-MATCHER argument is mandatory - Instruction
def
- FILE-MATCHER argument is mandatory - Instruction
def
- STRING-TRANSFORMER argument is mandatory - Instruction
def
- PATH argument is mandatory - Instruction
env
- Accepts multi line syntax - Instruction
dir
- Accepts multi line syntax - Instruction
cd
- Accepts multi line syntax - Instruction
cd
- PATH argument is mandatory - Type
string-transformer
- Renameselect
tofilter
- Improved error messages
- The preset
EXACTLY_...
environment variables - The "post setup validation" execution step
- Command
symbol
- ability to display information from suite - Command
symbol
- ability to display structure of symbols - Command
symbol
- ability to handle builtin symbols
- Python compatibility: Increased to Python v 3.5.4
- Matching on file contents: HARD_ERROR instead of FAIL when file is not an existing regular file
- Improved error messages
- Help text of instruction
[conf]
/actor
- Detection of file inclusion failures in suites
- suite "progress reporter": Grouping of failing tests according to "exit identifier"
- Help text bug fixes
- Help text improvements
- Improvement of some error messages
-
Instruction
exists
: Replaces file type option withFILE-MATCHER
E.g.
exists -file f.txt
is replaced byexists f.txt : type file
- FILE-MATCHER: New primitive:
contents STRING-MATCHER
- FILES-MATCHER: Quantification on files applies
FILE-MATCHER
(instead ofSTRING-MATCHER
) - STRING-TRANSFORMER: replace: Substitutes symbol references in regex and replacement strings
- LINE-MATCHER: line-num: Substitutes symbol references in integer comparison
- LINE-MATCHER: Changes name of primitive: "regex" -> "matches"
- LINE-MATCHER: Substitutes symbol references in regex string
- FILE-MATCHER: name -regex: Substitutes symbol references in regex string
- FILE-MATCHER: name GLOB-PATTERN: Substitutes symbol references in pattern string
- symbol reference reporting: Source location
- suite parse: Do not crash when parsing suite file with invalid syntax
- New type "string-matcher"
- New type "files-matcher"
- New STRING-MATCHER: matches REGEX
- New command
symbol
- displays information about symbol usages in a test case
- STRING-MATCHER / any|every line: Removes mandatory keyword
matches
- Windows - Fixes type error
- Windows - Avoid crash when resolving terminal ANSI color support
- Windows - Avoid crash when removing SDS after test case
- Test case phase contents in corresponding suites sections
- Run test case as part of suite if the default suite file - "exactly.suite" - exists
- Run suites - accepts DIR as suite file CLI arg if DIR contains default suite file
- Sub suite list accepts DIR if DIR contains default suite file
- Improved description of Test case execution environment
- Improved built in help
- More examples in README
- Changes the layout of the sandbox directory structure
- suite/conf instruction
actor
- def instruction: New path relativity: rel source file:
-rel-here
- command line actor: Accepts additional relativities:
-rel-home
,-rel-act
,-rel-tmp
- file interpreter actor: Accepts additional relativities:
-rel-home
,-rel-act
,-rel-tmp
- string-transformer "replace": Do not include trailing newline in processed string
- improves error messages for def instruction - includes source loc of referenced symbols
- test suites: Environment variables do not leak between test cases
[conf]
instructions:home
,act-home
: DIR arg is now relative location of source file--keep
: Prints sandbox dir also in case of error--act
: Prints output from ATC continuously, and skips phases[before-assert]
and[assert]
- Improves built in help (mostly related to "actor", "action to check", "including")