Add readme to tests. Add fileDir option to testament & create nimble test.
This commit is contained in:
parent
c9e093d61d
commit
9b465a2361
17 changed files with 151 additions and 49 deletions
0
tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble
Normal file
0
tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble
Normal file
|
|
@ -0,0 +1 @@
|
|||
proc pkgATest*(): int = 1
|
||||
0
tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble
Normal file
0
tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble
Normal file
|
|
@ -0,0 +1 @@
|
|||
proc pkgBTest*(): int64 = 0xDEADBEEF
|
||||
0
tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble
Normal file
0
tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble
Normal file
|
|
@ -0,0 +1 @@
|
|||
proc pkgBTest*(): int64 = 0
|
||||
0
tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble
Normal file
0
tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble
Normal file
|
|
@ -0,0 +1 @@
|
|||
proc pkgCTest*(): int64 = 1
|
||||
0
tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble
Normal file
0
tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble
Normal file
|
|
@ -0,0 +1 @@
|
|||
proc pkgCTest*(): int64 = 0xDEADBEEF
|
||||
2
tests/nimble/readme.md
Normal file
2
tests/nimble/readme.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
This directory contains tests for the --nimblePath feature.
|
||||
|
||||
11
tests/nimble/tnimblepath.nim
Normal file
11
tests/nimble/tnimblepath.nim
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
discard """
|
||||
action: run
|
||||
cmd: "nim $target --nimblePath:$fileDir/nimbleDir/simplePkgs $options $file"
|
||||
"""
|
||||
import pkgA/module as A
|
||||
import pkgB/module as B
|
||||
import pkgC/module as C
|
||||
|
||||
doAssert pkgATest() == 1, "Simple pkgA-0.1.0 wasn't added to path correctly."
|
||||
doAssert pkgBTest() == 0xDEADBEEF, "pkgB-#head wasn't picked over pkgB-0.1.0"
|
||||
doAssert pkgCTest() == 0xDEADBEEF, "pkgC-#head wasn't picked over pkgC-#aa11"
|
||||
62
tests/readme.md
Normal file
62
tests/readme.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
This directory contains the test cases.
|
||||
|
||||
Each test must have a filename of the form: ``t*.nim``
|
||||
|
||||
**Note:** Tests are only compiled by default. In order to get the tester to
|
||||
execute the compiled binary, you need to specify a spec with an ``action`` key
|
||||
(see below for details).
|
||||
|
||||
# Specs
|
||||
|
||||
Each test can contain a spec in a ``discard """ ... """`` block.
|
||||
|
||||
**Check out the [``parseSpec`` procedure](https://github.com/nim-lang/Nim/blob/devel/tests/testament/specs.nim#L124) in the ``specs`` module for a full and reliable reference**
|
||||
|
||||
## action
|
||||
|
||||
Specifies what action this test should take.
|
||||
|
||||
**Default: compile**
|
||||
|
||||
Options:
|
||||
|
||||
* ``compile`` - compiles the module and fails the test if compilations fails.
|
||||
* ``run`` - compiles and runs the module, fails the test if compilation or
|
||||
execution of test code fails.
|
||||
* ``reject`` - compiles the module and fails the test if compilation succeeds.
|
||||
|
||||
There are certain spec keys that imply ``run``, including ``output`` and
|
||||
``outputsub``.
|
||||
|
||||
## cmd
|
||||
|
||||
Specifies the Nim command to use for compiling the test.
|
||||
|
||||
There are a number of variables that are replaced in this spec option:
|
||||
|
||||
* ``$target`` - the compilation target, e.g. ``c``.
|
||||
* ``$options`` - the options for the compiler.
|
||||
* ``$file`` - the filename of the test.
|
||||
* ``$filedir`` - the directory of the test file.
|
||||
|
||||
Example:
|
||||
|
||||
```nim
|
||||
discard """
|
||||
cmd: "nim $target --nimblePath:./nimbleDir/simplePkgs $options $file"
|
||||
"""
|
||||
```
|
||||
|
||||
# Categories
|
||||
|
||||
Each folder under this directory represents a test category, which can be
|
||||
tested by running `koch tests cat <category>`.
|
||||
|
||||
The folder ``rodfiles`` contains special tests that test incremental
|
||||
compilation via symbol files.
|
||||
|
||||
The folder ``dll`` contains simple DLL tests.
|
||||
|
||||
The folder ``realtimeGC`` contains a test for validating that the realtime GC
|
||||
can run properly without linking against the nimrtl.dll/so. It includes a C
|
||||
client and platform specific build files for manual compilation.
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
This directory contains the test cases.
|
||||
Each test must have a filename of the form: ``t*.nim``
|
||||
|
||||
Each test can contain a spec in a ``discard """"""`` block.
|
||||
|
||||
The folder ``rodfiles`` contains special tests that test incremental
|
||||
compilation via symbol files.
|
||||
|
||||
The folder ``dll`` contains simple DLL tests.
|
||||
|
||||
The folder ``realtimeGC`` contains a test for validating that the realtime GC
|
||||
can run properly without linking against the nimrtl.dll/so. It includes a C
|
||||
client and platform specific build files for manual compilation.
|
||||
|
|
@ -70,10 +70,17 @@ proc normalizeMsg(s: string): string =
|
|||
if result.len > 0: result.add '\L'
|
||||
result.add x.strip
|
||||
|
||||
proc getFileDir(filename: string): string =
|
||||
result = filename.splitFile().dir
|
||||
if not result.isAbsolute():
|
||||
result = getCurrentDir() / result
|
||||
|
||||
proc callCompiler(cmdTemplate, filename, options: string,
|
||||
target: TTarget): TSpec =
|
||||
let c = parseCmdLine(cmdTemplate % ["target", targetToCmd[target],
|
||||
"options", options, "file", filename.quoteShell])
|
||||
"options", options, "file", filename.quoteShell,
|
||||
"filedir", filename.getFileDir()])
|
||||
echo(c)
|
||||
var p = startProcess(command=c[0], args=c[1.. ^1],
|
||||
options={poStdErrToStdOut, poUsePath})
|
||||
let outp = p.outputStream
|
||||
|
|
@ -118,7 +125,8 @@ proc callCompiler(cmdTemplate, filename, options: string,
|
|||
proc callCCompiler(cmdTemplate, filename, options: string,
|
||||
target: TTarget): TSpec =
|
||||
let c = parseCmdLine(cmdTemplate % ["target", targetToCmd[target],
|
||||
"options", options, "file", filename.quoteShell])
|
||||
"options", options, "file", filename.quoteShell,
|
||||
"filedir", filename.getFileDir()])
|
||||
var p = startProcess(command="gcc", args=c[5.. ^1],
|
||||
options={poStdErrToStdOut, poUsePath})
|
||||
let outp = p.outputStream
|
||||
|
|
|
|||
2
tests/untestable/readme.markdown
Normal file
2
tests/untestable/readme.markdown
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
This directory contains tests which are not automatically executed
|
||||
for various reasons. Mainly due to dependencies on external services.
|
||||
Loading…
Add table
Add a link
Reference in a new issue