diff --git a/research/stack_sizes.nim b/research/stack_sizes.nim index c77bdbe82..aaeffea6b 100644 --- a/research/stack_sizes.nim +++ b/research/stack_sizes.nim @@ -5,12 +5,18 @@ # * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. +{.push raises: [].} + import ../beacon_chain/spec/datatypes/phase0 import std/[typetraits, strformat, strutils] proc print(t: auto, n: string, indent: int) = - echo fmt"{sizeof(t):>8} {spaces(indent)}{n}: {typeof(t).name}" + try: + echo fmt"{sizeof(t):>8} {spaces(indent)}{n}: {typeof(t).name}" + except ValueError: + # https://github.com/nim-lang/Nim/pull/23356 + raiseAssert "Arguments match the format string" when t is object|tuple: for n, p in t.fieldPairs: diff --git a/tests/test_discovery.nim b/tests/test_discovery.nim index 3c7957773..f33ed569a 100644 --- a/tests/test_discovery.nim +++ b/tests/test_discovery.nim @@ -5,6 +5,7 @@ # * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. +{.push raises: [].} {.used.} import @@ -19,14 +20,17 @@ proc new(T: type Eth2DiscoveryProtocol, enrIp: Option[IpAddress], enrTcpPort, enrUdpPort: Option[Port], bindPort: Port, bindIp: IpAddress, enrFields: openArray[(string, seq[byte])] = [], - rng: ref HmacDrbgContext): - T {.raises: [CatchableError].} = + rng: ref HmacDrbgContext): T = newProtocol(pk, enrIp, enrTcpPort, enrUdpPort, enrFields, bindPort = bindPort, bindIp = bindIp, rng = rng) proc generateNode(rng: ref HmacDrbgContext, port: Port, enrFields: openArray[(string, seq[byte])] = []): Eth2DiscoveryProtocol = - let ip = parseIpAddress("127.0.0.1") + let ip = + try: + parseIpAddress("127.0.0.1") + except ValueError: + raiseAssert "Argument is a valid IP address" Eth2DiscoveryProtocol.new(keys.PrivateKey.random(rng[]), some(ip), some(port), some(port), port, ip, enrFields, rng = rng) diff --git a/tests/test_signing_node.nim b/tests/test_signing_node.nim index 7e36e3d4f..909d1e929 100644 --- a/tests/test_signing_node.nim +++ b/tests/test_signing_node.nim @@ -1,10 +1,12 @@ -# nimbus_signing_node +# beacon_chain # Copyright (c) 2023-2024 Status Research & Development GmbH # Licensed and distributed under either of # * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT). # * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. +{.push raises: [].} + import std/algorithm, unittest2, chronicles, stew/[results, byteutils, io2], @@ -17,8 +19,6 @@ import from std/os import getEnv, osErrorMsg -{.push raises: [].} -{.pop.} # TODO want actual revert, so placate linter {.used.} const @@ -100,20 +100,25 @@ func init(T: type ForkedBeaconBlock, contents: ProduceBlockResponseV2): T = of ConsensusFork.Deneb: return ForkedBeaconBlock.init(contents.denebData.`block`) -proc getBlock(fork: ConsensusFork, - feeRecipient = SigningExpectedFeeRecipient): ForkedBeaconBlock = +proc getBlock( + fork: ConsensusFork, + feeRecipient = SigningExpectedFeeRecipient +): ForkedBeaconBlock {.raises: [ResultError[cstring]].} = let blckData = - case fork - of ConsensusFork.Phase0: Phase0Block - of ConsensusFork.Altair: AltairBlock - of ConsensusFork.Bellatrix: BellatrixBlock % [feeRecipient] - of ConsensusFork.Capella: CapellaBlock % [feeRecipient] - of ConsensusFork.Deneb: DenebBlockContents % [feeRecipient] + try: + case fork + of ConsensusFork.Phase0: Phase0Block + of ConsensusFork.Altair: AltairBlock + of ConsensusFork.Bellatrix: BellatrixBlock % [feeRecipient] + of ConsensusFork.Capella: CapellaBlock % [feeRecipient] + of ConsensusFork.Deneb: DenebBlockContents % [feeRecipient] + except ValueError: + # https://github.com/nim-lang/Nim/pull/23356 + raiseAssert "Arguments match the format string" contentType = ContentTypeData( mediaType: MediaType.init("application/json")) - let b = decodeBytes(ProduceBlockResponseV2, blckData.toOpenArrayByte(0, len(blckData) - 1), Opt.some(contentType),