Files
nim-namespaced-logging/namespaced_logging.nimble
T

56 lines
1.8 KiB
Nim

# Package
version = "2.1.2"
author = "Jonathan Bernard"
description = "Wrapper around std/logging to provide namespaced logging."
license = "MIT"
srcDir = "src"
# Dependencies
requires @["nim >= 2.2.0", "zero_functional"]
# from https://git.jdb-software.com/jdb/nim-packages
requires "timeutils"
proc runUnitTests() =
exec "nimble c --mm:orc --threads:on src/namespaced_logging.nim"
exec "src/namespaced_logging.out"
proc runRegressionTests() =
exec "nimble c --mm:orc --threads:on -d:multithreaded --out:tests/bin/writer_child tests/writer_child.nim"
exec "nimble c --mm:orc --threads:on --out:tests/bin/regressions tests/regressions.nim"
exec "tests/bin/regressions"
proc runThreadSafetyTests() =
exec "nimble c --mm:orc --threads:on --passC:-fsanitize=thread --passC:-g --passL:-fsanitize=thread --out:tests/bin/thread_safety tests/thread_safety.nim"
exec "bash tests/run_tsan.sh tests/bin/thread_safety"
task test, "Run all tests, including ThreadSanitizer, and report all failing suites.":
var failedSuites: seq[string] = @[]
template runSuite(name: string, action: untyped) =
echo "Running test suite: ", name
try:
action
echo "PASS: ", name
except OSError as err:
echo "FAIL: ", name, ": ", err.msg
failedSuites.add(name)
runSuite("unit", runUnitTests())
runSuite("regression", runRegressionTests())
runSuite("thread safety", runThreadSafetyTests())
if failedSuites.len > 0:
echo "Failed test suites: ", failedSuites
quit(1)
task testUnit, "Run the existing embedded unit tests under ORC.":
runUnitTests()
task testRegression, "Run ownership, configuration, and shutdown regressions.":
runRegressionTests()
task testThreadSafety, "Run ORC ownership tests with ThreadSanitizer (Linux).":
runThreadSafetyTests()