testament: error instead of silently overwrite a spec (#16166)

This commit is contained in:
Timothee Cour 2020-11-29 10:42:50 -08:00 • committed by GitHub
commit 6114df3c24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 51 additions and 27 deletions

View file

@ -1,17 +1,23 @@
discard """
errormsg: "type mismatch: got <string> but expected 'int'"
line: 33
file: "tcaseexpr1.nim"
errormsg: "not all cases are covered; missing: {C}"
line: 27
file: "tcaseexpr1.nim"
cmd: "nim check $options $file"
action: "reject"
nimout: '''
tcaseexpr1.nim(33, 10) Error: not all cases are covered; missing: {C}
'''
"""
# NOTE: This spec is wrong. Spec doesn't support multiple error
# messages. The first one is simply overridden by the second one.
# This just has never been noticed.
#[
# xxx make nimout comparison use nimoutCheck instead of:
elif expected.nimout.len > 0 and expected.nimout.normalizeMsg notin given.nimout.normalizeMsg:
and then use nimout: '''
tcaseexpr1.nim(33, 10) Error: not all cases are covered2; missing: {C}
tcaseexpr1.nim(39, 12) Error: type mismatch: got <string> but expected 'int literal(10)'
'''
]#
# line 20
type
E = enum A, B, C

View file

@ -2,12 +2,11 @@ discard """
exitcode: 1
targets: "c"
matrix: "-d:debug; -d:release"
outputsub: '''t13115.nim(13) t13115
Error: unhandled exception: This char is'''
outputsub: ''' and works fine! [Exception]'''
"""
const b_null: char = 0.char
var msg = "This char is `" & $b_null & "` and works fine!"
# bug #13115
# xxx bug: doesn't yet work for cpp
raise newException(Exception, msg)
var msg = "This char is `" & '\0' & "` and works fine!"
raise newException(Exception, msg)

View file

@ -1,10 +1,23 @@
discard """
cmd: "nim check $options $file"
errormsg: "'proc' is not a concrete type"
errormsg: "'Foo' is not a concrete type."
errormsg: "invalid type: 'proc' in this context: 'TBaseMed'"
action: "reject"
nimout: '''
tmetafield.nim(26, 5) Error: 'proc' is not a concrete type; for a callback without parameters use 'proc()'
tmetafield.nim(27, 5) Error: 'Foo' is not a concrete type
tmetafield.nim(29, 5) Error: invalid type: 'proc' in this context: 'TBaseMed' for var
'''
"""
# bug #188
# line 20
type
Foo[T] = object
x: T
@ -15,4 +28,3 @@ type
var a: TBaseMed
# issue 188