diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble | 0 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA/module.nim | 1 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble | 0 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB/module.nim | 1 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble | 0 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB/module.nim | 1 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble | 0 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC/module.nim | 1 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble | 0 | ||||
-rw-r--r-- | tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC/module.nim | 1 | ||||
-rw-r--r-- | tests/nimble/readme.md | 2 | ||||
-rw-r--r-- | tests/nimble/tnimblepath.nim | 11 | ||||
-rw-r--r-- | tests/readme.md | 62 | ||||
-rw-r--r-- | tests/readme.txt | 13 | ||||
-rw-r--r-- | tests/testament/tester.nim | 12 | ||||
-rw-r--r-- | tests/untestable/readme.markdown | 2 |
16 files changed, 92 insertions, 15 deletions
diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble b/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA.nimble diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA/module.nim b/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA/module.nim new file mode 100644 index 000000000..6cb3b77d9 --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgA-0.1.0/pkgA/module.nim @@ -0,0 +1 @@ +proc pkgATest*(): int = 1 \ No newline at end of file diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble b/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB.nimble diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB/module.nim b/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB/module.nim new file mode 100644 index 000000000..03d2298a2 --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgB-#head/pkgB/module.nim @@ -0,0 +1 @@ +proc pkgBTest*(): int64 = 0xDEADBEEF \ No newline at end of file diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble b/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB.nimble diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB/module.nim b/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB/module.nim new file mode 100644 index 000000000..56ff64197 --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgB-0.1.0/pkgB/module.nim @@ -0,0 +1 @@ +proc pkgBTest*(): int64 = 0 \ No newline at end of file diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble b/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC.nimble diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC/module.nim b/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC/module.nim new file mode 100644 index 000000000..24a67bbe2 --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgC-#aa11/pkgC/module.nim @@ -0,0 +1 @@ +proc pkgCTest*(): int64 = 1 \ No newline at end of file diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble b/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC.nimble diff --git a/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC/module.nim b/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC/module.nim new file mode 100644 index 000000000..2f243ad82 --- /dev/null +++ b/tests/nimble/nimbleDir/simplePkgs/pkgC-#head/pkgC/module.nim @@ -0,0 +1 @@ +proc pkgCTest*(): int64 = 0xDEADBEEF \ No newline at end of file diff --git a/tests/nimble/readme.md b/tests/nimble/readme.md new file mode 100644 index 000000000..10fd21a83 --- /dev/null +++ b/tests/nimble/readme.md @@ -0,0 +1,2 @@ +This directory contains tests for the --nimblePath feature. + diff --git a/tests/nimble/tnimblepath.nim b/tests/nimble/tnimblepath.nim new file mode 100644 index 000000000..6ba1be1d1 --- /dev/null +++ b/tests/nimble/tnimblepath.nim @@ -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" \ No newline at end of file diff --git a/tests/readme.md b/tests/readme.md new file mode 100644 index 000000000..34a2c4bfb --- /dev/null +++ b/tests/readme.md @@ -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. diff --git a/tests/readme.txt b/tests/readme.txt deleted file mode 100644 index 0ff9e11c6..000000000 --- a/tests/readme.txt +++ /dev/null @@ -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. diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim index b65814534..06fd4acec 100644 --- a/tests/testament/tester.nim +++ b/tests/testament/tester.nim @@ -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 diff --git a/tests/untestable/readme.markdown b/tests/untestable/readme.markdown new file mode 100644 index 000000000..fcb7f4f28 --- /dev/null +++ b/tests/untestable/readme.markdown @@ -0,0 +1,2 @@ +This directory contains tests which are not automatically executed +for various reasons. Mainly due to dependencies on external services. \ No newline at end of file |