ci: Put space and non-ASCII char in scratch dir #34614

pull maflcko wants to merge 3 commits into bitcoin:master from maflcko:2602-ci-space changing 6 files +25 −17
  1. maflcko commented at 1:48 PM on February 18, 2026: member

    It seems unlikely that many users have a space in their paths, but it seems a use-case worth enough to be tested by CI, so that it does not have to be done manually. Ref #33929 (review) / https://mirror.b10c.me/bitcoin-bitcoin/33929/#discussion_r2590523065

    So do that here, and also add a non-ASCII char while touching.

    Also, fix all tests that are broken and assume no space exists in paths.

  2. DrahtBot renamed this:
    ci: Put space and non-ASCII char in scratch dir
    ci: Put space and non-ASCII char in scratch dir
    on Feb 18, 2026
  3. DrahtBot added the label Tests on Feb 18, 2026
  4. DrahtBot commented at 1:48 PM on February 18, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/34614.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept ACK hebasto

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    No conflicts as of last run.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  5. maflcko force-pushed on Feb 19, 2026
  6. maflcko force-pushed on Feb 19, 2026
  7. DrahtBot added the label CI failed on Feb 19, 2026
  8. maflcko force-pushed on Feb 19, 2026
  9. maflcko force-pushed on Feb 19, 2026
  10. maflcko force-pushed on Feb 19, 2026
  11. maflcko force-pushed on Feb 19, 2026
  12. maflcko force-pushed on Feb 19, 2026
  13. DrahtBot removed the label CI failed on Feb 19, 2026
  14. hebasto commented at 3:31 PM on February 19, 2026: member

    Concept ACK.

  15. maflcko commented at 3:33 PM on February 19, 2026: member

    Sorry for the force pushes, but building on Windows with a space in the path is not possible, it seems, so I've just put a space in the functional test runner temp dir.

  16. hebasto commented at 4:26 PM on February 19, 2026: member

    ... but building on Windows with a space in the path is not possible, it seems...

    True, though that appears to be a vcpkg-related issue rather than one on our end :)

    A workaround is already documented here.

    Feel free to grab changes from https://github.com/hebasto/bitcoin/commit/90470acdb9f3a8f27ab669824c37b1db816ca1dd, which is based on the previous iteration of this PR.

    UPDATE

    From the CI:

    rpc_signer.py                                                                    | βœ– Failed  | 1 s
    wallet_signer.py                                                                 | βœ– Failed  | 1 s
    
  17. DrahtBot added the label Needs rebase on Mar 4, 2026
  18. sedited commented at 10:31 AM on May 14, 2026: contributor

    @maflcko are you still working on this change?

  19. ci: Require $FILE_ENV
    The ci fails when $FILE_ENV is not set, so fail early with a clearer
    error message by setting nounset:
    
    > bash: FILE_ENV: unbound variable
    fa38759823
  20. ci: Put space and non-ASCII char in scratch dir
    Also, add a missing quote around -DCMAKE_INSTALL_PREFIX to avoid word
    splitting.
    Otherwise, cmake would warn:
    
    ```
    + cmake -S /home/runner/work/_temp -B /home/runner/work/_temp/build -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DCMAKE_INSTALL_PREFIX=/home/runner/work/_temp/ci/scratch_ β‚ΏπŸ§ͺ_/out -Werror=dev --preset=dev-mode -DSANITIZERS=address,float-divide-by-zero,integer,undefined -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=-ftrivial-auto-var-init=pattern -DCMAKE_CXX_FLAGS=-ftrivial-auto-var-init=pattern -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=mold -DAPPEND_CXXFLAGS=-std=c++23 '-DAPPEND_CPPFLAGS=-DARENA_DEBUG -DDEBUG_LOCKORDER'
    CMake Warning:
      Ignoring extra path from command line:
       "β‚ΏπŸ§ͺ_/out"
    ```
    
    Also, allow spaces in the debug log file regex in a test.
    Otherwise, the test would fail:
    
    ```
    TestFramework (ERROR): Unexpected exception:
    Traceback (most recent call last):
      File "./test/functional/test_framework/test_framework.py", line 142, in main
        self.run_test()
        ~~~~~~~~~~~~~^^
      File "./test/functional/feature_logging.py", line 40, in run_test
        self.nodes[0].assert_start_raises_init_error([f"-debuglogfile={invalidname}"], exp_stderr, match=ErrorMatch.FULL_REGEX)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "./test/functional/test_framework/test_node.py", line 743, in assert_start_raises_init_error
        self._raise_assertion_error(
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            'Expected message "{}" does not fully match stderr:\n"{}"'.format(expected_msg, stderr))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "./test/functional/test_framework/test_node.py", line 229, in _raise_assertion_error
        raise AssertionError(self._node_msg(msg))
    AssertionError: [node 0] Expected message "Error: Could not open debug log file \S+$" does not fully match stderr:
    "Error: Could not open debug log file /Users/runner/work/bitcoin-core-with-ci/bitcoin-core-with-ci/repo_archive/ci/scratch_ β‚ΏπŸ§ͺ_/test_runner/test_runner_β‚Ώ_πŸƒ_20260218_095938/feature_logging_31/node0/regtest/foo/foo.log"
    ```
    
    Also, add missing quotes in a test. Otherwise, the test would fail:
    
    ```
    455/455 - feature_notifications.py failed, Duration: 402 s
    stdout:
    TestFramework (INFO): Initializing test directory /home/runner/work/_temp/ci/scratch_ β‚ΏπŸ§ͺ_/test_runner/test_runner_β‚Ώ_πŸƒ_20260218_113529/feature_notifications_128
    TestFramework (INFO): test -blocknotify
    TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
            self.wait_until(lambda: len(os.listdir(self.blocknotify_dir)) == block_count, timeout=10)
    '''
    fac6c4270d
  21. ci: Use path with spaces on windows as well 7777a92a92
  22. maflcko force-pushed on May 14, 2026
  23. DrahtBot removed the label Needs rebase on May 14, 2026
  24. maflcko commented at 2:31 PM on May 14, 2026: member

    rpc_signer.py | βœ– Failed | 1 s

    This is a bug on current master, fwiw, it also happens on Linux:

    # ./bld/test/functional/wallet_signer.py                                                                                                                                                              2026-05-14T14:22:41.612481Z TestFramework (INFO): PRNG seed is: 3369038516972251728
    2026-05-14T14:22:41.663316Z TestFramework (INFO): Initializing test directory /tmp/bitcoin_func_test_nvzneow1
    2026-05-14T14:22:42.826016Z TestFramework (ERROR): Unexpected exception:
    Traceback (most recent call last):
      File "/b-c/b_ _c/test/functional/test_framework/test_framework.py", line 143, in main
        self.run_test()
        ~~~~~~~~~~~~~^^
      File "/b-c/b_ _c/./bld/test/functional/wallet_signer.py", line 58, in run_test
        self.test_valid_signer()
        ~~~~~~~~~~~~~~~~~~~~~~^^
      File "/b-c/b_ _c/./bld/test/functional/wallet_signer.py", line 71, in test_valid_signer
        self.nodes[1].createwallet(wallet_name='hww', disable_private_keys=True, external_signer=True)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/b-c/b_ _c/test/functional/test_framework/coverage.py", line 50, in __call__
        return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
      File "/b-c/b_ _c/test/functional/test_framework/authproxy.py", line 153, in __call__
        raise JSONRPCException(response['error'], status)
    test_framework.authproxy.JSONRPCException: {'code': -1, 'message': "RunCommandParseJSON error: process(/usr/bin/python3 /b-c/b_ _c/test/functional/mocks/signer.py enumerate) returned 2: /usr/bin/python3: can't open file '/b-c/b_': [Errno 2] No such file or directory\n"} [http_status=200]
    

    @maflcko are you still working on this change?

    Ah, this fell off the table. Went ahead and rebased it.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-20 06:52 UTC