Skip to content

Tests comparing against cardano-cli, on top of cardano-testnet and tx-generator - #8

Merged
palas merged 13 commits into
jmiller/dijkstra-integrationfrom
testnet-tx-gen-tests
Jul 3, 2026
Merged

Tests comparing against cardano-cli, on top of cardano-testnet and tx-generator#8
palas merged 13 commits into
jmiller/dijkstra-integrationfrom
testnet-tx-gen-tests

Retry on failure

13dd54a
Select commit
Loading
Failed to load commit list.
IOG Hydra / ci/hydra-build:x86_64-linux.required failed Jul 3, 2026 in 0s

Build dependency failed

1 failed steps

Details

Failed Steps

Step 1

Derivation

/nix/store/rkcvr61hchwbab4k6jpkq5bj24n8sk8p-ogmios-test-unit-0-check.drv

Log

Running phase: unpackPhase
unpacking source archive /nix/store/ad5z79638s982l1hxfcbmnmy2sg0vyws-ogmios-src-test-unit-root
source root is ogmios-src-test-unit-root
Running phase: patchPhase
Running phase: buildPhase
/nix/store/2kjkpan41jca224j8a0la1dzpn1fmn92-ogmios-test-unit-0/bin:
patching script interpreter paths in /build/tmp.uWKPNx8qjO/bin

Ogmios.App.Protocol
  onUnmatchedMessage
    %$@#$ => must be a well-formed JSON object [✔]
    {} => 'method' must be present [✔]
    {"method":"queryLedgerState"} => missing required field 'jsonrpc' [✔]
    {"jsonrpc":"2.0","method":"??"} => unknown method in 'method' [✔]
    {"id":{"requestId":42},"method":"submitTransaction"} => missing required field 'jsonrpc' [✔]
Ogmios.App.Protocol.ChainSync
  ChainSync
    Basic send/recv [✔]
      +++ OK, passed 200 tests:
      50.5% without mirror
      49.5% with mirror
    Saturate in-flight queue [✔]
      +++ OK, passed 100 tests:
      66% =~ maxInFlight
      45% > maxInFlight
      41% < maxInFlight
    Interleave findIntersection with nextBlock [✔]
      +++ OK, passed 400 tests:
      27.8% -mirror -mirror
      26.2% +mirror +mirror
      24.0% -mirror +mirror
      22.0% +mirror -mirror
Ogmios.App.Protocol.TxMonitor
  TxMonitor
    Any sequence acquire/has/next/size is valid [✔]
      +++ OK, passed 100 tests:
      27% NextTransaction then HasTransaction
       7% Multiple NextTransaction
       4% AcquireMempool twice
    Can and must query after acquiring [✔]
      +++ OK, passed 100 tests:
      60% NextTransaction
      19% HasTransaction
      15% SizeOfMempool
       6% ReleaseMempool
Ogmios.App.Protocol.TxSubmission
  newEvaluateTransactionResponse
    resulting UTxO is the union of network <> user-defined [✔]
      +++ OK, passed 100 tests:
      90% none = ø
       6% user = ø
       5% network = ø
       1% both = ø
    succeeds when fully identical [✔]
      +++ OK, passed 100 tests.
    fails on ambiguous intersection [✔]
      +++ OK, passed 100 tests.
Ogmios.Data.Health
  Eq/Show/Json
    Health / Health {startTime = 2026-06-04 15:49:13.479826279 UTC, lastKnownTip = TipGenesis, lastTipUpdate = Nothing, networkSynchronization = Nothing, currentEra = Nothing, metrics = Metrics {runtimeStats = RuntimeStats {maxHeapSize = 0, currentHeapSize = 0, cpuTime = 0, gcCpuTime = 0}, activeConnections = 0, totalConnections = 0, sessionDurations = DistributionStats {mean = 0.0, min = 0.0, max = 0.0}, totalMessages = 0, totalUnrouted = 0}, connectionStatus = Disconnected, currentEpoch = Nothing, slotInEpoch = Nothing, version = "nightly (unknown )", network = Nothing} / "{\"startTime\":\"2026-06-04T15:49:13.479826279Z\",\"lastKnownTip\":\"origin\",\"lastTipUpdate\":null,\"networkSynchronization\":null,\"currentEra\":null,\"metrics\":{\"activeConnections\":0,\"runtimeStats\":{\"cpuTime\":0,\"currentHeapSize\":0,\"gcCpuTime\":0,\"maxHeapSize\":0},\"sessionDurations\":{\"max\":0,\"mean\":0,\"min\":0},\"totalConnections\":0,\"totalMessages\":0,\"totalUnrouted\":0},\"connectionStatus\":\"disconnected\",\"currentEpoch\":null,\"slotInEpoch\":null,\"version\":\"nightly (unknown )\",\"network\":null}" [✔]
  NetworkSynchronization
    is encoded as plain decimals, no scientific notation
      NetworkSynchronization 1.0 -> "1.00000" [✔]
      NetworkSynchronization 0.1 -> "0.10000" [✔]
      NetworkSynchronization 1.0e-2 -> "0.01000" [✔]
      NetworkSynchronization 1.0e-3 -> "0.00100" [✔]
      NetworkSynchronization 1.0e-4 -> "0.00010" [✔]
      NetworkSynchronization 1.0e-5 -> "0.00001" [✔]
      NetworkSynchronization 1.0e-6 -> "0.00000" [✔]
    properties
      not always equal to 1 [✔]
        +++ OK, failed as expected. Falsified (after 1 test):
        SystemStart 2003-10-29 00:00:00.00000001346 UTC
        2004-01-08 00:03:43.00000001346 UTC
        RelativeTime 2918113s
        NetworkSynchronization 0.47567 /= NetworkSynchronization 1.0
      always between 0 and 1 [✔]
        +++ OK, passed 100 tests.
      increasing relative time increases synchronization [✔]
        +++ OK, passed 100 tests.
      is precise with a margin of 60s, rounded up [✔]
        +++ OK, passed 100 tests.
Ogmios.Data.Json
  JSON roundtrips
    encodeUtxo / decodeUtxo (Babbage) [✔]
      +++ OK, passed 100 tests.
    Golden: Utxo_1.json [✔]
    Golden: Utxo_2.json [✔]
    Golden: Utxo_3.json [✔]
    Golden: Utxo_4.json [✔]
    Golden: Script_Native_0.json [✔]
    Golden: SubmitTransactionFailure<3133> [✔]
    Golden: NextTransactionResponse_1 [✔]
    Data / BinaryData
      arbitrary [✔]
        +++ OK, passed 100 tests.
      Golden (1) [✔]
        +++ OK, passed 100 tests.
      Golden (2) [✔]
        +++ OK, passed 100 tests.
  SlotLength
    SlotLength 1s → "{\"milliseconds\":1000}" [✔]
    SlotLength 0.1s → "{\"milliseconds\":100}" [✔]
    SlotLength 42s → "{\"milliseconds\":42000}" [✔]
  RelativeTime
    Do not overflow [✔]
  validate chain-sync request/response against JSON-schema
    ogmios.json#/properties/FindIntersection [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/FindIntersectionResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/NextBlock [✔]
      +++ OK, passed 3 tests.
    ogmios.json#/properties/NextBlockResponse [✔]
      +++ OK, passed 50 tests.
  validate transaction submission request/response against JSON-schema
    deserialise signed transactions [✔]
      +++ OK, passed 100 tests.
    ogmios.json#/properties/SubmitTransactionResponse [✘]
    ogmios.json#/properties/EvaluateTransactionResponse [✔]
      +++ OK, passed 50 tests.
  validate mempool monitoring request/response against JSON-schema
    ogmios.json#/properties/AcquireMempool [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/AcquireMempoolResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/NextTransaction [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/NextTransactionResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/NextTransactionResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/HasTransaction [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/HasTransactionResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/SizeOfMempool [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/SizeOfMempoolResponse [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/ReleaseMempool [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/ReleaseMempoolResponse [✔]
      +++ OK, passed 10 tests.
  validate acquire request/response against JSON-schema
    ogmios.json#/properties/AcquireLedgerState [✔]
      +++ OK, passed 10 tests.
    ogmios.json#/properties/AcquireLedgerStateResponse [✔]
      +++ OK, passed 10 tests.
  validate local state queries against JSON-schema
    QueryLedgerStateEpoch [✔]
    QueryLedgerStateEraStart [✔]
    QueryLedgerStateEraSummaries [✔]
    QueryLedgerStateTip [✔]
    QueryLedgerStateProjectedRewards [✔]
    QueryLedgerStateProjectedRewards [✔]
    QueryLedgerStateRewardAccountSummaries [✔]
    QueryLedgerStateProtocolParameters [✔]
    QueryLedgerStateLiveStakeDistribution [✔]
    QueryLedgerStateUtxo [✔]
    QueryLedgerStateUtxo [✔]
    QueryLedgerStateUtxo [✔]
    QueryLedgerStateRewardsProvenance [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePools [✔]
    QueryLedgerStateStakePoolsPerformances [✔]
    QueryLedgerStateConstitution [✔]
    QueryLedgerStateConstitutionalCommittee [✔]
    QueryLedgerStateTreasuryAndReserves [✔]
    QueryLedgerStateGovernanceProposals [✔]
    QueryLedgerStateGovernanceProposals [✔]
    QueryLedgerStateDelegateRepresentatives [✔]
    QueryLedgerStateDelegateRepresentatives [✔]
    QueryLedgerStateDelegateRepresentatives [✔]
    QueryLedgerStateDelegateRepresentatives [✔]
    QueryLedgerStateDelegateRepresentatives [✔]
    QueryNetworkBlockHeight [✔]
    QueryNetworkGenesisConfiguration (Shelley) [✔]
    QueryNetworkGenesisConfiguration (Alonzo) [✔]
    QueryNetworkStartTime [✔]
    QueryNetworkTip [✔]
  validate release request/response against JSON-schema
    ogmios.json#/properties/ReleaseLedgerState [✔]
      +++ OK, passed 3 tests.
    ogmios.json#/properties/ReleaseLedgerStateResponse [✔]
      +++ OK, passed 3 tests.
Ogmios.Data.Metrics
  Eq/Show/Json
    Metrics / Metrics {runtimeStats = RuntimeStats {maxHeapSize = 0, currentHeapSize = 0, cpuTime = 0, gcCpuTime = 0}, activeConnections = 0, totalConnections = 0, sessionDurations = DistributionStats {mean = 0.0, min = 0.0, max = 0.0}, totalMessages = 0, totalUnrouted = 0} / "{\"activeConnections\":0,\"runtimeStats\":{\"cpuTime\":0,\"currentHeapSize\":0,\"gcCpuTime\":0,\"maxHeapSize\":0},\"sessionDurations\":{\"max\":0,\"mean\":0,\"min\":0},\"totalConnections\":0,\"totalMessages\":0,\"totalUnrouted\":0}" [✔]
    RuntimeStats / RuntimeStats {maxHeapSize = 0, currentHeapSize = 0, cpuTime = 0, gcCpuTime = 0} / "{\"cpuTime\":0,\"currentHeapSize\":0,\"gcCpuTime\":0,\"maxHeapSize\":0}" [✔]
    DistributionStats / DistributionStats {mean = 0.0, min = 0.0, max = 0.0} / "{\"max\":0,\"mean\":0,\"min\":0}" [✔]
Ogmios.Options
  parseOptions(Pure)
    Ogmios.OptionsSpec[63:13] [✔]
    --node-socket ./node.socket [✔]
    --node-config ./node.config [✔]
    --node-socket /path/to/socket --node-config ./node.config [✔]
    --node-socket ./node.socket --node-config /path/to/config [✔]
    --node-socket ./node.socket --node-config ./node.config --host 0.0.0.0 [✔]
    --node-socket ./node.socket --node-config ./node.config --port 42 [✔]
    --node-socket ./node.socket --node-config ./node.config --port # [✔]
    --node-socket ./node.socket --node-config ./node.config --include-cbor [✔]
    --node-socket ./node.socket --node-config ./node.config --include-transaction-cbor [✔]
    --node-socket ./node.socket --node-config ./node.config --include-cbor --include-transaction-cbor [✔]
    --node-socket ./node.socket --node-config ./node.config --timeout 42 [✔]
    --node-socket ./node.socket --node-config ./node.config --timeout # [✔]
    --node-socket ./node.socket --node-config ./node.config --max-in-flight 42 [✔]
    --node-socket ./node.socket --node-config ./node.config --max-in-flight # [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Debug [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level debug [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Info [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level info [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Notice [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level notice [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Warning [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level warning [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Error [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level error [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level-health Notice [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level-metrics Debug --log-level-websocket Warning [✔]
    --node-socket ./node.socket --node-config ./node.config --log-level Error --log-level-health Debug [✔]
    version [✔]
    -v [✔]
    --version [✔]
    --help [✔]
    -h [✔]
    invalid [✔]
    test completion [✔]
  parseOptions(IO)
    --version [✔]
    ["--node-socket","./node.socket","--node-config","/build/ogmios-src-test-unit-root/server/config/network/preview/cardano-node/config.json"] [✔]
  parseNetworkParameters
    mainnet [✔]
    preview [✔]
    preprod [✔]

Failures:

  test/unit/Ogmios/Data/JsonSpec.hs:310:5: 
  1) Ogmios.Data.Json, validate transaction submission request/response against JSON-schema, ogmios.json#/properties/SubmitTransactionResponse
       Assertion failed (after 36 tests):
         JSON:
         {
             "error": {
                 "code": 3004,
                 "data": {
                     "reason": "Uncomputable slot arithmetic; transaction's validity bounds go beyond the foreseeable end of the current era: �[ro%�Fw����4󳬳�컥"
                 },
                 "message": "Unable to create the evaluation context from the given transaction."
             },
             "id": null,
             "jsonrpc": "2.0",
             "method": "submitTransaction"
         }
         
         failed to validate one of given schemas:
             [0]
                 missing required property
                     required:  ["jsonrpc","method","result"] found:     ["result"]
             [0] invalid properties in object
                 invalid property 'error': failed to validate one of given schemas:
                     [0] invalid properties in object
                         invalid property 'code': should be one of the following values: 3005
         
                     [0] invalid properties in object
                         invalid property 'code': should be one of the following values: 3100
         
                     [1] invalid properties in object
                         invalid property 'code': should be one of the following values: 3101
         
                     [2] invalid properties in object
                         invalid property 'code': should be one of the following values: 3102
         
                     [3] invalid properties in object
                         invalid property 'code': should be one of the following values: 3103
         
                     [4] invalid properties in object
                         invalid property 'code': should be one of the following values: 3104
         
                     [5] invalid properties in object
                         invalid property 'code': should be one of the following values: 3105
         
                     [6] invalid properties in object
                         invalid property 'code': should be one of the following values: 3106
         
                     [7] invalid properties in object
                         invalid property 'code': should be one of the following values: 3107
         
                     [8] invalid properties in object
                         invalid property 'code': should be one of the following values: 3108
                         invalid additional properties
                     [9] invalid properties in object
                         invalid property 'code': should be one of the following values: 3109
         
                     [10] invalid properties in object
                         invalid property 'code': should be one of the following values: 3110
         
                     [11] invalid properties in object
                         invalid property 'code': should be one of the following values: 3111
         
                     [12] invalid properties in object
                         invalid property 'code': should be one of the following values: 3112
         
                     [13] invalid properties in object
                         invalid property 'code': should be one of the following values: 3113
         
                     [14] invalid properties in object
                         invalid property 'code': should be one of the following values: 3114
         
                     [15] invalid properties in object
                         invalid property 'code': should be one of the following values: 3115
         
                     [16] invalid properties in object
                         invalid property 'code': should be one of the following values: 3116
         
                     [17] invalid properties in object
                         invalid property 'code': should be one of the following values: 3117
         
                     [18] invalid properties in object
                         invalid property 'code': should be one of the following values: 3118
         
                     [19] invalid properties in object
                         invalid property 'code': should be one of the following values: 3119
         
                     [20] invalid properties in object
                         invalid property 'code': should be one of the following values: 3120
         
                     [21] invalid properties in object
                         invalid property 'code': should be one of the following values: 3121
                         invalid additional properties
                     [22] invalid properties in object
                         invalid property 'code': should be one of the following values: 3122
         
                     [23] invalid properties in object
                         invalid property 'code': should be one of the following values: 3123
         
                     [24] invalid properties in object
                         invalid property 'code': should be one of the following values: 3124
         
                     [25] invalid properties in object
                         invalid property 'code': should be one of the following values: 3125
         
                     [26] invalid properties in object
                         invalid property 'code': should be one of the following values: 3126
         
                     [27] invalid properties in object
                         invalid property 'code': should be one of the following values: 3127
                         invalid additional properties
                     [28] invalid properties in object
                         invalid property 'code': should be one of the following values: 3128
         
                     [29] invalid properties in object
                         invalid property 'code': should be one of the following values: 3129
         
                     [30] invalid properties in object
                         invalid property 'code': should be one of the following values: 3130
         
                     [31] invalid properties in object
                         invalid property 'code': should be one of the following values: 3131
         
                     [32] invalid properties in object
                         invalid property 'code': should be one of the following values: 3132
                         invalid additional properties
                     [33] invalid properties in object
                         invalid property 'code': should be one of the following values: 3133
         
                     [34] invalid properties in object
                         invalid property 'code': should be one of the following values: 3134
         
                     [35] invalid properties in object
                         invalid property 'code': should be one of the following values: 3135
         
                     [36] invalid properties in object
                         invalid property 'code': should be one of the following values: 3136
         
                     [37] invalid properties in object
                         invalid property 'code': should be one of the following values: 3137
         
                     [38] invalid properties in object
                         invalid property 'code': should be one of the following values: 3138
         
                     [39] invalid properties in object
                         invalid property 'code': should be one of the following values: 3139
                         invalid additional properties
                     [40] invalid properties in object
                         invalid property 'code': should be one of the following values: 3140
         
                     [41] invalid properties in object
                         invalid property 'code': should be one of the following values: 3141
         
                     [42] invalid properties in object
                         invalid property 'code': should be one of the following values: 3142
         
                     [43] invalid properties in object
                         invalid property 'code': should be one of the following values: 3143
         
                     [44] invalid properties in object
                         invalid property 'code': should be one of the following values: 3144
         
                     [45] invalid properties in object
                         invalid property 'code': should be one of the following values: 3145
         
                     [46] invalid properties in object
                         invalid property 'code': should be one of the following values: 3146
         
                     [47] invalid properties in object
                         invalid property 'code': should be one of the following values: 3147
         
                     [48] invalid properties in object
                         invalid property 'code': should be one of the following values: 3148
                         invalid additional properties
                     [49] invalid properties in object
                         invalid property 'code': should be one of the following values: 3149
                         invalid additional properties
                     [50] invalid properties in object
                         invalid property 'code': should be one of the following values: 3150
         
                     [51] invalid properties in object
                         invalid property 'code': should be one of the following values: 3151
         
                     [52] invalid properties in object
                         invalid property 'code': should be one of the following values: 3152
         
                     [53] invalid properties in object
                         invalid property 'code': should be one of the following values: 3153
         
                     [54] invalid properties in object
                         invalid property 'code': should be one of the following values: 3154
         
                     [55] invalid properties in object
                         invalid property 'code': should be one of the following values: 3155
         
                     [56] invalid properties in object
                         invalid property 'code': should be one of the following values: 3156
         
                     [57] invalid properties in object
                         invalid property 'code': should be one of the following values: 3157
         
                     [58] invalid properties in object
                         invalid property 'code': should be one of the following values: 3158
         
                     [59] invalid properties in object
                         invalid property 'code': should be one of the following values: 3159
         
                     [60] invalid properties in object
                         invalid property 'code': should be one of the following values: 3160
         
                     [61] invalid properties in object
                         invalid property 'code': should be one of the following values: 3161
         
                     [62] invalid properties in object
                         invalid property 'code': should be one of the following values: 3162
         
                     [63] invalid properties in object
                         invalid property 'code': should be one of the following values: 3163
         
                     [64] invalid properties in object
                         invalid property 'code': should be one of the following values: 3164
         
                     [65] invalid properties in object
                         invalid property 'code': should be one of the following values: 3165
                         invalid additional properties
                     [66] invalid properties in object
                         invalid property 'code': should be one of the following values: 3166
         
                     [67] invalid properties in object
                         invalid property 'code': should be one of the following values: 3167
         
                     [68] invalid properties in object
                         invalid property 'code': should be one of the following values: 3168
                         invalid additional properties
                     [69] invalid properties in object
                         invalid property 'code': should be one of the following values: 3997
                     [70] invalid properties in object
                         invalid property 'code': should be one of the following values: 3998
                         invalid additional properties
             [1] invalid properties in object
                 invalid property 'error': invalid properties in object
                     invalid property 'code': should be one of the following values: -32602
         
         

  To rerun use: --match "/Ogmios.Data.Json/validate transaction submission request/response against JSON-schema/ogmios.json#/properties/SubmitTransactionResponse/" --seed 1120387239

Randomized with seed 1120387239

Finished in 77.1217 seconds
140 examples, 1 failure