* fix partially #13115 properly (works for c,js,cpp,vm; still fails for js on openbsd) * address comment: also test with -d:danger, -d:debug
This commit is contained in:
parent
bc84bd5d66
commit
bb1c962286
2 changed files with 58 additions and 20 deletions
|
|
@ -1,12 +1,38 @@
|
|||
discard """
|
||||
exitcode: 1
|
||||
targets: "c"
|
||||
matrix: "-d:debug; -d:release"
|
||||
outputsub: ''' and works fine! [Exception]'''
|
||||
"""
|
||||
const msg = "This char is `" & '\0' & "` and works fine!"
|
||||
|
||||
# bug #13115
|
||||
# xxx bug: doesn't yet work for cpp
|
||||
when defined nim_t13115:
|
||||
# bug #13115
|
||||
template fn =
|
||||
raise newException(Exception, msg)
|
||||
when defined nim_t13115_static:
|
||||
static: fn()
|
||||
fn()
|
||||
else:
|
||||
import std/[osproc,strformat,os,strutils]
|
||||
proc main =
|
||||
const nim = getCurrentCompilerExe()
|
||||
const file = currentSourcePath
|
||||
for b in "c js cpp".split:
|
||||
when defined(openbsd):
|
||||
if b == "js":
|
||||
# xxx bug: pending #13115
|
||||
# remove special case once nodejs updated >= 12.16.2
|
||||
# refs https://github.com/nim-lang/Nim/pull/16167#issuecomment-738270751
|
||||
continue
|
||||
|
||||
var msg = "This char is `" & '\0' & "` and works fine!"
|
||||
raise newException(Exception, msg)
|
||||
# save CI time by avoiding mostly redundant combinations as far as this bug is concerned
|
||||
var opts = case b
|
||||
of "c": @["", "-d:nim_t13115_static", "-d:danger", "-d:debug"]
|
||||
of "js": @["", "-d:nim_t13115_static"]
|
||||
else: @[""]
|
||||
|
||||
for opt in opts:
|
||||
let cmd = fmt"{nim} r -b:{b} -d:nim_t13115 {opt} --hints:off {file}"
|
||||
let (outp, exitCode) = execCmdEx(cmd)
|
||||
when defined windows:
|
||||
# `\0` not preserved on windows
|
||||
doAssert "` and works fine!" in outp, cmd & "\n" & msg
|
||||
else:
|
||||
doAssert msg in outp, cmd & "\n" & msg
|
||||
doAssert exitCode == 1
|
||||
main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue