[Testament] Extend and document message testing aids (#19996)
* [Testament] Extend and document message testing aids * Enable inline msgs when not reject action. Eliminates the pain of changing the line and column numbers in `nimout` or `output` while making changes to the test. * Enable using inline msgs and nimout together. Allows ease of inline msgs for the test as well as testing msgs from other modules. * Add path separator and test filename variable interpolation in msgs. Eases handling path separators in the msgs. * Add some documentation. * Fixed lots of broken tests * Fixed more broken tests * Support multiple inline messages per a line * Fix a broken test * Revert variable substitution in `output` * Remove uneeded params * Update doc/testament.md Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> * Update testament/specs.nim Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> * Update testament/specs.nim Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> * Fix indentation Co-authored-by: quantimnot <quantimnot@users.noreply.github.com> Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
This commit is contained in:
parent
c2cdc752c8
commit
6289b002b6
15 changed files with 247 additions and 149 deletions
|
|
@ -1,10 +1,8 @@
|
|||
discard """
|
||||
cmd: "nim check $file"
|
||||
nimout: '''teffects1.nim(22, 28) template/generic instantiation from here
|
||||
teffects1.nim(23, 13) Error: can raise an unlisted exception: ref IOError
|
||||
teffects1.nim(22, 29) Hint: 'lier' cannot raise 'IO2Error' [XCannotRaiseY]
|
||||
teffects1.nim(38, 21) Error: type mismatch: got <proc (x: int): string{.noSideEffect, gcsafe, locks: 0.}> but expected 'MyProcType = proc (x: int): string{.closure.}'
|
||||
.raise effects differ'''
|
||||
nimout: '''
|
||||
teffects1.nim(17, 28) template/generic instantiation from here
|
||||
'''
|
||||
"""
|
||||
{.push warningAsError[Effect]: on.}
|
||||
type
|
||||
|
|
@ -16,11 +14,10 @@ type
|
|||
|
||||
proc forw: int {. .}
|
||||
|
||||
proc lier(): int {.raises: [IO2Error].} =
|
||||
#[tt.Hint ^ 'lier' cannot raise 'IO2Error' [XCannotRaiseY] ]#
|
||||
proc lier(): int {.raises: [IO2Error].} = #[tt.Hint
|
||||
^ 'lier' cannot raise 'IO2Error' [XCannotRaiseY] ]#
|
||||
writeLine stdout, "arg" #[tt.Error
|
||||
^ can raise an unlisted exception: ref IOError
|
||||
]#
|
||||
^ writeLine stdout, ["arg"] can raise an unlisted exception: ref IOError ]#
|
||||
|
||||
proc forw: int =
|
||||
raise newException(IOError, "arg")
|
||||
|
|
@ -38,7 +35,7 @@ proc foo(x: int): string {.raises: [ValueError].} =
|
|||
var p: MyProcType = foo #[tt.Error
|
||||
^
|
||||
type mismatch: got <proc (x: int): string{.noSideEffect, gcsafe, locks: 0.}> but expected 'MyProcType = proc (x: int): string{.closure.}'
|
||||
|
||||
.raise effects differ
|
||||
]#
|
||||
{.pop.}
|
||||
{.pop.}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue