Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exposed Safety Analysis at Contract Creation and Input Application #850

Closed
wants to merge 16 commits into from

wip

9205c99
Select commit
Loading
Failed to load commit list.
Closed

Exposed Safety Analysis at Contract Creation and Input Application #850

wip
9205c99
Select commit
Loading
Failed to load commit list.
IOG Hydra / ci/hydra-build:aarch64-darwin.required failed Apr 17, 2024 in 7m 38s

Build dependency failed

1 failed steps

Details

Failed Steps

Step 1

Derivation

/nix/store/w5v240a922wby6gcx86930gmihiarrq1-marlowe-runtime-test-marlowe-runtime-test-0.0.6-check.drv

Log

unpacking sources
unpacking source archive /nix/store/zi4zq405xd0ymw71675zpvadipw2hpnx-source-root-marlowe-runtime-test-marlowe-runtime-test-root
source root is source-root-marlowe-runtime-test-marlowe-runtime-test-root
patching sources
building
/nix/store/iyq8w0s16wikg5nhjj7hvr2bwpm9y4ra-marlowe-runtime-test-marlowe-runtime-test-0.0.6/bin:
patching script interpreter paths in /private/tmp/nix-build-marlowe-runtime-test-marlowe-runtime-test-0.0.6-check.drv-0/tmp.p6Z9j6mQve/bin

Language.Marlowe.Protocol.BulkSync
  MarloweBulkSync protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        First time execution. Golden file created.
Language.Marlowe.Protocol.HeaderSync
  MarloweHeaderSync protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
Language.Marlowe.Protocol.Load
  MarloweLoad protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
    Merkleizes contract correctly [✔]
      +++ OK, passed 100 tests.
Language.Marlowe.Protocol.Query
  MarloweQuery protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
Language.Marlowe.Protocol.Sync
  MarloweSync protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
Language.Marlowe.Protocol.Transfer
  MarloweTransfer protocol
    Has a lawful codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
Language.Marlowe.Runtime.Core.Metadata
  prop: roundtrip encoding [✔]
    +++ OK, passed 100 tests.
Language.Marlowe.Runtime.Core.ScriptRegistry
  MarloweV1
    Contains the current scripts in its script set. [✔]
    Should specify the correct current scripts [✔]
Language.Marlowe.Runtime.Sync.Database.PostgreSQL.GetHeaders
  SQL queries
    Matches golden test for [] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyRole,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,Tag,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyRole,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RolesCurrency,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyRole,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Tag,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyRole,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyAddress] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyAddress,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyAddress,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [PartyAddress,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeAscending] [✔]
      Golden and Actual output didn't change
Language.Marlowe.Runtime.Sync.Database.PostgreSQL.GetPayouts
  SQL queries
    Matches golden test for [] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,ContractId,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Available,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,ContractId,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [Withdrawn,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [ContractId,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RoleToken] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RoleToken,RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RoleToken,RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RoleToken,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeStart] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeStart,RangeAscending] [✔]
      Golden and Actual output didn't change
    Matches golden test for [RangeAscending] [✔]
      Golden and Actual output didn't change
Language.Marlowe.Runtime.Transaction.Api
  CIP-25 Metadata
    uriGen is valid [✔]
      +++ OK, passed 400 tests:
      52.5% hasn't uriQuery
      52.2% hasn't uriPath
      51.7% has uriFragment
      51.5% has short uriScheme
      50.0% has uriAuthority
      50.0% hasn't uriAuthority
      48.5% has long uriScheme
      48.2% hasn't uriFragment
      47.8% has uriPath
      47.5% has uriQuery
      26.0% has uriAuthority and it hasn't uriPort
      25.8% has uriAuthority and it hasn't uriRegName
      25.2% has uriAuthority and it hasn't uriUserInfo
      24.8% has uriAuthority and it has uriUserInfo
      24.2% has uriAuthority and it has uriRegName
      24.0% has uriAuthority and it has uriPort
    NFTMetadataFile is valid [✔]
      +++ OK, passed 400 tests:
      90.5% some file details
      81.8% some file details has empty name
      80.8% some file details has name
       9.5% no file details
    NFTMetadataFile is sound [✔]
      +++ OK, passed 100 tests.
    RoleTokenMetadata JSON roundtrip [✔]
      +++ OK, passed 400 tests:
      53.2% has empty name
      52.2% has no mediaType
      46.8% has name
      35.2% has no description
      34.8% has not empty description
      30.0% has empty description
    RoleTokenMetadata Metadata roundtrip [✔]
      +++ OK, passed 400 tests:
      88.5% has name
      55.5% has not empty description
      31.8% has no description
      30.2% has no mediaType
      12.8% has empty description
      11.5% has empty name
    MediaType JSON roundtrip [✔]
      +++ OK, passed 100 tests.
Language.Marlowe.Runtime.Transaction.BuildConstraints
  buildCreateConstraints
    writes state with empty choices to marlowe output [✔]
      +++ OK, passed 100 tests.
    writes state with empty bound values to marlowe output [✔]
      +++ OK, passed 100 tests.
    writes state with min time 0 to marlowe output [✔]
      +++ OK, passed 100 tests.
    writes the contract to the marlowe output [✔]
      +++ OK, passed 100 tests.
    sends the minAda deposit to the marlowe output [✔]
      +++ OK, passed 100 tests.
    sends minted role tokens to the right destinations [✔]
      +++ OK, passed 100 tests.
    total balance == marlowe output assets [✔]
      +++ OK, passed 100 tests.
    Doesn't send any payments to addresses [✔]
      +++ OK, passed 100 tests.
    Doesn't send any payments to roles [✔]
      +++ OK, passed 100 tests.
    Doesn't consume any roles [✔]
      +++ OK, passed 100 tests.
    Doesn't consume a marlowe input [✔]
      +++ OK, passed 100 tests.
    Doesn't require extra signatures [✔]
      +++ OK, passed 100 tests.
    Writes the correct metadata [✔]
      +++ OK, passed 100 tests.
    Adds thread tokens to the initial state [✔]
      +++ OK, passed 100 tests; 41 discarded.
  buildWithdrawConstraints
    builds the correct constraints [✔]
      +++ OK, passed 100 tests.
  buildApplyInputsConstraints
    valid slot interval for timed-out contract [✔]
      +++ OK, passed 100 tests.
    valid slot interval for non-timed-out contract [✔]
      +++ OK, passed 100 tests.
    respects client-specified slot interval [✔]
      +++ OK, passed 100 tests.
    payment constraints [✔]
      +++ OK, passed 100 tests.
    input constraints [✔]
      +++ OK, passed 100 tests.
    output constraints [✔]
      +++ OK, passed 100 tests.
    metadata constraints [✔]
      +++ OK, passed 100 tests.
    signature constraints [✔]
      +++ OK, passed 100 tests.
    role constraints [✔]
      +++ OK, passed 100 tests.
Language.Marlowe.Runtime.Transaction.Command
  MarloweTxCommand
    It has a lawful Job protocol codec [✔]
      +++ OK, passed 100 tests.
    Message Golden Tests
      Matches the golden output [✔]
        Golden and Actual output didn't change
Language.Marlowe.Runtime.Transaction.Constraints
  regressions
    contract creation failure on one utxo wallet [✘]
  solveInitialTxBodyContent
    satisfies the constraints [✔]
      +++ OK, passed 100 tests.
  adjustTxForMinUtxo
    Marlowe output is NOT adjusted [✔]
      +++ OK, passed 100 tests.
    all outputs satisfy Cardano API minimum UTxO requirements [✔]
      +++ OK, passed 100 tests.
    all outputs are at least half an ADA [✔]
      +++ OK, passed 100 tests.
  selectCoins
    sufficient collateral is selected if possible [✔]
      +++ OK, passed 100 tests:
      77% Wallet has funds, selection succeeded
      14% Wallet does not have funds, selection failed
       9% Not a Plutus transaction
    selectCoins should increase the number of outputs by either 0 or exactly 1 [✔]
      +++ OK, passed 100 tests:
      93% outputs: wallet 1, tx before 1, tx after 2
       7% outputs: wallet 0, tx before 1, tx after 1
    selectCoins creates a balanceable tx [✔]
      +++ OK, passed 100 tests:
      93% WalletHasBoth
       7% WalletHasOnlyAda
  findMinUtxo
    pure lovelace [✔]
      +++ OK, passed 100 tests.
    minUTxO matches Cardano API [✔]
      +++ OK, passed 100 tests.
  ensureMinUtxo
    non-lovelace value is unchanged [✔]
      +++ OK, passed 100 tests.
    address is unchanged [✔]
      +++ OK, passed 100 tests.
    adjusted lovelace is greater of minUTxO and original lovelace [✔]
      +++ OK, passed 100 tests.
  balanceTx
    tx should balance for non-Plutus transactions where the wallet has sufficient funds [✔]
      +++ OK, passed 100 tests (100% balancing succeeded).
Language.Marlowe.Runtime.Transaction.RoleTokenFilter
  and-annulment [✔]
    +++ OK, passed 10000 tests.
  or-annulment [✔]
    +++ OK, passed 10000 tests.
  and-identity [✔]
    +++ OK, passed 10000 tests.
  or-identity [✔]
    +++ OK, passed 10000 tests.
  and-idempotent [✔]
    +++ OK, passed 10000 tests.
  or-idempotent [✔]
    +++ OK, passed 10000 tests.
  and-complement [✔]
    +++ OK, passed 10000 tests.
  or-complement [✔]
    +++ OK, passed 10000 tests.
  double-negation [✔]
    +++ OK, passed 10000 tests.
  and-commutative [✔]
    +++ OK, passed 10000 tests.
  or-commutative [✔]
    +++ OK, passed 10000 tests.
  distributive [✔]
    +++ OK, passed 10000 tests.
  inverse-distributive [✔]
    +++ OK, passed 10000 tests.
  and-absorption-1 [✔]
    +++ OK, passed 10000 tests.
  and-absorption-2 [✔]
    +++ OK, passed 10000 tests.
  or-absorption-1 [✔]
    +++ OK, passed 10000 tests.
  or-absorption-2 [✔]
    +++ OK, passed 10000 tests.
  and-de-morgan [✔]
    +++ OK, passed 10000 tests.
  or-de-morgan [✔]
    +++ OK, passed 10000 tests.
  consensus [✔]
    +++ OK, passed 10000 tests.
  null-contracts [✔]
    +++ OK, passed 10000 tests.
  null-policyIds [✔]
    +++ OK, passed 10000 tests.
  null-tokens [✔]
    +++ OK, passed 10000 tests.
  and-contracts [✔]
    +++ OK, passed 10000 tests.
  and-policyIds [✔]
    +++ OK, passed 10000 tests.
  and-tokens [✔]
    +++ OK, passed 10000 tests.
  and-policyIds-tokens [✔]
    +++ OK, passed 10000 tests.
  or-contracts [✔]
    +++ OK, passed 10000 tests.
  or-policyIds [✔]
    +++ OK, passed 10000 tests.
  or-tokens [✔]
    +++ OK, passed 10000 tests.
  or-policyIds-tokens [✔]
    +++ OK, passed 10000 tests.
  optimize [✔]
    +++ OK, passed 10000 tests.
Language.Marlowe.Runtime.Transaction.Safety
  minAdaUpperBound
    At least Cardano.Api [✔]
      +++ OK, passed 100 tests.
  checkContract
    Contract and state without roles [✔]
      +++ OK, passed 100 tests.
    Contract or state with roles from minting [✔]
      +++ OK, passed 100 tests.
    Contract or state with roles missing from minting [✔]
      +++ OK, passed 100 tests; 107 discarded.
    Contract or state with extra roles for minting [✔]
      +++ OK, passed 100 tests; 130 discarded.
    Contract or state with role name too long [✔]
      +++ OK, passed 100 tests.
    Marlowe with illegal token [✔]
      +++ OK, passed 100 tests.
    Contract with missing role currency but role token [✔]
      +++ OK, passed 100 tests.
    Contract with missing continuation [✔]
      +++ OK, passed 100 tests.
    Contract with inconsistent networks [✔]
      +++ OK, passed 100 tests.
    Contract on wrong network [✔]
      +++ OK, passed 100 tests.
    Contract with bad address [✔]
      +++ OK, passed 1 test.
  checkTransactions
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/escrow-with-collateral.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/revenue-based-loan.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/cardano-beam.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-pawned.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/guessing-game.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-with-royalty.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/pangram-2.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/contract-for-differences.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/simple-nft-purchase.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-purchase-with-stablecoin.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/escrow.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/coupon-bond-guaranteed.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-airdrop.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/serialization.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/swap-of-ada-and-dollar-token.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/pangram-1.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/covered-call.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-oracle.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/actus-pam.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/nft-swap.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/zero-coupon-bond.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/loan-with-nft-collateral.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/shared-nft.contract [✔]
    Passes for reference contract /nix/store/k5iiac7nbw8abdh0lmrs6yn58r857igv-marlowe-test-lib-marlowe-test-0.2.1.0-data/share/ghc-9.2.8/aarch64-osx-ghc-9.2.8/marlowe-test-0.2.1.0-FhfPWUsaVjrA1TVKL1A1MK/reference/data/contract-for-differences-with-oracle.contract [✔]
    Contract with prohibitive execution cost [✔]
      +++ OK, passed 1 test.
    Contract with prohibitive execution closure cost [✔]
      +++ OK, passed 1 test.
    Contract with open roles [✔]
      +++ OK, passed 1 test.

Failures:

  test/Language/Marlowe/Runtime/Transaction/ConstraintsSpec.hs:979:5: 
  1) Language.Marlowe.Runtime.Transaction.Constraints.regressions contract creation failure on one utxo wallet
       uncaught exception: IOException of type NoSuchThing
       marlowe-minting-validator: createProcess: posix_spawnp: does not exist (No such file or directory)

  To rerun use: --match "/Language.Marlowe.Runtime.Transaction.Constraints/regressions/contract creation failure on one utxo wallet/" --seed 1984026059

Randomized with seed 1984026059

Finished in 451.0523 seconds
245 examples, 1 failure