* trigger valgrind failure on memory leak * remove non-malloc tests * remove ORC test is redundant because we already have an ARC test * only run valgrind tests on 64-bit Linux * disable freebsd and openbsd * Remove tleak_refc As to not test implementation details (or bug) * Fix test failures by removing redundant test Since this tests/shoulfail/tvalgrind.nim was specified here to fail this test itself fails since it will be skipped on non-linux CI * Remove test, reason detailed in the previous commit * Remove redundant disables * Revert removing disables * Add and use valgrind: leaks * Fix Co-authored-by: Clyybber <darkmine956@gmail.com> Co-authored-by: n5m
This commit is contained in:
parent
833035bacd
commit
436e1fa5b1
6 changed files with 35 additions and 9 deletions
|
|
@ -43,7 +43,7 @@ type
|
|||
reFilesDiffer, # expected and given filenames differ
|
||||
reLinesDiffer, # expected and given line numbers differ
|
||||
reOutputsDiffer,
|
||||
reExitcodesDiffer,
|
||||
reExitcodesDiffer, # exit codes of program or of valgrind differ
|
||||
reTimeout,
|
||||
reInvalidPeg,
|
||||
reCodegenFailure,
|
||||
|
|
@ -67,6 +67,9 @@ type
|
|||
msg*: string
|
||||
line*, col*: int
|
||||
|
||||
ValgrindSpec* = enum
|
||||
disabled, enabled, leaking
|
||||
|
||||
TSpec* = object
|
||||
action*: TTestAction
|
||||
file*, cmd*: string
|
||||
|
|
@ -92,7 +95,7 @@ type
|
|||
# whether this test can be batchable via `NIM_TESTAMENT_BATCH`; only very
|
||||
# few tests are not batchable; the ones that are not could be turned batchable
|
||||
# by making the dependencies explicit
|
||||
useValgrind*: bool
|
||||
useValgrind*: ValgrindSpec
|
||||
timeout*: float # in seconds, fractions possible,
|
||||
# but don't rely on much precision
|
||||
inlineErrors*: seq[InlineError] # line information to error message
|
||||
|
|
@ -306,14 +309,15 @@ proc parseSpec*(filename: string): TSpec =
|
|||
result.unjoinable = not parseCfgBool(e.value)
|
||||
of "valgrind":
|
||||
when defined(linux) and sizeof(int) == 8:
|
||||
result.useValgrind = parseCfgBool(e.value)
|
||||
result.useValgrind = if e.value.normalize == "leaks": leaking
|
||||
else: ValgrindSpec(parseCfgBool(e.value))
|
||||
result.unjoinable = true
|
||||
if result.useValgrind:
|
||||
if result.useValgrind != disabled:
|
||||
result.outputCheck = ocSubstr
|
||||
else:
|
||||
# Windows lacks valgrind. Silly OS.
|
||||
# Valgrind only supports OSX <= 17.x
|
||||
result.useValgrind = false
|
||||
result.useValgrind = disabled
|
||||
of "disabled":
|
||||
case e.value.normalize
|
||||
of "y", "yes", "true", "1", "on": result.err = reDisabled
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue