add getCurrentCompilerExe to vmops (eg allows to get nim compiler at CT); add tests for vmops (#9925)
This commit is contained in:
parent
bb1160b73c
commit
c4e3c4ca2d
6 changed files with 65 additions and 2 deletions
|
|
@ -10,6 +10,8 @@ import os
|
|||
template getScriptDir(): string =
|
||||
parentDir(instantiationInfo(-1, true).filename)
|
||||
|
||||
# See also simpler test in Nim/tests/vm/tvmops.nim for a simpler
|
||||
# cross platform way.
|
||||
block gorge:
|
||||
const
|
||||
execName = when defined(windows): "tgorge.bat" else: "./tgorge.sh"
|
||||
|
|
|
|||
47
tests/vm/tvmops.nim
Normal file
47
tests/vm/tvmops.nim
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#[
|
||||
test for vmops.nim
|
||||
]#
|
||||
import os
|
||||
import math
|
||||
import strutils
|
||||
|
||||
template forceConst(a: untyped): untyped =
|
||||
## Force evaluation at CT, useful for example here:
|
||||
## `callFoo(forceConst(getBar1()), getBar2())`
|
||||
## instead of:
|
||||
## block:
|
||||
## const a = getBar1()
|
||||
## `callFoo(a, getBar2())`
|
||||
const ret = a
|
||||
ret
|
||||
|
||||
static:
|
||||
# TODO: add more tests
|
||||
block: #getAppFilename, gorgeEx, gorge
|
||||
const nim = getCurrentCompilerExe()
|
||||
let ret = gorgeEx(nim & " --version")
|
||||
doAssert ret.exitCode == 0
|
||||
doAssert ret.output.contains "Nim Compiler"
|
||||
let ret2 = gorgeEx(nim & " --unexistant")
|
||||
doAssert ret2.exitCode != 0
|
||||
let output3 = gorge(nim & " --version")
|
||||
doAssert output3.contains "Nim Compiler"
|
||||
|
||||
block:
|
||||
const key = "D20181210T175037"
|
||||
const val = "foo"
|
||||
putEnv(key, val)
|
||||
doAssert existsEnv(key)
|
||||
doAssert getEnv(key) == val
|
||||
|
||||
block:
|
||||
# sanity check (we probably don't need to test for all ops)
|
||||
const a1 = arcsin 0.3
|
||||
let a2 = arcsin 0.3
|
||||
doAssert a1 == a2
|
||||
|
||||
block:
|
||||
# Check against bugs like #9176
|
||||
doAssert getCurrentCompilerExe() == forceConst(getCurrentCompilerExe())
|
||||
if false: #pending #9176
|
||||
doAssert gorgeEx("unexistant") == forceConst(gorgeEx("unexistant"))
|
||||
Loading…
Add table
Add a link
Reference in a new issue