Reduce numbers.hpp includes with out-of-line definitions
#3512
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Code Sanitizers | |
| on: [ push, pull_request, workflow_dispatch ] | |
| jobs: | |
| linux_sanitizers: | |
| name: Linux [${{ matrix.SANITIZER.name }}] [${{ matrix.BACKEND }} | ${{ matrix.COMPILER }}] ${{ matrix.SANITIZER.ignore_errors && ' (Errors Ignored)' || '' }} | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| BACKEND: [ lmdb, rocksdb ] | |
| COMPILER: [ clang ] | |
| SANITIZER: | |
| - { name: UBSAN, ignore_errors: false } | |
| - { name: ASAN, ignore_errors: false, leak_check: false } | |
| - { name: ASAN_INT, ignore_errors: true, leak_check: false } | |
| - { name: TSAN, ignore_errors: false } | |
| - { name: LEAK, ignore_errors: false, leak_check: true } | |
| exclude: | |
| # Bug when running with TSAN: "ThreadSanitizer: CHECK failed: sanitizer_deadlock_detector" | |
| - BACKEND: rocksdb | |
| SANITIZER: { name: TSAN } | |
| runs-on: ubuntu-24.04 | |
| env: | |
| COMPILER: ${{ matrix.COMPILER }} | |
| BACKEND: ${{ matrix.BACKEND }} | |
| SANITIZER: ${{ matrix.SANITIZER.name }} | |
| IGNORE_ERRORS: ${{ matrix.SANITIZER.ignore_errors }} | |
| TEST_USE_ROCKSDB: ${{ matrix.BACKEND == 'rocksdb' && '1' || '0' }} | |
| DEADLINE_SCALE_FACTOR: ${{ matrix.BACKEND == 'rocksdb' && '2' || '1' }} | |
| ASAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:suppressions=../asan_suppressions:detect_leaks=${{ matrix.SANITIZER.leak_check && '1' || '0' }} | |
| TSAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:suppressions=../tsan_suppressions | |
| UBSAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:print_stacktrace=1 | |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: "recursive" | |
| - name: Prepare | |
| run: sudo -E ci/prepare/linux/prepare.sh | |
| - name: Build Tests | |
| id: build | |
| run: ci/build-tests.sh | |
| - name: Core Tests | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: true | |
| run: timeout -sKILL 45m ../ci/tests/run-core-tests.sh | |
| working-directory: build | |
| - name: RPC Tests | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: true | |
| run: timeout -sKILL 20m ../ci/tests/run-rpc-tests.sh | |
| working-directory: build | |
| - name: Reports | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: ${{ env.IGNORE_ERRORS == 'true' }} | |
| run: ../ci/tests/show-sanitizer-reports.sh | |
| working-directory: build | |
| macos_sanitizers: | |
| name: macOS [${{ matrix.SANITIZER.name }}] [${{ matrix.BACKEND }} | ${{ matrix.COMPILER }}] ${{ matrix.SANITIZER.ignore_errors && ' (Errors Ignored)' || '' }} | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| BACKEND: [ lmdb, rocksdb ] | |
| COMPILER: [ clang ] | |
| SANITIZER: | |
| - { name: UBSAN, ignore_errors: false } | |
| - { name: ASAN, ignore_errors: false } | |
| - { name: TSAN, ignore_errors: false } | |
| runs-on: macos-14 | |
| env: | |
| COMPILER: ${{ matrix.COMPILER }} | |
| BACKEND: ${{ matrix.BACKEND }} | |
| SANITIZER: ${{ matrix.SANITIZER.name }} | |
| IGNORE_ERRORS: ${{ matrix.SANITIZER.ignore_errors }} | |
| TEST_USE_ROCKSDB: ${{ matrix.BACKEND == 'rocksdb' && '1' || '0' }} | |
| DEADLINE_SCALE_FACTOR: ${{ matrix.BACKEND == 'rocksdb' && '2' || '1' }} | |
| ASAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:suppressions=../asan_suppressions | |
| TSAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:suppressions=../tsan_suppressions | |
| UBSAN_OPTIONS: log_exe_name=1:log_path=sanitizer_report:print_stacktrace=1 | |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: "recursive" | |
| - name: Prepare | |
| run: ci/prepare/macos/prepare.sh | |
| - name: Build Tests | |
| id: build | |
| run: ci/build-tests.sh | |
| - name: Core Tests | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: true | |
| run: timeout -sKILL 45m ../ci/tests/run-core-tests.sh | |
| working-directory: build | |
| - name: RPC Tests | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: true | |
| run: timeout -sKILL 20m ../ci/tests/run-rpc-tests.sh | |
| working-directory: build | |
| - name: Reports | |
| if: steps.build.outcome == 'success' && (success() || failure()) | |
| continue-on-error: ${{ env.IGNORE_ERRORS == 'true' }} | |
| run: ../ci/tests/show-sanitizer-reports.sh | |
| working-directory: build | |