Page MenuHomePhabricator

[bitcoinsuite-chronik-client] First iteration of creating a testrunner to run the whole bitcoinsuite-chronik-client tests and sync with python tests through IPC
DraftPublic

Authored by hazzarust on Sun, Jan 5, 11:37.
This is a draft revision that has not yet been submitted for review.

Details

Reviewers
Fabien
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Restricted Project
Summary

Will give comprehensive overview on 5th January evening

Test Plan

run cargo test -- --nocapture in bitcoinsuite-chronik-client. Please set your local path to BUILD_DIR within test_runner.rs

Event Timeline

Owners added a reviewer: Restricted Owners Package.Sun, Jan 5, 11:37

Tail of the build log:

   Compiling url v2.5.4
   Compiling prost-build v0.11.9
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling tokio-util v0.7.13
   Compiling tokio-native-tls v0.3.1
   Compiling h2 v0.3.26
   Compiling hyper v0.14.31
   Compiling hyper-tls v0.5.0
   Compiling reqwest v0.11.27
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished dev [unoptimized + debuginfo] target(s) in 22.72s
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
 Downloading crates ...
  Downloaded diff v0.1.13
  Downloaded pretty_assertions v1.4.1
  Downloaded yansi v1.0.1
   Compiling diff v0.1.13
   Compiling yansi v1.0.1
   Compiling pretty_assertions v1.4.1
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished test [unoptimized + debuginfo] target(s) in 2.96s
     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-9abf386928f16d45)

running 2 tests
test tests::test_constructor_trailing_slash ... ok
test tests::test_constructor_invalid_schema ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-4e989a3d5fac9ada)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-94ad25c4d0349173)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at /work/modules/bitcoinsuite-chronik-client/src/test_runner.rs:41:10:
Failed to start Python process: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to start Python process: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `--test test_chronik_info`
Build build-bitcoinsuite-chronik-client failed with exit code 101

Tail of the build log:

   Compiling chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
    Finished test [unoptimized + debuginfo] target(s) in 17.04s
warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_error-340064ead0136139)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_error.rs (/work/target/debug/deps/test_error-e97564cfff0c3ba1)

running 1 test
test test_error ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_lint-95bfaf7c76bca9d6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-eaec45d866783405)

running 2 tests
test tests::test_constructor_invalid_schema ... ok
test tests::test_constructor_trailing_slash ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-84a8685f91d5046e)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-2979153b0891fba2)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at /work/modules/bitcoinsuite-chronik-client/src/test_runner.rs:41:10:
Failed to start Python process: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to start Python process: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p bitcoinsuite-chronik-client --test test_chronik_info`
Build build-explorer failed with exit code 101

Tail of the build log:

   Compiling url v2.5.4
   Compiling prost-build v0.11.9
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling tokio-util v0.7.13
   Compiling tokio-native-tls v0.3.1
   Compiling h2 v0.3.26
   Compiling hyper v0.14.31
   Compiling hyper-tls v0.5.0
   Compiling reqwest v0.11.27
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished dev [unoptimized + debuginfo] target(s) in 19.54s
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
 Downloading crates ...
  Downloaded diff v0.1.13
  Downloaded pretty_assertions v1.4.1
  Downloaded yansi v1.0.1
   Compiling diff v0.1.13
   Compiling yansi v1.0.1
   Compiling pretty_assertions v1.4.1
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished test [unoptimized + debuginfo] target(s) in 2.89s
     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-9abf386928f16d45)

running 2 tests
test tests::test_constructor_trailing_slash ... ok
test tests::test_constructor_invalid_schema ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-4e989a3d5fac9ada)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-94ad25c4d0349173)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at /work/modules/bitcoinsuite-chronik-client/src/test_runner.rs:41:10:
Failed to start Python process: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to start Python process: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `--test test_chronik_info`
Build build-bitcoinsuite-chronik-client failed with exit code 101

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-agora@0.2.0 integration-tests
> mocha --import=tsx ./tests/*.test.ts --timeout 60000 --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-agora-integration-tests-junit.xml --reporter-options testsuitesTitle=Ecash Agora Integration Tests --reporter-options rootSuiteTitle=Ecash Agora

Test runner started
Starting Bitcoin ABC functional tests
Temporary test directory at /work/abc-ci-builds/ecash-agora-integration-tests/test/tmp/test_runner_₿₵_🏃_20250105_114536
...........
----------------------------------------------------------------------
Ran 11 tests in 0.055s

OK
SOCKET environment variable is not set.
Running Unit Tests for Test Framework Modules
setup_scripts/ecash-agora_base.py started
setup_scripts/ecash-agora_base.py failed, Duration: 0 s

stdout:

stderr:


TEST                              | STATUS    | DURATION

setup_scripts/ecash-agora_base.py | ✖ Failed  | 0 s

ALL                               | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner completed with code 1
------------|---------|----------|---------|---------|----------------------------------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                            
------------|---------|----------|---------|---------|----------------------------------------------
All files   |    7.99 |    13.36 |    6.09 |    8.05 |                                              
 ad.ts      |   12.96 |    26.31 |   33.33 |   12.96 | 33-100,127-146                               
 agora.ts   |    7.53 |     6.25 |    3.03 |    7.53 | 98-474,526-888,908-914                       
 consts.ts  |     100 |    83.33 |     100 |     100 | 1                                            
 index.ts   |       0 |        0 |       0 |       0 |                                              
 oneshot.ts |   10.12 |    35.71 |    6.25 |   10.38 | 77-223,234-251,263-270,279-286               
 partial.ts |    4.45 |     7.35 |    3.44 |     4.5 | ...1,1326-1336,1346-1365,1382-1389,1399-1406 
------------|---------|----------|---------|---------|----------------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='538']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='25']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='187']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='5']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='82']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='534']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

Test runner completed with code 1
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   31.95 |    30.26 |    20.9 |    32.2 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   44.94 |    34.03 |   25.28 |   45.59 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   57.14 |    83.33 |      40 |   57.14 | 23-31                        
  hash.ts                   |   66.66 |    83.33 |      40 |   66.66 | 14,17,20                     
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |     100 |      100 |     100 |     100 |                              
  op.ts                     |      40 |    44.44 |   66.66 |      40 | ...4,107,109,117-122,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   38.88 |       30 |      20 |   36.53 | 35-42,62-166,175-186         
  sigHashType.ts            |   76.31 |       44 |   71.42 |   76.31 | 26-58                        
  tx.ts                     |    32.6 |    20.83 |    9.09 |   34.09 | ...8,143-145,150-151,156,176 
  txBuilder.ts              |   16.12 |    17.24 |    7.14 |   16.66 | ...7,231-234,243-247,253-257 
  unsignedTx.ts             |   13.04 |     9.43 |       5 |   13.74 | ...9,336-340,344,350-351,356 
 ecash-lib/src/address      |    22.8 |    25.64 |    9.52 |      23 |                              
  address.ts                |   21.62 |       20 |    6.25 |   21.91 | ...3,239-240,255-256,266-344 
  legacyaddr.ts             |      25 |    35.71 |      20 |      25 | 15-19,23-38,70-111,124-128   
 ecash-lib/src/ffi          |    8.38 |     1.44 |    1.88 |    8.59 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   18.36 |        5 |    4.34 |   18.62 | ...0-155,171-243,250-251,255 
 ecash-lib/src/io           |   38.23 |    47.05 |   44.11 |   38.16 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   58.97 |     62.5 |      40 |   61.76 | 33-37,41-45,50,58,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   85.71 |    83.33 |   66.66 |   85.71 | 15                           
  varsize.ts                |      12 |    22.72 |   33.33 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   43.33 |    36.84 |    62.5 |   43.33 | 33,42-67,79                  
  writerlength.ts           |    62.5 |    83.33 |   57.14 |    62.5 | 26-36                        
 ecash-lib/src/test         |   42.68 |    35.41 |   36.84 |    42.1 |                              
  testRunner.ts             |   42.68 |    35.41 |   36.84 |    42.1 | ...-75,87-89,102-112,122-207 
 ecash-lib/src/token        |   27.37 |    28.57 |   13.33 |   27.52 |                              
  alp.ts                    |   18.29 |    26.31 |    8.33 |   18.29 | ...3,127-131,135-137,141-145 
  common.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |   46.15 |     62.5 |      25 |      50 | 11-14,22-28                  
  slp.ts                    |    28.2 |    13.51 |    7.69 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='456']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1427']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='161']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='532']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='51']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='244']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='448']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1391']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

   Compiling bitcoinsuite-slp v0.1.0 (/work/chronik/bitcoinsuite-slp)
   Compiling abc-rust-error v0.1.0 (/work/chronik/abc-rust-error)
   Compiling toml v0.8.19
   Compiling chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
   Compiling chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
   Compiling rocksdb v0.21.0
   Compiling chronik-db v0.1.0 (/work/chronik/chronik-db)
    Finished test [unoptimized + debuginfo] target(s) in 7m 42s
     Running unittests src/lib.rs (abc-ci-builds/build-chronik-plugins/cargo/build/debug/deps/chronik_db-15a222f1c3e67f4e)

running 37 tests
test groups::script::tests::test_script_group ... ok
test index_tx::tests::test_tx_num_cache ... ok
test io::merge::tests::test_catch_merge ... ok
test io::block_stats::tests::test_block_stats ... ok
test io::group_utxos::tests::test_value_group_utxos ... ok
test io::token::tests::test_batch_common::test_batch_skip_validation ... ok
test io::token::tests::test_batch_alp::test_batch_alp ... ok
test io::token::tests::test_batch_common::test_batch_cycle ... ok
test io::token::tests::test_batch_burn::test_batch_burn ... ok
test io::token::tests::test_batch_common::test_batch_topological_sort ... ok
test mem::group_history::tests::test_mempool_group_history ... ok
test mem::group_utxos::tests::test_mempool_group_utxos ... ok
test mem::spent_by::tests::test_mempool_spent_by ... ok
test io::group_history::tests::test_value_group_history ... ok
test io::token::tests::test_batch_disconnect_block::test_batch_disconnect ... ok
test io::token::tests::test_batch_genesis::test_batch_genesis_alp ... ok
test io::token::tests::test_batch_genesis::test_batch_genesis_slp_fungible ... ok
test io::token::tests::test_batch_nft::test_batch_slp_nft1 ... ok
test ser::tests::test_deserialize_err ... ok
test ser::tests::test_deserialize_leftover_err ... ok
test ser::tests::test_err_display_deserialize ... ok
test ser::tests::test_err_display_deserialize_leftover ... ok
test ser::tests::test_err_display_serialize ... ok
test ser::tests::test_roundtrip ... ok
test ser::tests::test_roundtrip_vec ... ok
test ser::tests::test_serialize_err ... ok
test io::token::tests::test_batch_unknown::test_batch_unknown ... ok
test plugins::io::tests::test_plugin_metas ... ok
test io::token::tests::test_batch_vault::test_batch_vault ... ok
test mem::tokens::tests::test_mempool_tokens ... ok
test io::spent_by::tests::test_spent_by ... ok
test reverse_lookup::tests::test_reverse_lookup ... ok
test plugins::io::tests::test_plugin_writer ... ok
test io::blocks::tests::test_blocks ... ok
test index_tx::tests::test_prepare_indexed_txs ... ok
test io::txs::tests::test_insert_txs ... ok
test reverse_lookup::tests::test_reverse_lookup_rng ... ok

test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.24s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

5 vulnerabilities (3 moderate, 2 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@2.1.1 integration-tests
> mocha -j1 -r ts-node/register test/integration/*.ts --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/chronik-client-integration-tests-junit.xml --reporter-options testsuitesTitle=Chronik Client Integration Tests --reporter-options rootSuiteTitle=Chronik Client

Starting test_runner for chronik-client_block_and_blocks
Test runner for chronik-client_block_and_blocks started
SOCKET environment variable is not set.
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_block_and_blocks.py started
setup_scripts/chronik-client_block_and_blocks.py failed, Duration: 0 s

stdout:

stderr:


TEST                                             | STATUS    | DURATION

setup_scripts/chronik-client_block_and_blocks.py | ✖ Failed  | 0 s

ALL                                              | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner for chronik-client_block_and_blocks completed with code 1
----------------------|---------|----------|---------|---------|------------------------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                  
----------------------|---------|----------|---------|---------|------------------------------------
All files             |    4.69 |     0.45 |    1.05 |    4.58 |                                    
 chronik-client       |     100 |      100 |     100 |     100 |                                    
  index.ts            |     100 |      100 |     100 |     100 |                                    
 chronik-client/proto |    3.87 |     0.49 |    1.38 |    3.91 |                                    
  chronik.ts          |    3.87 |     0.49 |    1.38 |    3.91 | ...7,6332-6371,6379-6483,6487-6496 
 chronik-client/src   |    8.33 |        0 |       0 |    7.59 |                                    
  ChronikClient.ts    |    4.91 |        0 |       0 |    4.91 | ...20-392,405-462,476-580,648-1451 
  failoverProxy.ts    |    4.67 |        0 |       0 |     4.8 | 33-327                             
  hex.ts              |   31.57 |        0 |       0 |   33.33 | 33-37,41-45,49-62,66-68            
  validation.ts       |   26.82 |        0 |       0 |   18.91 | 14-49,54-55,62-63,73-88            
----------------------|---------|----------|---------|---------|------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='147']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3132']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='12']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2645']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='6']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='567']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='142']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='3097']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

   Doc-tests chronik-bridge

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-db

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-http

running 1 test
test chronik/chronik-http/src/protobuf.rs - protobuf::Protobuf (line 29) ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s

   Doc-tests chronik-indexer

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-common

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-plugin-impl

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-proto

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests chronik-util

running 2 tests
test chronik/chronik-util/src/log.rs - log::log (line 65) ... ignored
test chronik/chronik-util/src/log.rs - log::log_chronik (line 87) ... ignored

test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s

ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

    Checking idna v1.0.3
    Checking dirs v5.0.1
    Checking bincode v2.0.0-rc.3
    Checking http-body-util v0.1.2
    Checking chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling ryu v1.0.18
    Checking cobs v0.2.3
    Checking foldhash v0.1.3
   Compiling itoa v1.0.14
    Checking hyper v1.5.1
    Checking postcard v1.1.1
    Checking url v2.5.4
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking karyon_core v0.1.8
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking async-tungstenite v0.28.0
    Checking serde_spanned v0.6.8
    Checking toml_datetime v0.6.8
   Compiling pyo3 v0.23.3
    Checking winnow v0.6.20
    Checking seahash v4.1.0
    Checking sync_wrapper v1.0.2
    Checking topo_sort v0.4.0
    Checking axum-core v0.4.5
    Checking tower v0.5.1
    Checking hyper-util v0.1.10
    Checking memoffset v0.9.1
    Checking tokio-tungstenite v0.24.0
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.31
    Checking serde_path_to_error v0.1.16
    Checking base64 v0.22.1
    Checking unindent v0.2.3
    Checking matchit v0.7.3
   Compiling karyon_jsonrpc_macro v0.1.8
    Checking unicode-segmentation v1.12.0
    Checking futures v0.3.31
    Checking tower-http v0.5.2
    Checking convert_case v0.6.0
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
    Checking toml_edit v0.22.22
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.9
    Checking toml v0.8.19
   Compiling pyo3-macros v0.23.3
    Checking chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling aws-lc-rs v1.11.1
   Compiling rustls v0.23.19
    Checking rustls-webpki v0.102.8
    Checking futures-rustls v0.26.0
    Checking karyon_async_rustls v0.1.8
    Checking karyon_net v0.1.8
    Checking karyon_jsonrpc v0.1.8
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 7m 31s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

   Compiling chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
    Finished test [unoptimized + debuginfo] target(s) in 16.23s
warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_error-340064ead0136139)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_error.rs (/work/target/debug/deps/test_error-e97564cfff0c3ba1)

running 1 test
test test_error ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_lint-95bfaf7c76bca9d6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-eaec45d866783405)

running 2 tests
test tests::test_constructor_invalid_schema ... ok
test tests::test_constructor_trailing_slash ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-84a8685f91d5046e)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-2979153b0891fba2)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at /work/modules/bitcoinsuite-chronik-client/src/test_runner.rs:41:10:
Failed to start Python process: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to start Python process: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p bitcoinsuite-chronik-client --test test_chronik_info`
Build build-explorer failed with exit code 101

Tail of the build log:

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-agora@0.2.0 integration-tests
> mocha --import=tsx ./tests/*.test.ts --timeout 60000 --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-agora-integration-tests-junit.xml --reporter-options testsuitesTitle=Ecash Agora Integration Tests --reporter-options rootSuiteTitle=Ecash Agora

Test runner started
Starting Bitcoin ABC functional tests
Temporary test directory at /work/abc-ci-builds/ecash-agora-integration-tests/test/tmp/test_runner_₿₵_🏃_20250105_115952
...........
----------------------------------------------------------------------
Ran 11 tests in 0.059s

OK
SOCKET environment variable is not set.
Running Unit Tests for Test Framework Modules
setup_scripts/ecash-agora_base.py started
setup_scripts/ecash-agora_base.py failed, Duration: 0 s

stdout:

stderr:


TEST                              | STATUS    | DURATION

setup_scripts/ecash-agora_base.py | ✖ Failed  | 0 s

ALL                               | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner completed with code 1
------------|---------|----------|---------|---------|----------------------------------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                            
------------|---------|----------|---------|---------|----------------------------------------------
All files   |    7.99 |    13.36 |    6.09 |    8.05 |                                              
 ad.ts      |   12.96 |    26.31 |   33.33 |   12.96 | 33-100,127-146                               
 agora.ts   |    7.53 |     6.25 |    3.03 |    7.53 | 98-474,526-888,908-914                       
 consts.ts  |     100 |    83.33 |     100 |     100 | 1                                            
 index.ts   |       0 |        0 |       0 |       0 |                                              
 oneshot.ts |   10.12 |    35.71 |    6.25 |   10.38 | 77-223,234-251,263-270,279-286               
 partial.ts |    4.45 |     7.35 |    3.44 |     4.5 | ...1,1326-1336,1346-1365,1382-1389,1399-1406 
------------|---------|----------|---------|---------|----------------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='538']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='25']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='187']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='5']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='82']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='534']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

Test runner completed with code 1
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   31.95 |    30.26 |    20.9 |    32.2 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   44.94 |    34.03 |   25.28 |   45.59 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   57.14 |    83.33 |      40 |   57.14 | 23-31                        
  hash.ts                   |   66.66 |    83.33 |      40 |   66.66 | 14,17,20                     
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |     100 |      100 |     100 |     100 |                              
  op.ts                     |      40 |    44.44 |   66.66 |      40 | ...4,107,109,117-122,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   38.88 |       30 |      20 |   36.53 | 35-42,62-166,175-186         
  sigHashType.ts            |   76.31 |       44 |   71.42 |   76.31 | 26-58                        
  tx.ts                     |    32.6 |    20.83 |    9.09 |   34.09 | ...8,143-145,150-151,156,176 
  txBuilder.ts              |   16.12 |    17.24 |    7.14 |   16.66 | ...7,231-234,243-247,253-257 
  unsignedTx.ts             |   13.04 |     9.43 |       5 |   13.74 | ...9,336-340,344,350-351,356 
 ecash-lib/src/address      |    22.8 |    25.64 |    9.52 |      23 |                              
  address.ts                |   21.62 |       20 |    6.25 |   21.91 | ...3,239-240,255-256,266-344 
  legacyaddr.ts             |      25 |    35.71 |      20 |      25 | 15-19,23-38,70-111,124-128   
 ecash-lib/src/ffi          |    8.38 |     1.44 |    1.88 |    8.59 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   18.36 |        5 |    4.34 |   18.62 | ...0-155,171-243,250-251,255 
 ecash-lib/src/io           |   38.23 |    47.05 |   44.11 |   38.16 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   58.97 |     62.5 |      40 |   61.76 | 33-37,41-45,50,58,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   85.71 |    83.33 |   66.66 |   85.71 | 15                           
  varsize.ts                |      12 |    22.72 |   33.33 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   43.33 |    36.84 |    62.5 |   43.33 | 33,42-67,79                  
  writerlength.ts           |    62.5 |    83.33 |   57.14 |    62.5 | 26-36                        
 ecash-lib/src/test         |   42.68 |    35.41 |   36.84 |    42.1 |                              
  testRunner.ts             |   42.68 |    35.41 |   36.84 |    42.1 | ...-75,87-89,102-112,122-207 
 ecash-lib/src/token        |   27.37 |    28.57 |   13.33 |   27.52 |                              
  alp.ts                    |   18.29 |    26.31 |    8.33 |   18.29 | ...3,127-131,135-137,141-145 
  common.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |   46.15 |     62.5 |      25 |      50 | 11-14,22-28                  
  slp.ts                    |    28.2 |    13.51 |    7.69 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='456']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1427']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='161']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='532']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='51']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='244']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='448']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1391']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

5 vulnerabilities (3 moderate, 2 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@2.1.1 integration-tests
> mocha -j1 -r ts-node/register test/integration/*.ts --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/chronik-client-integration-tests-junit.xml --reporter-options testsuitesTitle=Chronik Client Integration Tests --reporter-options rootSuiteTitle=Chronik Client

Starting test_runner for chronik-client_block_and_blocks
Test runner for chronik-client_block_and_blocks started
SOCKET environment variable is not set.
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_block_and_blocks.py started
setup_scripts/chronik-client_block_and_blocks.py failed, Duration: 0 s

stdout:

stderr:


TEST                                             | STATUS    | DURATION

setup_scripts/chronik-client_block_and_blocks.py | ✖ Failed  | 0 s

ALL                                              | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner for chronik-client_block_and_blocks completed with code 1
----------------------|---------|----------|---------|---------|------------------------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                  
----------------------|---------|----------|---------|---------|------------------------------------
All files             |    4.69 |     0.45 |    1.05 |    4.58 |                                    
 chronik-client       |     100 |      100 |     100 |     100 |                                    
  index.ts            |     100 |      100 |     100 |     100 |                                    
 chronik-client/proto |    3.87 |     0.49 |    1.38 |    3.91 |                                    
  chronik.ts          |    3.87 |     0.49 |    1.38 |    3.91 | ...7,6332-6371,6379-6483,6487-6496 
 chronik-client/src   |    8.33 |        0 |       0 |    7.59 |                                    
  ChronikClient.ts    |    4.91 |        0 |       0 |    4.91 | ...20-392,405-462,476-580,648-1451 
  failoverProxy.ts    |    4.67 |        0 |       0 |     4.8 | 33-327                             
  hex.ts              |   31.57 |        0 |       0 |   33.33 | 33-37,41-45,49-62,66-68            
  validation.ts       |   26.82 |        0 |       0 |   18.91 | 14-49,54-55,62-63,73-88            
----------------------|---------|----------|---------|---------|------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='147']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3132']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='12']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2645']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='6']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='567']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='142']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='3097']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1

Updated the socket path and build path for python + rust, also added python version fallback

Tail of the build log:

   Compiling url v2.5.4
   Compiling prost-build v0.11.9
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
   Compiling tokio-util v0.7.13
   Compiling tokio-native-tls v0.3.1
   Compiling h2 v0.3.26
   Compiling hyper v0.14.31
   Compiling hyper-tls v0.5.0
   Compiling reqwest v0.11.27
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished dev [unoptimized + debuginfo] target(s) in 23.63s
warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
 Downloading crates ...
  Downloaded pretty_assertions v1.4.1
  Downloaded diff v0.1.13
  Downloaded yansi v1.0.1
   Compiling diff v0.1.13
   Compiling yansi v1.0.1
   Compiling pretty_assertions v1.4.1
   Compiling bitcoinsuite-chronik-client v0.1.0 (/work/modules/bitcoinsuite-chronik-client)
    Finished test [unoptimized + debuginfo] target(s) in 2.93s
     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-989878a747e9856c)

running 2 tests
test tests::test_constructor_invalid_schema ... ok
test tests::test_constructor_trailing_slash ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-fbd63ebf6d876bc9)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-844d7521bc7a4a8a)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/src/test_runner.rs:47:10:
Failed to get absolute path to socket: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to get absolute path to socket: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `--test test_chronik_info`
Build build-bitcoinsuite-chronik-client failed with exit code 101

Tail of the build log:

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-agora@0.2.0 integration-tests
> mocha --import=tsx ./tests/*.test.ts --timeout 60000 --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-agora-integration-tests-junit.xml --reporter-options testsuitesTitle=Ecash Agora Integration Tests --reporter-options rootSuiteTitle=Ecash Agora

Test runner started
Starting Bitcoin ABC functional tests
Temporary test directory at /work/abc-ci-builds/ecash-agora-integration-tests/test/tmp/test_runner_₿₵_🏃_20250106_001344
...........
----------------------------------------------------------------------
Ran 11 tests in 0.059s

OK
Socket file is at: /work/modules/bitcoinsuite-chronik-client/temporary/chronik_info.sock
Error connecting to socket: [Errno 2] No such file or directory
Running Unit Tests for Test Framework Modules
setup_scripts/ecash-agora_base.py started
setup_scripts/ecash-agora_base.py failed, Duration: 0 s

stdout:

stderr:


TEST                              | STATUS    | DURATION

setup_scripts/ecash-agora_base.py | ✖ Failed  | 0 s

ALL                               | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner completed with code 1
------------|---------|----------|---------|---------|----------------------------------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                            
------------|---------|----------|---------|---------|----------------------------------------------
All files   |    7.99 |    13.36 |    6.09 |    8.05 |                                              
 ad.ts      |   12.96 |    26.31 |   33.33 |   12.96 | 33-100,127-146                               
 agora.ts   |    7.53 |     6.25 |    3.03 |    7.53 | 98-474,526-888,908-914                       
 consts.ts  |     100 |    83.33 |     100 |     100 | 1                                            
 index.ts   |       0 |        0 |       0 |       0 |                                              
 oneshot.ts |   10.12 |    35.71 |    6.25 |   10.38 | 77-223,234-251,263-270,279-286               
 partial.ts |    4.45 |     7.35 |    3.44 |     4.5 | ...1,1326-1336,1346-1365,1382-1389,1399-1406 
------------|---------|----------|---------|---------|----------------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='538']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='25']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='187']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='5']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='82']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='43']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='534']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

   Compiling chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
    Finished test [unoptimized + debuginfo] target(s) in 16.95s
warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_error-340064ead0136139)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_error.rs (/work/target/debug/deps/test_error-e97564cfff0c3ba1)

running 1 test
test test_error ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/abc_rust_lint-95bfaf7c76bca9d6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/work/target/debug/deps/bitcoinsuite_chronik_client-f7a5128b077f16e5)

running 2 tests
test tests::test_constructor_invalid_schema ... ok
test tests::test_constructor_trailing_slash ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_client.rs (/work/target/debug/deps/test_chronik_client-257e4a5a921ca396)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/test_chronik_info.rs (/work/target/debug/deps/test_chronik_info-7e96241c52914b98)

running 1 test
test test_chronik_info_ipc ... FAILED

failures:

---- test_chronik_info_ipc stdout ----
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/src/test_runner.rs:47:10:
Failed to get absolute path to socket: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'test_chronik_info_ipc' panicked at modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs:43:21:
called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(1), "Failed to get absolute path to socket: Os { code: 2, kind: NotFound, message: \"No such file or directory\" }", ...)


failures:
    test_chronik_info_ipc

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p bitcoinsuite-chronik-client --test test_chronik_info`
Build build-explorer failed with exit code 101

Tail of the build log:

Test runner completed with code 1
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   31.95 |    30.26 |    20.9 |    32.2 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   44.94 |    34.03 |   25.28 |   45.59 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   57.14 |    83.33 |      40 |   57.14 | 23-31                        
  hash.ts                   |   66.66 |    83.33 |      40 |   66.66 | 14,17,20                     
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |     100 |      100 |     100 |     100 |                              
  op.ts                     |      40 |    44.44 |   66.66 |      40 | ...4,107,109,117-122,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   38.88 |       30 |      20 |   36.53 | 35-42,62-166,175-186         
  sigHashType.ts            |   76.31 |       44 |   71.42 |   76.31 | 26-58                        
  tx.ts                     |    32.6 |    20.83 |    9.09 |   34.09 | ...8,143-145,150-151,156,176 
  txBuilder.ts              |   16.12 |    17.24 |    7.14 |   16.66 | ...7,231-234,243-247,253-257 
  unsignedTx.ts             |   13.04 |     9.43 |       5 |   13.74 | ...9,336-340,344,350-351,356 
 ecash-lib/src/address      |    22.8 |    25.64 |    9.52 |      23 |                              
  address.ts                |   21.62 |       20 |    6.25 |   21.91 | ...3,239-240,255-256,266-344 
  legacyaddr.ts             |      25 |    35.71 |      20 |      25 | 15-19,23-38,70-111,124-128   
 ecash-lib/src/ffi          |    8.38 |     1.44 |    1.88 |    8.59 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |   18.36 |        5 |    4.34 |   18.62 | ...0-155,171-243,250-251,255 
 ecash-lib/src/io           |   38.23 |    47.05 |   44.11 |   38.16 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   58.97 |     62.5 |      40 |   61.76 | 33-37,41-45,50,58,66-68      
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   85.71 |    83.33 |   66.66 |   85.71 | 15                           
  varsize.ts                |      12 |    22.72 |   33.33 |      12 | 14-24,35-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   43.33 |    36.84 |    62.5 |   43.33 | 33,42-67,79                  
  writerlength.ts           |    62.5 |    83.33 |   57.14 |    62.5 | 26-36                        
 ecash-lib/src/test         |   42.68 |    35.41 |   36.84 |    42.1 |                              
  testRunner.ts             |   42.68 |    35.41 |   36.84 |    42.1 | ...-75,87-89,102-112,122-207 
 ecash-lib/src/token        |   27.37 |    28.57 |   13.33 |   27.52 |                              
  alp.ts                    |   18.29 |    26.31 |    8.33 |   18.29 | ...3,127-131,135-137,141-145 
  common.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |   46.15 |     62.5 |      25 |      50 | 11-14,22-28                  
  slp.ts                    |    28.2 |    13.51 |    7.69 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='456']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1427']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='161']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='532']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='51']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='244']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='448']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1391']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

    Checking idna v1.0.3
    Checking bincode v2.0.0-rc.3
    Checking dirs v5.0.1
    Checking http-body-util v0.1.2
    Checking chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling itoa v1.0.14
   Compiling ryu v1.0.18
    Checking cobs v0.2.3
    Checking foldhash v0.1.3
    Checking postcard v1.1.1
    Checking hyper v1.5.1
    Checking url v2.5.4
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking karyon_core v0.1.8
    Checking async-tungstenite v0.28.0
    Checking toml_datetime v0.6.8
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking serde_spanned v0.6.8
   Compiling pyo3 v0.23.3
    Checking winnow v0.6.20
    Checking sync_wrapper v1.0.2
    Checking topo_sort v0.4.0
    Checking seahash v4.1.0
    Checking tower v0.5.1
    Checking axum-core v0.4.5
    Checking hyper-util v0.1.10
    Checking memoffset v0.9.1
    Checking tokio-tungstenite v0.24.0
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.31
    Checking serde_path_to_error v0.1.16
    Checking unindent v0.2.3
    Checking base64 v0.22.1
    Checking matchit v0.7.3
   Compiling karyon_jsonrpc_macro v0.1.8
    Checking unicode-segmentation v1.12.0
    Checking futures v0.3.31
    Checking tower-http v0.5.2
    Checking convert_case v0.6.0
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
    Checking toml_edit v0.22.22
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.9
    Checking toml v0.8.19
   Compiling pyo3-macros v0.23.3
    Checking chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling aws-lc-rs v1.11.1
   Compiling rustls v0.23.19
    Checking rustls-webpki v0.102.8
    Checking futures-rustls v0.26.0
    Checking karyon_async_rustls v0.1.8
    Checking karyon_net v0.1.8
    Checking karyon_jsonrpc v0.1.8
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 5m 35s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

    Checking idna v1.0.3
    Checking dirs v5.0.1
    Checking bincode v2.0.0-rc.3
    Checking http-body-util v0.1.2
    Checking chronik-util v0.1.0 (/work/chronik/chronik-util)
   Compiling itoa v1.0.14
    Checking foldhash v0.1.3
   Compiling ryu v1.0.18
    Checking cobs v0.2.3
    Checking hyper v1.5.1
    Checking postcard v1.1.1
    Checking url v2.5.4
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking karyon_core v0.1.8
    Checking async-tungstenite v0.28.0
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking serde_spanned v0.6.8
    Checking toml_datetime v0.6.8
   Compiling pyo3 v0.23.3
    Checking sync_wrapper v1.0.2
    Checking winnow v0.6.20
    Checking seahash v4.1.0
    Checking topo_sort v0.4.0
    Checking axum-core v0.4.5
    Checking tower v0.5.1
    Checking hyper-util v0.1.10
    Checking memoffset v0.9.1
    Checking tokio-tungstenite v0.24.0
    Checking serde_urlencoded v0.7.1
    Checking futures-executor v0.3.31
    Checking serde_path_to_error v0.1.16
    Checking matchit v0.7.3
    Checking unicode-segmentation v1.12.0
    Checking unindent v0.2.3
    Checking base64 v0.22.1
    Checking futures v0.3.31
    Checking tower-http v0.5.2
   Compiling karyon_jsonrpc_macro v0.1.8
    Checking convert_case v0.6.0
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
    Checking toml_edit v0.22.22
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.9
    Checking toml v0.8.19
   Compiling pyo3-macros v0.23.3
    Checking chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
   Compiling aws-lc-rs v1.11.1
   Compiling rustls v0.23.19
    Checking rustls-webpki v0.102.8
    Checking futures-rustls v0.26.0
    Checking karyon_async_rustls v0.1.8
    Checking karyon_net v0.1.8
    Checking karyon_jsonrpc v0.1.8
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 7m 39s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

> chronik-client@2.1.1 integration-tests
> mocha -j1 -r ts-node/register test/integration/*.ts --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/chronik-client-integration-tests-junit.xml --reporter-options testsuitesTitle=Chronik Client Integration Tests --reporter-options rootSuiteTitle=Chronik Client

Starting test_runner for chronik-client_block_and_blocks
Test runner for chronik-client_block_and_blocks started
Socket file is at: /work/modules/bitcoinsuite-chronik-client/temporary/chronik_info.sock
Error connecting to socket: [Errno 2] No such file or directory
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_block_and_blocks.py started
setup_scripts/chronik-client_block_and_blocks.py failed, Duration: 0 s

stdout:

stderr:


TEST                                             | STATUS    | DURATION

setup_scripts/chronik-client_block_and_blocks.py | ✖ Failed  | 0 s

ALL                                              | ✖ Failed  | 0 s (accumulated) 
Runtime: 0 s

Test runner for chronik-client_block_and_blocks completed with code 1
----------------------|---------|----------|---------|---------|------------------------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                  
----------------------|---------|----------|---------|---------|------------------------------------
All files             |    4.69 |     0.45 |    1.05 |    4.58 |                                    
 chronik-client       |     100 |      100 |     100 |     100 |                                    
  index.ts            |     100 |      100 |     100 |     100 |                                    
 chronik-client/proto |    3.87 |     0.49 |    1.38 |    3.91 |                                    
  chronik.ts          |    3.87 |     0.49 |    1.38 |    3.91 | ...7,6332-6371,6379-6483,6487-6496 
 chronik-client/src   |    8.33 |        0 |       0 |    7.59 |                                    
  ChronikClient.ts    |    4.91 |        0 |       0 |    4.91 | ...20-392,405-462,476-580,648-1451 
  failoverProxy.ts    |    4.67 |        0 |       0 |     4.8 | 33-327                             
  hex.ts              |   31.57 |        0 |       0 |   33.33 | 33-37,41-45,49-62,66-68            
  validation.ts       |   26.82 |        0 |       0 |   18.91 | 14-49,54-55,62-63,73-88            
----------------------|---------|----------|---------|---------|------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='147']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3132']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='12']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2645']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='6']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='567']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='142']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='3097']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1
modules/bitcoinsuite-chronik-client/src/chronik_info.rs
1

it's now 2025

14

Use a TODO or FIXME marker in the comment for things like this

18
22

Please go though all your comments and fixes these errors

25

What is 32 ? Can you use a constant instead of a magic number (so it's self documented) ?

93

All the test related code should be moved into a test/ directory so it's not confused with the "main" client code

modules/bitcoinsuite-chronik-client/src/lib.rs
19

I don't think these need to be public, it's only for testing

modules/bitcoinsuite-chronik-client/src/test_runner.rs
1

copyright

37

This is not the best idea, you don't want to create files in the source tree. Can you create a temporary directory instead ?

62

the fallback might not work but let's not focus on this right now, it's good enough as a starting point

83

We generally avoid this kind of comment because it simply brings no value. The code is obvious already

98

But really this is another example of useless comment

modules/bitcoinsuite-chronik-client/tests/test_chronik_client.rs
5

?
This diff shouldn't touch this file at all

modules/bitcoinsuite-chronik-client/tests/test_chronik_info.rs
19

we need to check that it returns the expected value

test/functional/setup_scripts/ipc.py
45

IMO you'd better keep the same messages, so use json for all of them. Your current approach is mixing json and plain text which is weird.