2025-07-20 11:12:29 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#!/bin/bash
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								set -e
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								cd $(git rev-parse --show-toplevel)/
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 08:58:27 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								rm -rf ./build && mkdir build/
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-20 11:12:29 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-07 20:27:46 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Xvfb :99 -screen 0 1024x768x16 &
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-18 19:28:47 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								export CXX=$(which clang++)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								export CC=$(which clang)
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-21 14:11:58 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								export DISPLAY=:99
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-07 20:27:46 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 08:58:27 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								cmake . \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-Bbuild \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-GNinja \
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-21 11:03:01 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								-DCMAKE_LINKER_TYPE=MOLD \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-DENABLE_UNIT_TESTS=ON \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-DENABLE_LLVM_COVERAGE=ON \
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-21 13:36:18 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								-DCMAKE_BUILD_TYPE=Release \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								-DCMAKE_CXX_FLAGS="-std=c++23 -stdlib=libc++ -g -fno-omit-frame-pointer" \
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:02:15 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								&& cmake --build ./build -j `nproc`
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-20 11:12:29 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:02:15 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								mkdir -p ./build/coverage/ 
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								for test in $(find ./build -type f -name '*_tests' -executable); do
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    export LLVM_PROFILE_FILE="./build/coverage/$(basename "$(dirname "$test")").profraw";
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    echo ${LLVM_PROFILE_FILE} >> ./build/coverage/list;
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-24 10:07:52 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    gdb \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    --return-child-result \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -ex='set confirm off' \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -ex='set pagination off' \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -ex='run' \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -ex='bt full' \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -ex='quit' \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    -q \
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 09:37:44 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    "$test"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								done
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:15:38 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								llvm-profdata merge --input-files './build/coverage/list' -o "./build/coverage/merged.profdata" 
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:02:15 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								find ./build/modules -type f -name "*.profraw" -exec rm -fv {} +
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 19:06:37 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 18:36:58 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								LLVM_COV_SHOW=$(llvm-cov show \
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:08:18 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        -instr-profile='./build/coverage/merged.profdata' \
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:02:15 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        $(find ./build -type f -name '*_tests' -executable -exec printf -- '-object %s ' {} \;) \
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        $(find ./build -type f -name '*\.a' -exec printf -- '-object %s ' {} \;) \
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 18:56:20 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        -ignore-filename-regex='\.test\.cpp$' \
							 | 
						
					
						
							
								
									
										
										
										
											2025-09-21 13:36:18 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        -ignore-filename-regex='\.fuzz\.cpp$'
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 18:36:58 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								)
							 | 
						
					
						
							
								
									
										
										
										
											2025-07-21 18:30:51 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-10-08 09:08:18 +03:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								echo "${LLVM_COV_SHOW}" > './build/coverage/coverage.txt'
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								cd ./build/coverage/ && wget -qO- "https://codecov.io/bash" | bash
							 |