aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2020-04-28 20:48:21 -0500
committerGanesh Viswanathan <dev@genotrance.com>2020-04-28 20:48:21 -0500
commit492eba8f22c6fb0070274590490f2977e357de2a (patch)
treeaa93db0fc3bab2735c44da585c666cbe63709876
parent76d9be756a540272cc7a910eb0730297643276f7 (diff)
downloadnimterop-492eba8f22c6fb0070274590490f2977e357de2a.tar.gz
nimterop-492eba8f22c6fb0070274590490f2977e357de2a.zip
Add timeit to measure test timings
-rw-r--r--nimterop.nimble15
-rw-r--r--tests/getheader.nims7
-rw-r--r--tests/timeit.nim22
-rw-r--r--tests/wrappers.nims6
4 files changed, 36 insertions, 14 deletions
diff --git a/nimterop.nimble b/nimterop.nimble
index caaaf90..8b6a756 100644
--- a/nimterop.nimble
+++ b/nimterop.nimble
@@ -1,6 +1,6 @@
# Package
-version = "0.4.4"
+version = "0.5.0"
author = "genotrance"
description = "C/C++ interop for Nim"
license = "MIT"
@@ -14,8 +14,7 @@ requires "nim >= 0.20.2", "regex >= 0.14.1", "cligen >= 0.9.45"
import nimterop/docs
proc execCmd(cmd: string) =
- echo "execCmd:" & cmd
- exec cmd
+ exec "tests/timeit " & cmd
proc execTest(test: string, flags = "") =
execCmd "nim c --hints:off -f " & flags & " -r " & test
@@ -24,6 +23,9 @@ proc execTest(test: string, flags = "") =
task buildToast, "build toast":
execCmd("nim c --hints:off nimterop/toast.nim")
+task buildTimeit, "build timer":
+ exec "nim c -d:danger tests/timeit"
+
task bt, "build toast":
execCmd("nim c --hints:off -d:danger nimterop/toast.nim")
@@ -34,6 +36,7 @@ task docs, "Generate docs":
buildDocs(@["nimterop/all.nim"], "build/htmldocs")
task test, "Test":
+ buildTimeitTask()
buildToastTask()
execTest "tests/tast2.nim"
@@ -66,8 +69,10 @@ task test, "Test":
# getHeader tests
withDir("tests"):
- execCmd("nim e getheader.nims")
+ exec "nim e getheader.nims"
if not existsEnv("APPVEYOR"):
- execCmd("nim e wrappers.nims")
+ exec "nim e wrappers.nims"
docsTask()
+
+ echo readFile("tests/timeit.txt") \ No newline at end of file
diff --git a/tests/getheader.nims b/tests/getheader.nims
index ef501ab..72407f9 100644
--- a/tests/getheader.nims
+++ b/tests/getheader.nims
@@ -2,16 +2,11 @@ import strutils
proc testCall(cmd, output: string, exitCode: int, delete = true) =
var
- ccmd =
- when defined(windows):
- "cmd /c " & cmd
- else:
- cmd
+ ccmd = "../tests/timeit " & cmd
if not delete:
ccmd = ccmd.replace(" -f ", " ")
- echo ccmd
var
(outp, exitC) = gorgeEx(ccmd)
echo outp
diff --git a/tests/timeit.nim b/tests/timeit.nim
new file mode 100644
index 0000000..b52eae5
--- /dev/null
+++ b/tests/timeit.nim
@@ -0,0 +1,22 @@
+import std/monotimes, os, osproc, sequtils, strformat, strutils, times
+
+when isMainModule:
+ var params = commandLineParams()
+ params.apply(quoteShell)
+
+ let cmd = params.join(" ")
+ echo &"================\nRunning: {cmd}\n"
+
+ let
+
+ start = getMonoTime()
+ ret = execCmd(cmd)
+ endt = getMonoTime()
+
+ outf = getAppDir() / "timeit.txt"
+ outd = if fileExists(outf): readFile(outf) else: ""
+ outp = &"\nRan: {cmd}\nTime taken: {$(endt - start)}\n"
+
+ echo outp
+ writeFile(outf, outd & outp)
+ quit(ret) \ No newline at end of file
diff --git a/tests/wrappers.nims b/tests/wrappers.nims
index 37ac686..4687d7a 100644
--- a/tests/wrappers.nims
+++ b/tests/wrappers.nims
@@ -9,7 +9,7 @@ withDir("wrappers"):
for wrapper in wrappers:
let
name = wrapper.extractFilename()
- exec "git clone https://github.com/" & wrapper
+ exec "../../tests/timeit git clone https://github.com/" & wrapper
withDir(name):
- exec "nimble install -d"
- exec "nimble test" \ No newline at end of file
+ exec "../../../tests/timeit nimble install -d"
+ exec "../../../tests/timeit nimble test" \ No newline at end of file