💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282752457)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
This currently does not work on macOs when the pycapnp uses system installed capnproto and the system installed capnproto is installed from homebrew.
Editing it to
```python
imports = ["/opt/homebrew/opt/capnp/include", str(src_dir), str(mp_dir)]
```
I thought of two ways to fix it but was not successful.
1. Whether we can get the path to the include
...
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282752457)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
This currently does not work on macOs when the pycapnp uses system installed capnproto and the system installed capnproto is installed from homebrew.
Editing it to
```python
imports = ["/opt/homebrew/opt/capnp/include", str(src_dir), str(mp_dir)]
```
I thought of two ways to fix it but was not successful.
1. Whether we can get the path to the include
...
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282735877)
In "ci: add functional test for IPC interface" 3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Should modules be a test parameter initialised in `set_test_params` so that we can later reuse in mining test?
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282735877)
In "ci: add functional test for IPC interface" 3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Should modules be a test parameter initialised in `set_test_params` so that we can later reuse in mining test?
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282757571)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Should be abstracted away as a helper since to be reused ?
```python
async def parse_and_deserialize_block(self, block_template, ctx):
block_data = BytesIO((await block_template.result.getBlock(ctx)).result)
block = CBlock()
block.deserialize(block_data)
return block
```
```suggestion
block = await self.parse
...
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282757571)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Should be abstracted away as a helper since to be reused ?
```python
async def parse_and_deserialize_block(self, block_template, ctx):
block_data = BytesIO((await block_template.result.getBlock(ctx)).result)
block = CBlock()
block.deserialize(block_data)
return block
```
```suggestion
block = await self.parse
...
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282776829)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Is their benefit of having context for each test, else we can just have a global context?
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282776829)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Is their benefit of having context for each test, else we can just have a global context?
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282772502)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Also add a branch for when we have a better template based on increase in transaction fees in the mempool above the fee threshold.
```suggestion
assert_equal(len(block2.vtx), 1)
# Wait for another, get one after increase in fees in the mempool.
waitnext = template2.result.waitNext(ctx, waitoptions)
self.nodes[0
...
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282772502)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Also add a branch for when we have a better template based on increase in transaction fees in the mempool above the fee threshold.
```suggestion
assert_equal(len(block2.vtx), 1)
# Wait for another, get one after increase in fees in the mempool.
waitnext = template2.result.waitNext(ctx, waitoptions)
self.nodes[0
...
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282774168)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
nit: use our internal assertion helpers for better errors?
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282774168)
In "ci: add functional test for IPC interface" https://github.com/bitcoin/bitcoin/commit/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
nit: use our internal assertion helpers for better errors?
💬 maflcko commented on issue "ci: failure in `logging_tests`":
(https://github.com/bitcoin/bitcoin/issues/33195#issuecomment-3197464559)
> Edit: running the test from the flash drive just made the test so slow that it was triggering the [20s reset window,](https://github.com/bitcoin/bitcoin/blob/7b4a1350dfd6b3892a9c314eeff28b22ef0c1a73/src/test/logging_tests.cpp#L459) causing the log test to fail because the suppression status was reset. This is however not what happened in https://cirrus-ci.com/task/5318274667249664?logs=ci#L721, as the test started and failed all in a span of a few milliseconds.
I guess it is rare that someone
...
  (https://github.com/bitcoin/bitcoin/issues/33195#issuecomment-3197464559)
> Edit: running the test from the flash drive just made the test so slow that it was triggering the [20s reset window,](https://github.com/bitcoin/bitcoin/blob/7b4a1350dfd6b3892a9c314eeff28b22ef0c1a73/src/test/logging_tests.cpp#L459) causing the log test to fail because the suppression status was reset. This is however not what happened in https://cirrus-ci.com/task/5318274667249664?logs=ci#L721, as the test started and failed all in a span of a few milliseconds.
I guess it is rare that someone
...
💬 josibake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282780835)
These commands for unstalling via a venv dont work for me on macos or linux. I'm also not sure about installing via pip, since we need to be sure we are installing the package with capnproto bundled. Instead, I think `pycapnp` should be installed from source (venv or otherwise):
```
git clone https://github.com/capnproto/pycapnp.git
cd pycapnp
pip install . -C force-bundled-libcapnp=True
```
This approach worked on macos and linux for me (inside a venv on both).
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282780835)
These commands for unstalling via a venv dont work for me on macos or linux. I'm also not sure about installing via pip, since we need to be sure we are installing the package with capnproto bundled. Instead, I think `pycapnp` should be installed from source (venv or otherwise):
```
git clone https://github.com/capnproto/pycapnp.git
cd pycapnp
pip install . -C force-bundled-libcapnp=True
```
This approach worked on macos and linux for me (inside a venv on both).
💬 josibake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282782619)
AFAICT, this only works when capnproto is bundled inside `pycapnp`.
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282782619)
AFAICT, this only works when capnproto is bundled inside `pycapnp`.
👍 josibake approved a pull request: "Add functional test for IPC interface"
(https://github.com/bitcoin/bitcoin/pull/33201#pullrequestreview-3128923018)
ACK https://github.com/bitcoin/bitcoin/pull/33201/commits/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Thanks for picking this up! I think the docs and multiplatform support still need a bit of work but that can be tackled in a follow-up(s), considering the main benefit I see here is getting a basic functional test in place that can be extended later.
  (https://github.com/bitcoin/bitcoin/pull/33201#pullrequestreview-3128923018)
ACK https://github.com/bitcoin/bitcoin/pull/33201/commits/3f7ff4849e6165a6bcc4d5977c35a467fd7fc232
Thanks for picking this up! I think the docs and multiplatform support still need a bit of work but that can be tackled in a follow-up(s), considering the main benefit I see here is getting a basic functional test in place that can be extended later.
💬 fjahr commented on pull request "index: Fix coinstats overflow":
(https://github.com/bitcoin/bitcoin/pull/30469#discussion_r2282801398)
Fixed, I missed that this had changed.
  (https://github.com/bitcoin/bitcoin/pull/30469#discussion_r2282801398)
Fixed, I missed that this had changed.
💬 josibake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#issuecomment-3197489074)
> the include paths used in the python test are a guess. It'd be nice to pass through the location of the capnp installation from the build system to the tests
I took a stab at this, ended up being harder than expected and I don't yet have something that works. But I think this is the correct longterm approach, instead of trying to guess in the functional test itself.
  (https://github.com/bitcoin/bitcoin/pull/33201#issuecomment-3197489074)
> the include paths used in the python test are a guess. It'd be nice to pass through the location of the capnp installation from the build system to the tests
I took a stab at this, ended up being harder than expected and I don't yet have something that works. But I think this is the correct longterm approach, instead of trying to guess in the functional test itself.
💬 josibake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282815035)
FWIW, this worked for me on macos: https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282780835. I'd recommend we have the docs tell users to install `pycapnp` from source, since that should "just work" everywhere due to this line: `cpp_capnp_dir = Path(capnp.__path__[0]).parent`.
Eventually, we can replace this recommendation once we have CMake automatically finding the include directory for capnproto and making the test framework aware.
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282815035)
FWIW, this worked for me on macos: https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282780835. I'd recommend we have the docs tell users to install `pycapnp` from source, since that should "just work" everywhere due to this line: `cpp_capnp_dir = Path(capnp.__path__[0]).parent`.
Eventually, we can replace this recommendation once we have CMake automatically finding the include directory for capnproto and making the test framework aware.
💬 fanquake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282839448)
> `venv/bin/python3 test/functional/interface_ipc.py`
This should be `build/test/functional/interface_ipc.py`. Otherwise the test wont run.
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282839448)
> `venv/bin/python3 test/functional/interface_ipc.py`
This should be `build/test/functional/interface_ipc.py`. Otherwise the test wont run.
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282841908)
@josibake
I did that initially but was having some errors
<details>
<summary>logs
</summary>
```terminal
(.venv) abubakarismail@Abubakars-MacBook-Pro pycapnp % cmake --version
cmake version 4.1.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
(.venv) abubakarismail@Abubakars-MacBook-Pro pycapnp % pip install . -C force-bundled-libcapnp=True
Processing /Users/abubakarismail/Desktop/Work/bitcoin-dev/py-bitcoin-ipc-client/pycapnp
Installing build dependen
...
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282841908)
@josibake
I did that initially but was having some errors
<details>
<summary>logs
</summary>
```terminal
(.venv) abubakarismail@Abubakars-MacBook-Pro pycapnp % cmake --version
cmake version 4.1.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
(.venv) abubakarismail@Abubakars-MacBook-Pro pycapnp % pip install . -C force-bundled-libcapnp=True
Processing /Users/abubakarismail/Desktop/Work/bitcoin-dev/py-bitcoin-ipc-client/pycapnp
Installing build dependen
...
💬 stickies-v commented on issue "ci: failure in `logging_tests`":
(https://github.com/bitcoin/bitcoin/issues/33195#issuecomment-3197554181)
> There are 1023 aaaaaa...aaaa log lines (there should be 1024) in the CI logs
It seems the 835th iteration got corrupted (scroll down a bit):
```
[09:01:31.798] aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa��������aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
...
  (https://github.com/bitcoin/bitcoin/issues/33195#issuecomment-3197554181)
> There are 1023 aaaaaa...aaaa log lines (there should be 1024) in the CI logs
It seems the 835th iteration got corrupted (scroll down a bit):
```
[09:01:31.798] aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa��������aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
...
💬 ismaelsadeeq commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282849226)
When you build using depends with the autotools it will work I think?
So both options maybe?
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282849226)
When you build using depends with the autotools it will work I think?
So both options maybe?
💬 Aris-Ritz commented on something "":
(https://github.com/bitcoin/bitcoin/commit/74fc236dab438d6f970eb42e58fff8e5198a2f7a#commitcomment-164170572)
74fc236dab438d6f970eb42e58fff8e5198a2f7a
  (https://github.com/bitcoin/bitcoin/commit/74fc236dab438d6f970eb42e58fff8e5198a2f7a#commitcomment-164170572)
74fc236dab438d6f970eb42e58fff8e5198a2f7a
💬 Aris-Ritz commented on something "":
(https://github.com/bitcoin/bitcoin/commit/74fc236dab438d6f970eb42e58fff8e5198a2f7a#commitcomment-164170602)
test/functional/test_framework/test_framework.py
  (https://github.com/bitcoin/bitcoin/commit/74fc236dab438d6f970eb42e58fff8e5198a2f7a#commitcomment-164170602)
test/functional/test_framework/test_framework.py
💬 fanquake commented on pull request "Add functional test for IPC interface":
(https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282853664)
> I did that initially but was having some errors
It looks like the `pycapnp` package doesn't currently work with Python 3.13 (https://github.com/capnproto/pycapnp/issues/372).
  (https://github.com/bitcoin/bitcoin/pull/33201#discussion_r2282853664)
> I did that initially but was having some errors
It looks like the `pycapnp` package doesn't currently work with Python 3.13 (https://github.com/capnproto/pycapnp/issues/372).