From f364e8b57864cf59423535d8a0a7ce1e7a6070bf Mon Sep 17 00:00:00 2001 From: Matthew Wraith Date: Thu, 1 Dec 2022 00:06:07 -0800 Subject: [PATCH] Split test and bench out to separate packages --- benchmark/bitcoin-bench.cabal | 67 +++++++++ {data => benchmark/data}/block-758000.dat | 0 {data => benchmark/data}/block-758100.dat | 0 {data => benchmark/data}/block-758200.dat | 0 {data => benchmark/data}/block-758300.dat | 0 {data => benchmark/data}/tx-A.dat | 0 {data => benchmark/data}/tx-B.dat | 0 {data => benchmark/data}/tx-C.dat | 0 benchmark/package.yaml | 49 ++++++ bitcoin.cabal | 128 +--------------- hie.yaml | 8 +- package.yaml | 23 --- stack.yaml | 4 + test/bitcoin-test.cabal | 140 ++++++++++++++++++ {data => test/data}/bip341.json | 0 {data => test/data}/complex_psbt.json | 0 {data => test/data}/forkid_script_tests.json | 0 {data => test/data}/forkid_sighash.json | 0 {data => test/data}/key_io_invalid.json | 0 {data => test/data}/key_io_valid.json | 0 {data => test/data}/rfc6979DERabc.json | 0 {data => test/data}/rfc6979DERcore.json | 0 {data => test/data}/rfc6979abc.json | 0 {data => test/data}/rfc6979core.json | 0 {data => test/data}/script_tests.json | 0 {data => test/data}/sig_nonstrict.json | 0 {data => test/data}/sig_strict.json | 0 {data => test/data}/sighash.json | 0 .../data}/test_vectors_asserti3-2d_run01.txt | 0 .../data}/test_vectors_asserti3-2d_run02.txt | 0 .../data}/test_vectors_asserti3-2d_run03.txt | 0 .../data}/test_vectors_asserti3-2d_run04.txt | 0 .../data}/test_vectors_asserti3-2d_run05.txt | 0 .../data}/test_vectors_asserti3-2d_run06.txt | 0 .../data}/test_vectors_asserti3-2d_run07.txt | 0 .../data}/test_vectors_asserti3-2d_run08.txt | 0 .../data}/test_vectors_asserti3-2d_run09.txt | 0 .../data}/test_vectors_asserti3-2d_run10.txt | 0 .../data}/test_vectors_asserti3-2d_run11.txt | 0 .../data}/test_vectors_asserti3-2d_run12.txt | 0 test/{ => exec}/Spec.hs | 0 test/{ => lib}/Bitcoin/Address/Bech32Spec.hs | 0 test/{ => lib}/Bitcoin/AddressSpec.hs | 0 test/{ => lib}/Bitcoin/BlockSpec.hs | 0 test/{ => lib}/Bitcoin/Crypto/HashSpec.hs | 0 .../{ => lib}/Bitcoin/Crypto/SignatureSpec.hs | 0 test/{ => lib}/Bitcoin/Keys/ExtendedSpec.hs | 0 test/{ => lib}/Bitcoin/Keys/MnemonicSpec.hs | 0 test/{ => lib}/Bitcoin/KeysSpec.hs | 0 test/{ => lib}/Bitcoin/NetworkSpec.hs | 0 test/{ => lib}/Bitcoin/Orphans.hs | 0 test/{ => lib}/Bitcoin/ScriptSpec.hs | 0 .../Bitcoin/Transaction/PartialSpec.hs | 0 .../Bitcoin/Transaction/TaprootSpec.hs | 0 test/{ => lib}/Bitcoin/TransactionSpec.hs | 0 {src => test/lib}/Bitcoin/Util/Arbitrary.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Address.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Block.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Crypto.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Keys.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Message.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Network.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Script.hs | 0 .../Bitcoin/Util/Arbitrary/Transaction.hs | 0 .../lib}/Bitcoin/Util/Arbitrary/Util.hs | 0 test/{ => lib}/Bitcoin/UtilSpec.hs | 0 test/package.yaml | 58 ++++++++ 67 files changed, 325 insertions(+), 152 deletions(-) create mode 100644 benchmark/bitcoin-bench.cabal rename {data => benchmark/data}/block-758000.dat (100%) rename {data => benchmark/data}/block-758100.dat (100%) rename {data => benchmark/data}/block-758200.dat (100%) rename {data => benchmark/data}/block-758300.dat (100%) rename {data => benchmark/data}/tx-A.dat (100%) rename {data => benchmark/data}/tx-B.dat (100%) rename {data => benchmark/data}/tx-C.dat (100%) create mode 100644 benchmark/package.yaml create mode 100644 test/bitcoin-test.cabal rename {data => test/data}/bip341.json (100%) rename {data => test/data}/complex_psbt.json (100%) rename {data => test/data}/forkid_script_tests.json (100%) rename {data => test/data}/forkid_sighash.json (100%) rename {data => test/data}/key_io_invalid.json (100%) rename {data => test/data}/key_io_valid.json (100%) rename {data => test/data}/rfc6979DERabc.json (100%) rename {data => test/data}/rfc6979DERcore.json (100%) rename {data => test/data}/rfc6979abc.json (100%) rename {data => test/data}/rfc6979core.json (100%) rename {data => test/data}/script_tests.json (100%) rename {data => test/data}/sig_nonstrict.json (100%) rename {data => test/data}/sig_strict.json (100%) rename {data => test/data}/sighash.json (100%) rename {data => test/data}/test_vectors_asserti3-2d_run01.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run02.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run03.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run04.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run05.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run06.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run07.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run08.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run09.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run10.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run11.txt (100%) rename {data => test/data}/test_vectors_asserti3-2d_run12.txt (100%) rename test/{ => exec}/Spec.hs (100%) rename test/{ => lib}/Bitcoin/Address/Bech32Spec.hs (100%) rename test/{ => lib}/Bitcoin/AddressSpec.hs (100%) rename test/{ => lib}/Bitcoin/BlockSpec.hs (100%) rename test/{ => lib}/Bitcoin/Crypto/HashSpec.hs (100%) rename test/{ => lib}/Bitcoin/Crypto/SignatureSpec.hs (100%) rename test/{ => lib}/Bitcoin/Keys/ExtendedSpec.hs (100%) rename test/{ => lib}/Bitcoin/Keys/MnemonicSpec.hs (100%) rename test/{ => lib}/Bitcoin/KeysSpec.hs (100%) rename test/{ => lib}/Bitcoin/NetworkSpec.hs (100%) rename test/{ => lib}/Bitcoin/Orphans.hs (100%) rename test/{ => lib}/Bitcoin/ScriptSpec.hs (100%) rename test/{ => lib}/Bitcoin/Transaction/PartialSpec.hs (100%) rename test/{ => lib}/Bitcoin/Transaction/TaprootSpec.hs (100%) rename test/{ => lib}/Bitcoin/TransactionSpec.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Address.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Block.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Crypto.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Keys.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Message.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Network.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Script.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Transaction.hs (100%) rename {src => test/lib}/Bitcoin/Util/Arbitrary/Util.hs (100%) rename test/{ => lib}/Bitcoin/UtilSpec.hs (100%) create mode 100644 test/package.yaml diff --git a/benchmark/bitcoin-bench.cabal b/benchmark/bitcoin-bench.cabal new file mode 100644 index 00000000..ea717929 --- /dev/null +++ b/benchmark/bitcoin-bench.cabal @@ -0,0 +1,67 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.0. +-- +-- see: https://github.com/sol/hpack + +name: bitcoin-bench +version: 0.1.0 +synopsis: Bitcoin benchmark library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +author: Philippe Laprade, + Jean-Pierre Rupp, + Matthew Wraith, + Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +build-type: Simple +extra-source-files: + ./data/block-758000.dat + ./data/block-758100.dat + ./data/block-758200.dat + ./data/block-758300.dat + ./data/tx-A.dat + ./data/tx-B.dat + ./data/tx-C.dat + +source-repository head + type: git + location: git://github.com/haskell-bitcoin/bitcoin.git + +benchmark benchmark + type: exitcode-stdio-1.0 + main-is: Main.hs + other-modules: + Paths_bitcoin_bench + build-depends: + QuickCheck >=2.13.2 + , array >=0.5.4.0 + , base >=4.9 && <5 + , base16 >=0.3.0.1 + , binary >=0.8.8 + , bitcoin + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , criterion >=1.5 && <1.7 + , cryptonite >=0.30 + , deepseq >=1.4.4.0 + , entropy >=0.4.1.5 + , hashable >=1.3.0.0 + , hspec >=2.7.1 + , memory >=0.15.0 + , murmur3 >=1.0.3 + , network >=3.1.1.1 + , safe >=0.3.18 + , scientific >=0.3.6.2 + , secp256k1-haskell >=0.4.0 + , split >=0.2.3.3 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , time >=1.9.3 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + , vector >=0.12.1.2 + default-language: Haskell2010 diff --git a/data/block-758000.dat b/benchmark/data/block-758000.dat similarity index 100% rename from data/block-758000.dat rename to benchmark/data/block-758000.dat diff --git a/data/block-758100.dat b/benchmark/data/block-758100.dat similarity index 100% rename from data/block-758100.dat rename to benchmark/data/block-758100.dat diff --git a/data/block-758200.dat b/benchmark/data/block-758200.dat similarity index 100% rename from data/block-758200.dat rename to benchmark/data/block-758200.dat diff --git a/data/block-758300.dat b/benchmark/data/block-758300.dat similarity index 100% rename from data/block-758300.dat rename to benchmark/data/block-758300.dat diff --git a/data/tx-A.dat b/benchmark/data/tx-A.dat similarity index 100% rename from data/tx-A.dat rename to benchmark/data/tx-A.dat diff --git a/data/tx-B.dat b/benchmark/data/tx-B.dat similarity index 100% rename from data/tx-B.dat rename to benchmark/data/tx-B.dat diff --git a/data/tx-C.dat b/benchmark/data/tx-C.dat similarity index 100% rename from data/tx-C.dat rename to benchmark/data/tx-C.dat diff --git a/benchmark/package.yaml b/benchmark/package.yaml new file mode 100644 index 00000000..c20fd2cc --- /dev/null +++ b/benchmark/package.yaml @@ -0,0 +1,49 @@ +name: bitcoin-bench +version: 0.1.0 +synopsis: Bitcoin benchmark library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +author: + - Philippe Laprade + - Jean-Pierre Rupp + - Matthew Wraith + - Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +git: git://github.com/haskell-bitcoin/bitcoin.git +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +extra-source-files: + - ./data/*.dat # raw data for benchmarks +benchmarks: + benchmark: + main: Main.hs + dependencies: + - bitcoin + - criterion >=1.5 && <1.7 + - QuickCheck >=2.13.2 + - array >= 0.5.4.0 + - base >=4.9 && <5 + - base16 >= 0.3.0.1 + - binary >= 0.8.8 + - bytestring >= 0.10.10.0 + - containers >= 0.6.2.1 + - cryptonite >= 0.30 + - deepseq >= 1.4.4.0 + - entropy >= 0.4.1.5 + - hashable >= 1.3.0.0 + - hspec >= 2.7.1 + - memory >= 0.15.0 + - murmur3 >= 1.0.3 + - network >= 3.1.1.1 + - QuickCheck >= 2.13.2 + - split >= 0.2.3.3 + - safe >= 0.3.18 + - scientific >= 0.3.6.2 + - secp256k1-haskell >= 0.4.0 + - string-conversions >= 0.4.0.1 + - text >= 1.2.3.0 + - time >= 1.9.3 + - transformers >= 0.5.6.2 + - unordered-containers >= 0.2.10.0 + - vector >= 0.12.1.2 diff --git a/bitcoin.cabal b/bitcoin.cabal index f8acc0f2..7bf61c66 100644 --- a/bitcoin.cabal +++ b/bitcoin.cabal @@ -20,27 +20,6 @@ license: BSD3 license-file: LICENSE build-type: Simple extra-source-files: - data/bip341.json - data/complex_psbt.json - data/forkid_script_tests.json - data/forkid_sighash.json - data/key_io_invalid.json - data/key_io_valid.json - data/rfc6979abc.json - data/rfc6979core.json - data/rfc6979DERabc.json - data/rfc6979DERcore.json - data/script_tests.json - data/sig_nonstrict.json - data/sig_strict.json - data/sighash.json - data/block-758000.dat - data/block-758100.dat - data/block-758200.dat - data/block-758300.dat - data/tx-A.dat - data/tx-B.dat - data/tx-C.dat README.md CHANGELOG.md @@ -66,6 +45,7 @@ library Bitcoin.Keys Bitcoin.Keys.Common Bitcoin.Keys.Extended + Bitcoin.Keys.Extended.Internal Bitcoin.Keys.Mnemonic Bitcoin.Network Bitcoin.Network.Bloom @@ -84,119 +64,15 @@ library Bitcoin.Transaction.Segwit Bitcoin.Transaction.Taproot Bitcoin.Util - Bitcoin.Util.Arbitrary - Bitcoin.Util.Arbitrary.Address - Bitcoin.Util.Arbitrary.Block - Bitcoin.Util.Arbitrary.Crypto - Bitcoin.Util.Arbitrary.Keys - Bitcoin.Util.Arbitrary.Message - Bitcoin.Util.Arbitrary.Network - Bitcoin.Util.Arbitrary.Script - Bitcoin.Util.Arbitrary.Transaction - Bitcoin.Util.Arbitrary.Util - other-modules: - Bitcoin.Keys.Extended.Internal hs-source-dirs: src build-depends: - QuickCheck >=2.13.2 - , array >=0.5.4.0 - , base >=4.9 && <5 - , base16 >=0.3.0.1 - , binary >=0.8.8 - , bytestring >=0.10.10.0 - , containers >=0.6.2.1 - , cryptonite >=0.30 - , deepseq >=1.4.4.0 - , entropy >=0.4.1.5 - , hashable >=1.3.0.0 - , hspec >=2.7.1 - , memory >=0.15.0 - , murmur3 >=1.0.3 - , network >=3.1.1.1 - , safe >=0.3.18 - , scientific >=0.3.6.2 - , secp256k1-haskell >=0.4.0 - , split >=0.2.3.3 - , string-conversions >=0.4.0.1 - , text >=1.2.3.0 - , time >=1.9.3 - , transformers >=0.5.6.2 - , unordered-containers >=0.2.10.0 - , vector >=0.12.1.2 - default-language: Haskell2010 - -test-suite spec - type: exitcode-stdio-1.0 - main-is: Spec.hs - other-modules: - Bitcoin.Address.Bech32Spec - Bitcoin.AddressSpec - Bitcoin.BlockSpec - Bitcoin.Crypto.HashSpec - Bitcoin.Crypto.SignatureSpec - Bitcoin.Keys.ExtendedSpec - Bitcoin.Keys.MnemonicSpec - Bitcoin.KeysSpec - Bitcoin.NetworkSpec - Bitcoin.Orphans - Bitcoin.ScriptSpec - Bitcoin.Transaction.PartialSpec - Bitcoin.Transaction.TaprootSpec - Bitcoin.TransactionSpec - Bitcoin.UtilSpec - Paths_bitcoin - hs-source-dirs: - test - build-depends: - HUnit >=1.6.0.0 - , QuickCheck >=2.13.2 - , aeson >=1.4.6.0 - , array >=0.5.4.0 - , base >=4.9 && <5 - , base16 >=0.3.0.1 - , base64 ==0.4.* - , binary >=0.8.8 - , bitcoin - , bytestring >=0.10.10.0 - , containers >=0.6.2.1 - , cryptonite >=0.30 - , deepseq >=1.4.4.0 - , entropy >=0.4.1.5 - , hashable >=1.3.0.0 - , hspec >=2.7.1 - , memory >=0.15.0 - , murmur3 >=1.0.3 - , network >=3.1.1.1 - , safe >=0.3.18 - , scientific >=0.3.6.2 - , secp256k1-haskell >=0.4.0 - , split >=0.2.3.3 - , string-conversions >=0.4.0.1 - , text >=1.2.3.0 - , time >=1.9.3 - , transformers >=0.5.6.2 - , unordered-containers >=0.2.10.0 - , vector >=0.12.1.2 - default-language: Haskell2010 - -benchmark benchmark - type: exitcode-stdio-1.0 - main-is: Main.hs - other-modules: - Paths_bitcoin - hs-source-dirs: - benchmark - build-depends: - QuickCheck >=2.13.2 - , array >=0.5.4.0 + array >=0.5.4.0 , base >=4.9 && <5 , base16 >=0.3.0.1 , binary >=0.8.8 - , bitcoin , bytestring >=0.10.10.0 , containers >=0.6.2.1 - , criterion >=1.5 && <1.7 , cryptonite >=0.30 , deepseq >=1.4.4.0 , entropy >=0.4.1.5 diff --git a/hie.yaml b/hie.yaml index 0d77d33b..fa537012 100644 --- a/hie.yaml +++ b/hie.yaml @@ -3,8 +3,10 @@ cradle: - path: "./src" component: "bitcoin:lib" - - path: "./test" - component: "bitcoin:test:spec" + - path: "./test/lib" + component: "bitcoin-test:lib" + - path: "./test/exec/Spec.hs" + component: "bitcoin-test:test:spec" - path: "./benchmark" - component: "bitcoin:bench:benchmark" + component: "bitcoin-bench:bench:benchmark" diff --git a/package.yaml b/package.yaml index f69cd2dc..0271b690 100644 --- a/package.yaml +++ b/package.yaml @@ -15,8 +15,6 @@ homepage: http://github.com/haskell-bitcoin/bitcoin#readme git: git://github.com/haskell-bitcoin/bitcoin.git bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues extra-source-files: - - data/*.json # raw data for tests - - data/*.dat # raw data for benchmarks - README.md - CHANGELOG.md dependencies: @@ -34,7 +32,6 @@ dependencies: - memory >= 0.15.0 - murmur3 >= 1.0.3 - network >= 3.1.1.1 - - QuickCheck >= 2.13.2 - split >= 0.2.3.3 - safe >= 0.3.18 - scientific >= 0.3.6.2 @@ -47,26 +44,6 @@ dependencies: - vector >= 0.12.1.2 library: source-dirs: src - other-modules: Bitcoin.Keys.Extended.Internal when: - condition: false other-modules: Paths_bitcoin -tests: - spec: - main: Spec.hs - source-dirs: test - dependencies: - - aeson >= 1.4.6.0 - - base64 ^>= 0.4 - - bitcoin - - hspec >= 2.7.1 - - HUnit >= 1.6.0.0 - - QuickCheck >= 2.13.2 -benchmarks: - benchmark: - main: Main.hs - source-dirs: benchmark - dependencies: - - bitcoin - - criterion >=1.5 && <1.7 - - QuickCheck >=2.13.2 diff --git a/stack.yaml b/stack.yaml index 5a6a9190..fc4c0fa8 100644 --- a/stack.yaml +++ b/stack.yaml @@ -7,3 +7,7 @@ nix: extra-deps: - fourmolu-0.8.2.0 - cryptonite-0.30 +packages: + - . + - ./test + - ./benchmark diff --git a/test/bitcoin-test.cabal b/test/bitcoin-test.cabal new file mode 100644 index 00000000..19a84684 --- /dev/null +++ b/test/bitcoin-test.cabal @@ -0,0 +1,140 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.35.0. +-- +-- see: https://github.com/sol/hpack + +name: bitcoin-test +version: 0.1.0 +synopsis: Bitcoin test library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +author: Philippe Laprade, + Jean-Pierre Rupp, + Matthew Wraith, + Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +build-type: Simple +extra-source-files: + ./data/bip341.json + ./data/complex_psbt.json + ./data/forkid_script_tests.json + ./data/forkid_sighash.json + ./data/key_io_invalid.json + ./data/key_io_valid.json + ./data/rfc6979abc.json + ./data/rfc6979core.json + ./data/rfc6979DERabc.json + ./data/rfc6979DERcore.json + ./data/script_tests.json + ./data/sig_nonstrict.json + ./data/sig_strict.json + ./data/sighash.json + +source-repository head + type: git + location: git://github.com/haskell-bitcoin/bitcoin.git + +library + exposed-modules: + Bitcoin.Address.Bech32Spec + Bitcoin.AddressSpec + Bitcoin.BlockSpec + Bitcoin.Crypto.HashSpec + Bitcoin.Crypto.SignatureSpec + Bitcoin.Keys.ExtendedSpec + Bitcoin.Keys.MnemonicSpec + Bitcoin.KeysSpec + Bitcoin.NetworkSpec + Bitcoin.Orphans + Bitcoin.ScriptSpec + Bitcoin.Transaction.PartialSpec + Bitcoin.Transaction.TaprootSpec + Bitcoin.TransactionSpec + Bitcoin.Util.Arbitrary + Bitcoin.Util.Arbitrary.Address + Bitcoin.Util.Arbitrary.Block + Bitcoin.Util.Arbitrary.Crypto + Bitcoin.Util.Arbitrary.Keys + Bitcoin.Util.Arbitrary.Message + Bitcoin.Util.Arbitrary.Network + Bitcoin.Util.Arbitrary.Script + Bitcoin.Util.Arbitrary.Transaction + Bitcoin.Util.Arbitrary.Util + Bitcoin.UtilSpec + hs-source-dirs: + lib + build-depends: + HUnit >=1.6.0.0 + , QuickCheck >=2.13.2 + , aeson >=1.4.6.0 + , array >=0.5.4.0 + , base >=4.9 && <5 + , base16 >=0.3.0.1 + , base64 ==0.4.* + , binary >=0.8.8 + , bitcoin + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , cryptonite >=0.30 + , deepseq >=1.4.4.0 + , entropy >=0.4.1.5 + , hashable >=1.3.0.0 + , hspec >=2.7.1 + , memory >=0.15.0 + , murmur3 >=1.0.3 + , network >=3.1.1.1 + , safe >=0.3.18 + , scientific >=0.3.6.2 + , secp256k1-haskell >=0.4.0 + , split >=0.2.3.3 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , time >=1.9.3 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + , vector >=0.12.1.2 + default-language: Haskell2010 + +test-suite spec + type: exitcode-stdio-1.0 + main-is: Spec.hs + other-modules: + Paths_bitcoin_test + hs-source-dirs: + exec + build-depends: + HUnit >=1.6.0.0 + , QuickCheck >=2.13.2 + , aeson >=1.4.6.0 + , array >=0.5.4.0 + , base >=4.9 && <5 + , base16 >=0.3.0.1 + , base64 ==0.4.* + , binary >=0.8.8 + , bitcoin + , bitcoin-test + , bytestring >=0.10.10.0 + , containers >=0.6.2.1 + , cryptonite >=0.30 + , deepseq >=1.4.4.0 + , entropy >=0.4.1.5 + , hashable >=1.3.0.0 + , hspec >=2.7.1 + , memory >=0.15.0 + , murmur3 >=1.0.3 + , network >=3.1.1.1 + , safe >=0.3.18 + , scientific >=0.3.6.2 + , secp256k1-haskell >=0.4.0 + , split >=0.2.3.3 + , string-conversions >=0.4.0.1 + , text >=1.2.3.0 + , time >=1.9.3 + , transformers >=0.5.6.2 + , unordered-containers >=0.2.10.0 + , vector >=0.12.1.2 + default-language: Haskell2010 diff --git a/data/bip341.json b/test/data/bip341.json similarity index 100% rename from data/bip341.json rename to test/data/bip341.json diff --git a/data/complex_psbt.json b/test/data/complex_psbt.json similarity index 100% rename from data/complex_psbt.json rename to test/data/complex_psbt.json diff --git a/data/forkid_script_tests.json b/test/data/forkid_script_tests.json similarity index 100% rename from data/forkid_script_tests.json rename to test/data/forkid_script_tests.json diff --git a/data/forkid_sighash.json b/test/data/forkid_sighash.json similarity index 100% rename from data/forkid_sighash.json rename to test/data/forkid_sighash.json diff --git a/data/key_io_invalid.json b/test/data/key_io_invalid.json similarity index 100% rename from data/key_io_invalid.json rename to test/data/key_io_invalid.json diff --git a/data/key_io_valid.json b/test/data/key_io_valid.json similarity index 100% rename from data/key_io_valid.json rename to test/data/key_io_valid.json diff --git a/data/rfc6979DERabc.json b/test/data/rfc6979DERabc.json similarity index 100% rename from data/rfc6979DERabc.json rename to test/data/rfc6979DERabc.json diff --git a/data/rfc6979DERcore.json b/test/data/rfc6979DERcore.json similarity index 100% rename from data/rfc6979DERcore.json rename to test/data/rfc6979DERcore.json diff --git a/data/rfc6979abc.json b/test/data/rfc6979abc.json similarity index 100% rename from data/rfc6979abc.json rename to test/data/rfc6979abc.json diff --git a/data/rfc6979core.json b/test/data/rfc6979core.json similarity index 100% rename from data/rfc6979core.json rename to test/data/rfc6979core.json diff --git a/data/script_tests.json b/test/data/script_tests.json similarity index 100% rename from data/script_tests.json rename to test/data/script_tests.json diff --git a/data/sig_nonstrict.json b/test/data/sig_nonstrict.json similarity index 100% rename from data/sig_nonstrict.json rename to test/data/sig_nonstrict.json diff --git a/data/sig_strict.json b/test/data/sig_strict.json similarity index 100% rename from data/sig_strict.json rename to test/data/sig_strict.json diff --git a/data/sighash.json b/test/data/sighash.json similarity index 100% rename from data/sighash.json rename to test/data/sighash.json diff --git a/data/test_vectors_asserti3-2d_run01.txt b/test/data/test_vectors_asserti3-2d_run01.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run01.txt rename to test/data/test_vectors_asserti3-2d_run01.txt diff --git a/data/test_vectors_asserti3-2d_run02.txt b/test/data/test_vectors_asserti3-2d_run02.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run02.txt rename to test/data/test_vectors_asserti3-2d_run02.txt diff --git a/data/test_vectors_asserti3-2d_run03.txt b/test/data/test_vectors_asserti3-2d_run03.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run03.txt rename to test/data/test_vectors_asserti3-2d_run03.txt diff --git a/data/test_vectors_asserti3-2d_run04.txt b/test/data/test_vectors_asserti3-2d_run04.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run04.txt rename to test/data/test_vectors_asserti3-2d_run04.txt diff --git a/data/test_vectors_asserti3-2d_run05.txt b/test/data/test_vectors_asserti3-2d_run05.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run05.txt rename to test/data/test_vectors_asserti3-2d_run05.txt diff --git a/data/test_vectors_asserti3-2d_run06.txt b/test/data/test_vectors_asserti3-2d_run06.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run06.txt rename to test/data/test_vectors_asserti3-2d_run06.txt diff --git a/data/test_vectors_asserti3-2d_run07.txt b/test/data/test_vectors_asserti3-2d_run07.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run07.txt rename to test/data/test_vectors_asserti3-2d_run07.txt diff --git a/data/test_vectors_asserti3-2d_run08.txt b/test/data/test_vectors_asserti3-2d_run08.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run08.txt rename to test/data/test_vectors_asserti3-2d_run08.txt diff --git a/data/test_vectors_asserti3-2d_run09.txt b/test/data/test_vectors_asserti3-2d_run09.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run09.txt rename to test/data/test_vectors_asserti3-2d_run09.txt diff --git a/data/test_vectors_asserti3-2d_run10.txt b/test/data/test_vectors_asserti3-2d_run10.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run10.txt rename to test/data/test_vectors_asserti3-2d_run10.txt diff --git a/data/test_vectors_asserti3-2d_run11.txt b/test/data/test_vectors_asserti3-2d_run11.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run11.txt rename to test/data/test_vectors_asserti3-2d_run11.txt diff --git a/data/test_vectors_asserti3-2d_run12.txt b/test/data/test_vectors_asserti3-2d_run12.txt similarity index 100% rename from data/test_vectors_asserti3-2d_run12.txt rename to test/data/test_vectors_asserti3-2d_run12.txt diff --git a/test/Spec.hs b/test/exec/Spec.hs similarity index 100% rename from test/Spec.hs rename to test/exec/Spec.hs diff --git a/test/Bitcoin/Address/Bech32Spec.hs b/test/lib/Bitcoin/Address/Bech32Spec.hs similarity index 100% rename from test/Bitcoin/Address/Bech32Spec.hs rename to test/lib/Bitcoin/Address/Bech32Spec.hs diff --git a/test/Bitcoin/AddressSpec.hs b/test/lib/Bitcoin/AddressSpec.hs similarity index 100% rename from test/Bitcoin/AddressSpec.hs rename to test/lib/Bitcoin/AddressSpec.hs diff --git a/test/Bitcoin/BlockSpec.hs b/test/lib/Bitcoin/BlockSpec.hs similarity index 100% rename from test/Bitcoin/BlockSpec.hs rename to test/lib/Bitcoin/BlockSpec.hs diff --git a/test/Bitcoin/Crypto/HashSpec.hs b/test/lib/Bitcoin/Crypto/HashSpec.hs similarity index 100% rename from test/Bitcoin/Crypto/HashSpec.hs rename to test/lib/Bitcoin/Crypto/HashSpec.hs diff --git a/test/Bitcoin/Crypto/SignatureSpec.hs b/test/lib/Bitcoin/Crypto/SignatureSpec.hs similarity index 100% rename from test/Bitcoin/Crypto/SignatureSpec.hs rename to test/lib/Bitcoin/Crypto/SignatureSpec.hs diff --git a/test/Bitcoin/Keys/ExtendedSpec.hs b/test/lib/Bitcoin/Keys/ExtendedSpec.hs similarity index 100% rename from test/Bitcoin/Keys/ExtendedSpec.hs rename to test/lib/Bitcoin/Keys/ExtendedSpec.hs diff --git a/test/Bitcoin/Keys/MnemonicSpec.hs b/test/lib/Bitcoin/Keys/MnemonicSpec.hs similarity index 100% rename from test/Bitcoin/Keys/MnemonicSpec.hs rename to test/lib/Bitcoin/Keys/MnemonicSpec.hs diff --git a/test/Bitcoin/KeysSpec.hs b/test/lib/Bitcoin/KeysSpec.hs similarity index 100% rename from test/Bitcoin/KeysSpec.hs rename to test/lib/Bitcoin/KeysSpec.hs diff --git a/test/Bitcoin/NetworkSpec.hs b/test/lib/Bitcoin/NetworkSpec.hs similarity index 100% rename from test/Bitcoin/NetworkSpec.hs rename to test/lib/Bitcoin/NetworkSpec.hs diff --git a/test/Bitcoin/Orphans.hs b/test/lib/Bitcoin/Orphans.hs similarity index 100% rename from test/Bitcoin/Orphans.hs rename to test/lib/Bitcoin/Orphans.hs diff --git a/test/Bitcoin/ScriptSpec.hs b/test/lib/Bitcoin/ScriptSpec.hs similarity index 100% rename from test/Bitcoin/ScriptSpec.hs rename to test/lib/Bitcoin/ScriptSpec.hs diff --git a/test/Bitcoin/Transaction/PartialSpec.hs b/test/lib/Bitcoin/Transaction/PartialSpec.hs similarity index 100% rename from test/Bitcoin/Transaction/PartialSpec.hs rename to test/lib/Bitcoin/Transaction/PartialSpec.hs diff --git a/test/Bitcoin/Transaction/TaprootSpec.hs b/test/lib/Bitcoin/Transaction/TaprootSpec.hs similarity index 100% rename from test/Bitcoin/Transaction/TaprootSpec.hs rename to test/lib/Bitcoin/Transaction/TaprootSpec.hs diff --git a/test/Bitcoin/TransactionSpec.hs b/test/lib/Bitcoin/TransactionSpec.hs similarity index 100% rename from test/Bitcoin/TransactionSpec.hs rename to test/lib/Bitcoin/TransactionSpec.hs diff --git a/src/Bitcoin/Util/Arbitrary.hs b/test/lib/Bitcoin/Util/Arbitrary.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary.hs rename to test/lib/Bitcoin/Util/Arbitrary.hs diff --git a/src/Bitcoin/Util/Arbitrary/Address.hs b/test/lib/Bitcoin/Util/Arbitrary/Address.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Address.hs rename to test/lib/Bitcoin/Util/Arbitrary/Address.hs diff --git a/src/Bitcoin/Util/Arbitrary/Block.hs b/test/lib/Bitcoin/Util/Arbitrary/Block.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Block.hs rename to test/lib/Bitcoin/Util/Arbitrary/Block.hs diff --git a/src/Bitcoin/Util/Arbitrary/Crypto.hs b/test/lib/Bitcoin/Util/Arbitrary/Crypto.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Crypto.hs rename to test/lib/Bitcoin/Util/Arbitrary/Crypto.hs diff --git a/src/Bitcoin/Util/Arbitrary/Keys.hs b/test/lib/Bitcoin/Util/Arbitrary/Keys.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Keys.hs rename to test/lib/Bitcoin/Util/Arbitrary/Keys.hs diff --git a/src/Bitcoin/Util/Arbitrary/Message.hs b/test/lib/Bitcoin/Util/Arbitrary/Message.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Message.hs rename to test/lib/Bitcoin/Util/Arbitrary/Message.hs diff --git a/src/Bitcoin/Util/Arbitrary/Network.hs b/test/lib/Bitcoin/Util/Arbitrary/Network.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Network.hs rename to test/lib/Bitcoin/Util/Arbitrary/Network.hs diff --git a/src/Bitcoin/Util/Arbitrary/Script.hs b/test/lib/Bitcoin/Util/Arbitrary/Script.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Script.hs rename to test/lib/Bitcoin/Util/Arbitrary/Script.hs diff --git a/src/Bitcoin/Util/Arbitrary/Transaction.hs b/test/lib/Bitcoin/Util/Arbitrary/Transaction.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Transaction.hs rename to test/lib/Bitcoin/Util/Arbitrary/Transaction.hs diff --git a/src/Bitcoin/Util/Arbitrary/Util.hs b/test/lib/Bitcoin/Util/Arbitrary/Util.hs similarity index 100% rename from src/Bitcoin/Util/Arbitrary/Util.hs rename to test/lib/Bitcoin/Util/Arbitrary/Util.hs diff --git a/test/Bitcoin/UtilSpec.hs b/test/lib/Bitcoin/UtilSpec.hs similarity index 100% rename from test/Bitcoin/UtilSpec.hs rename to test/lib/Bitcoin/UtilSpec.hs diff --git a/test/package.yaml b/test/package.yaml new file mode 100644 index 00000000..42ff29e7 --- /dev/null +++ b/test/package.yaml @@ -0,0 +1,58 @@ +name: bitcoin-test +version: 0.1.0 +synopsis: Bitcoin test library for Haskell +description: Please see the README on GitHub at +category: Bitcoin, Finance, Network +author: + - Philippe Laprade + - Jean-Pierre Rupp + - Matthew Wraith + - Keagan McClelland +maintainer: keagan.mcclelland@gmail.com +license: BSD3 +homepage: http://github.com/haskell-bitcoin/bitcoin#readme +git: git://github.com/haskell-bitcoin/bitcoin.git +bug-reports: http://github.com/haskell-bitcoin/bitcoin/issues +extra-source-files: + - ./data/*.json # raw data for tests +dependencies: + - bitcoin + - aeson >= 1.4.6.0 + - array >= 0.5.4.0 + - base >=4.9 && <5 + - base16 >= 0.3.0.1 + - binary >= 0.8.8 + - bytestring >= 0.10.10.0 + - containers >= 0.6.2.1 + - cryptonite >= 0.30 + - deepseq >= 1.4.4.0 + - entropy >= 0.4.1.5 + - hashable >= 1.3.0.0 + - hspec >= 2.7.1 + - memory >= 0.15.0 + - murmur3 >= 1.0.3 + - network >= 3.1.1.1 + - QuickCheck >= 2.13.2 + - split >= 0.2.3.3 + - safe >= 0.3.18 + - scientific >= 0.3.6.2 + - secp256k1-haskell >= 0.4.0 + - string-conversions >= 0.4.0.1 + - text >= 1.2.3.0 + - time >= 1.9.3 + - transformers >= 0.5.6.2 + - unordered-containers >= 0.2.10.0 + - vector >= 0.12.1.2 + - base64 ^>= 0.4 + - HUnit >= 1.6.0.0 +library: + source-dirs: lib + when: + - condition: false + other-modules: Paths_bitcoin_test +tests: + spec: + source-dirs: exec + main: Spec.hs + dependencies: + - bitcoin-test