35 lines
		
	
	
	
		
			920 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			920 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| export DEBUGINFOD_URLS="https://debuginfod.archlinux.org/"
 | |
| 
 | |
| set -e
 | |
| cd $(git rev-parse --show-toplevel)/
 | |
| rm -rf ./build && mkdir build/
 | |
| 
 | |
| Xvfb :99 -screen 0 1024x768x16 &
 | |
| export CXX=$(which g++)
 | |
| export CC=$(which gcc)
 | |
| export DISPLAY=:99
 | |
| 
 | |
| # gcc uses libstdc++ by default
 | |
| cmake . \
 | |
|     -Bbuild \
 | |
|     -GNinja \
 | |
|     -DCMAKE_LINKER_TYPE=MOLD \
 | |
|     -DENABLE_UNIT_TESTS=ON \
 | |
|     -DCMAKE_BUILD_TYPE=Release \
 | |
|     -DCMAKE_CXX_FLAGS="-std=c++23 -fno-omit-frame-pointer -fno-common -g" &&
 | |
|     cmake --build ./build -j $(nproc)
 | |
| 
 | |
| for test in $(find ./build -type f -name '*_tests' -executable); do
 | |
|     echo "Running $test"
 | |
|     valgrind \
 | |
|         --leak-check=full \
 | |
|         --show-leak-kinds=all \
 | |
|         --track-origins=yes \
 | |
|         --verbose \
 | |
|         --num-callers=50 \
 | |
|         --gen-suppressions=all \
 | |
|         --suppressions='./tools/ci/amd64/gcc/valgrind.supp' \
 | |
|         --error-exitcode=255 ${test} || exit 1
 | |
| done
 |