Fix VDF prover failures on Windows #765
Workflow file for this run
This file contains 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: Test Prover and vdf_client | |
on: | |
push: | |
branches: | |
- main | |
release: | |
types: [published] | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
test: | |
name: Test ${{ matrix.config }} ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-13, ubuntu-latest] | |
config: [optimized=1, TSAN=1, ASAN=1] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# See: https://github.com/google/sanitizers/issues/1716 | |
# Fixes `FATAL: ThreadSanitizer: unexpected memory mapping 0x70498d8ae000-0x70498dd00000` type errors | |
- name: Adjust mmap_rnd_bits on ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo sysctl vm.mmap_rnd_bits=28 | |
- name: Build vdf-client on Ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get install libgmp-dev libboost-python-dev libpython3-dev libboost-system-dev build-essential -y | |
cd src | |
make ${{ matrix.config }} -f Makefile.vdf-client | |
- name: Build vdf-client on Mac | |
if: startsWith(matrix.os, 'mac') | |
run: | | |
brew install boost | |
cd src | |
make ${{ matrix.config }} -f Makefile.vdf-client | |
- name: Test vdf-client | |
if: matrix.config == 'optimized=1' | |
run: | | |
cd src | |
echo "Running 1weso_test" | |
./1weso_test | |
echo "Running 2weso_test" | |
./2weso_test | |
echo "Running prover_test" | |
./prover_test | |
- name: Test vdf-client | |
if: matrix.config != 'optimized=1' | |
run: | | |
cd src | |
echo "Running 1weso_test" | |
./1weso_test 1000 | |
echo "Running 2weso_test" | |
./2weso_test 1000 | |
# macos thread sanitizer will give false positives on ./prover_test because | |
# it prints to std::cout from multiple threads. Which is allowed by the | |
# standard | |
- name: test Prover | |
if: matrix.config != 'optimized=1' && (matrix.config != 'TSAN=1' || startsWith(matrix.os, 'ubuntu')) | |
run: | | |
cd src | |
echo "Running prover_test" | |
./prover_test | |
- name: Benchmark vdf-client | |
if: matrix.config == 'optimized=1' | |
run: | | |
cd src | |
echo "Benchmarking vdf_client with 400,000 iterations of vdf_bench" | |
./vdf_bench square_asm 400000 |