diff --git a/.gitignore b/.gitignore index 584c0a3..49331ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +* +!*.* +!*/ coverage nimcache tests/testAll diff --git a/config.nims b/config.nims index 4d5fef5..81f7fef 100644 --- a/config.nims +++ b/config.nims @@ -8,7 +8,7 @@ task testAll, "Run DHT tests": exec "nim c -r tests/testAll.nim" task test, "Run DHT tests": - testAllTask() + exec "nim c -r --verbosity:0 tests/testAllParallel.nim" when getEnv("NIMBUS_BUILD_SYSTEM") == "yes" and # BEWARE diff --git a/tests/dht/test_helper.nim b/tests/dht/test_helper.nim index df1fd86..38772ca 100644 --- a/tests/dht/test_helper.nim +++ b/tests/dht/test_helper.nim @@ -53,7 +53,7 @@ proc nodeIdInNodes*(id: NodeId, nodes: openArray[Node]): bool = for n in nodes: if id == n.id: return true -proc generateNode*(privKey: PrivateKey, port: int = 20302, +proc generateNode*(privKey: PrivateKey, port: int, ip: ValidIpAddress = ValidIpAddress.init("127.0.0.1")): Node = let @@ -67,7 +67,7 @@ proc generateNRandomNodes*(rng: ref HmacDrbgContext, n: int): seq[Node] = for i in 1..n: let privKey = PrivateKey.example(rng) - node = privKey.generateNode() + node = privKey.generateNode(port = 20402 + 10*n) res.add(node) res @@ -76,7 +76,7 @@ proc nodeAndPrivKeyAtDistance*(n: Node, rng: var HmacDrbgContext, d: uint32, while true: let privKey = PrivateKey.random(rng).expect("Valid rng for private key") - node = privKey.generateNode(ip = ip) + node = privKey.generateNode(port = 21302 + 10*d.int, ip = ip) if logDistance(n.id, node.id) == d: return (node, privKey) diff --git a/tests/dht/test_providers.nim b/tests/dht/test_providers.nim index dab5174..3f01e52 100644 --- a/tests/dht/test_providers.nim +++ b/tests/dht/test_providers.nim @@ -34,7 +34,7 @@ proc bootstrapNodes( debug "---- STARTING BOOSTRAPS ---" for i in 0.. 0: @@ -53,7 +53,7 @@ proc bootstrapNetwork( bootNodeKey = PrivateKey.fromHex( "a2b50376a79b1a8c8a3296485572bdfbf54708bb46d3c25d73d2723aaaf6a617") .expect("Valid private key hex") - bootNodeAddr = localAddress(20301) + bootNodeAddr = localAddress(25311) bootNode = initDiscoveryNode(rng, bootNodeKey, bootNodeAddr, @[]) # just a shortcut for new and open #waitFor bootNode.bootstrap() # immediate, since no bootnodes are defined above diff --git a/tests/discv5/test_discoveryv5.nim b/tests/discv5/test_discoveryv5.nim index 5be5b39..1255569 100644 --- a/tests/discv5/test_discoveryv5.nim +++ b/tests/discv5/test_discoveryv5.nim @@ -22,13 +22,13 @@ suite "Discovery v5 Tests": pk = PrivateKey.example(rng) targetPk = PrivateKey.example(rng) node = initDiscoveryNode(rng, pk, localAddress(20302)) - targetNode = targetPk.generateNode() + targetNode = targetPk.generateNode(port=26302) check node.addNode(targetNode) for i in 0..<1000: let pk = PrivateKey.example(rng) - discard node.addNode(pk.generateNode()) + discard node.addNode(pk.generateNode(port=27302+i)) let n = node.getNode(targetNode.id) check n.isSome() @@ -265,7 +265,7 @@ suite "Discovery v5 Tests": # Generate 1000 random nodes and add to our main node's routing table for i in 0..<1000: - discard mainNode.addSeenNode(generateNode(PrivateKey.example(rng))) # for testing only! + discard mainNode.addSeenNode(generateNode(PrivateKey.example(rng), port=28302+i)) # for testing only! let neighbours = mainNode.neighbours(mainNode.localNode.id) diff --git a/tests/discv5/test_discoveryv5_encoding.nim b/tests/discv5/test_discoveryv5_encoding.nim index 68bf95c..e2c87bc 100644 --- a/tests/discv5/test_discoveryv5_encoding.nim +++ b/tests/discv5/test_discoveryv5_encoding.nim @@ -275,12 +275,12 @@ suite "Discovery v5.1 Packet Encodings Test Vectors": let enrRecA = SignedPeerRecord.init(1, privKeyA, - some(ValidIpAddress.init("127.0.0.1")), some(Port(9000)), - some(Port(9000))).expect("Properly intialized private key") + some(ValidIpAddress.init("127.0.0.1")), some(Port(9001)), + some(Port(9001))).expect("Properly intialized private key") enrRecB = SignedPeerRecord.init(1, privKeyB, - some(ValidIpAddress.init("127.0.0.1")), some(Port(9000)), - some(Port(9000))).expect("Properly intialized private key") + some(ValidIpAddress.init("127.0.0.1")), some(Port(9001)), + some(Port(9001))).expect("Properly intialized private key") nodeA = newNode(enrRecA).expect("Properly initialized record") nodeB = newNode(enrRecB).expect("Properly initialized record") @@ -508,12 +508,12 @@ suite "Discovery v5.1 Additional Encode/Decode": let enrRecA = SignedPeerRecord.init(1, privKeyA, - some(ValidIpAddress.init("127.0.0.1")), some(Port(9000)), - some(Port(9000))).expect("Properly intialized private key") + some(ValidIpAddress.init("127.0.0.1")), some(Port(9001)), + some(Port(9001))).expect("Properly intialized private key") enrRecB = SignedPeerRecord.init(1, privKeyB, - some(ValidIpAddress.init("127.0.0.1")), some(Port(9000)), - some(Port(9000))).expect("Properly intialized private key") + some(ValidIpAddress.init("127.0.0.1")), some(Port(9001)), + some(Port(9001))).expect("Properly intialized private key") nodeA = newNode(enrRecA).expect("Properly initialized record") nodeB = newNode(enrRecB).expect("Properly initialized record") diff --git a/tests/testAllParallel.nim b/tests/testAllParallel.nim new file mode 100644 index 0000000..be3a16f --- /dev/null +++ b/tests/testAllParallel.nim @@ -0,0 +1,14 @@ +# import +# ./dht/[test_providers, test_providermngr], +# ./discv5/[test_discoveryv5, test_discoveryv5_encoding] + +import osproc + +let cmds = [ + "nim c -r --verbosity:0 tests/dht/test_providers.nim", + "nim c -r --verbosity:0 tests/dht/test_providermngr.nim", + "nim c -r --verbosity:0 tests/discv5/test_discoveryv5.nim", + "nim c -r --verbosity:0 tests/discv5/test_discoveryv5_encoding.nim", +] + +quit execProcesses(cmds)