mirror of
https://github.com/codex-storage/nim-codex-dht.git
synced 2025-01-25 03:10:27 +00:00
5f38fd9570
* bumps bearssl * updates version of bearssl in lockfiles * fixes that checksum * attempt to bump various dependencies * updates asynctest version tag * asynctest sha * bumps to working version of nim-datastore * adjusts asynctest imports for chronos * chronos checksum * checksum for datastore * libp2p version tag * libp2p checksum * moves libp2p from codex-branch to latest master * libp2p checksum * splits the test dependencies from the dev dependencies (example nim-ethers) * sets path * pathing in tests * oops wrong version * adds build.nims to installfiles for test module * attempt to fix import paths * bumps nim-datastore * datastore checksum * greatly simplify CI * fixes asynctest import * builds parallel tests before running * bumps datastore * turns nim-stable back off * pins nim-datastore version * bumps checkout to v4 * Review comment by Mark Co-authored-by: markspanbroek <mark@spanbroek.net> * Review comment by Mark Co-authored-by: markspanbroek <mark@spanbroek.net> --------- Co-authored-by: markspanbroek <mark@spanbroek.net>
74 lines
3.2 KiB
Nim
74 lines
3.2 KiB
Nim
import std / [os, strutils, sequtils]
|
|
|
|
task testAll, "Run DHT tests":
|
|
exec "nim c -r test.nim"
|
|
rmFile "./test"
|
|
|
|
task compileParallelTests, "Compile parallel tests":
|
|
exec "nim c --hints:off --verbosity:0 dht/test_providers.nim"
|
|
exec "nim c --hints:off --verbosity:0 dht/test_providermngr.nim"
|
|
exec "nim c --hints:off --verbosity:0 discv5/test_discoveryv5.nim"
|
|
exec "nim c --hints:off --verbosity:0 discv5/test_discoveryv5_encoding.nim"
|
|
|
|
task test, "Run DHT tests":
|
|
# compile with trace logging to make sure it doesn't crash
|
|
exec "nim c -d:testsAll -d:chronicles_enabled=on -d:chronicles_log_level=TRACE test.nim"
|
|
rmFile "./test"
|
|
compileParallelTestsTask()
|
|
exec "nim c -r -d:testsAll --verbosity:0 testAllParallel.nim"
|
|
rmFile "./testAllParallel"
|
|
|
|
task testPart1, "Run DHT tests A":
|
|
compileParallelTestsTask()
|
|
exec "nim c -r -d:testsPart1 testAllParallel.nim"
|
|
rmFile "./testAllParallel"
|
|
|
|
task testPart2, "Run DHT tests B":
|
|
compileParallelTestsTask()
|
|
exec "nim c -r -d:testsPart2 testAllParallel.nim"
|
|
rmFile "./testAllParallel"
|
|
|
|
task coverage, "generates code coverage report":
|
|
var (output, exitCode) = gorgeEx("which lcov")
|
|
if exitCode != 0:
|
|
echo ""
|
|
echo " ************************** ⛔️ ERROR ⛔️ **************************"
|
|
echo " ** **"
|
|
echo " ** ERROR: lcov not found, it must be installed to run code **"
|
|
echo " ** coverage locally **"
|
|
echo " ** **"
|
|
echo " *****************************************************************"
|
|
echo ""
|
|
quit 1
|
|
|
|
(output, exitCode) = gorgeEx("gcov --version")
|
|
if output.contains("Apple LLVM"):
|
|
echo ""
|
|
echo " ************************* ⚠️ WARNING ⚠️ *************************"
|
|
echo " ** **"
|
|
echo " ** WARNING: Using Apple's llvm-cov in place of gcov, which **"
|
|
echo " ** emulates an old version of gcov (4.2.0) and therefore **"
|
|
echo " ** coverage results will differ than those on CI (which **"
|
|
echo " ** uses a much newer version of gcov). **"
|
|
echo " ** **"
|
|
echo " *****************************************************************"
|
|
echo ""
|
|
|
|
var nimSrcs = ""
|
|
for f in walkDirRec(".", {pcFile}):
|
|
if f.endswith(".nim"): nimSrcs.add " " & f.absolutePath.quoteShell()
|
|
|
|
echo "======== Running Tests ======== "
|
|
exec("nim c -r coverage.nim")
|
|
exec("rm nimcache/*.c")
|
|
rmDir("coverage"); mkDir("coverage")
|
|
echo " ======== Running LCOV ======== "
|
|
exec("lcov --capture --directory nimcache --output-file coverage/coverage.info")
|
|
exec("lcov --extract coverage/coverage.info --output-file coverage/coverage.f.info " & nimSrcs)
|
|
echo " ======== Generating HTML coverage report ======== "
|
|
exec("genhtml coverage/coverage.f.info --output-directory coverage/report ")
|
|
echo " ======== Opening HTML coverage report in browser... ======== "
|
|
if findExe("open") != "":
|
|
exec("open coverage/report/index.html")
|
|
|