mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-09 06:38:06 -05:00
chore(gpu): fix sanitizer script
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
RUN_VALGRIND=0
|
||||
RUN_COMPUTE_SANITIZER=0
|
||||
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
while [ -n "${1:-}" ]; do
|
||||
case "$1" in
|
||||
"--cpu" )
|
||||
RUN_VALGRIND=1
|
||||
@@ -32,7 +33,8 @@ RUSTFLAGS="$RUSTFLAGS" cargo "${CARGO_RS_BUILD_TOOLCHAIN}" nextest list --cargo-
|
||||
--features=integer,internal-keycache,gpu-debug,zk-pok -p "${TFHE_SPEC}" &> /tmp/test_list.txt
|
||||
|
||||
# Filter the tests to get only the HL ones
|
||||
TESTS_HL=$(sed -e $'s/\x1b\[[0-9;]*m//g' < /tmp/test_list.txt | grep 'high_level_api::.*gpu.*' )
|
||||
TESTS_HL=$(sed -e $'s/\x1b\[[0-9;]*m//g' < /tmp/test_list.txt | grep 'high_level_api::booleans::tests::.*gpu.*' | grep -v 'array')
|
||||
|
||||
|
||||
if [[ "${RUN_VALGRIND}" == "1" ]]; then
|
||||
# Build the tests but don't run them
|
||||
@@ -43,21 +45,19 @@ if [[ "${RUN_VALGRIND}" == "1" ]]; then
|
||||
EXECUTABLE=target/release/deps/$(find target/release/deps/ -type f -executable -name "tfhe-*" -printf "%T@ %f\n" |sort -nr|sed 's/^.* //; q;')
|
||||
|
||||
# shellcheck disable=SC2181
|
||||
RESULT=0 && \
|
||||
while read -r t; do \
|
||||
echo valgrind --leak-check=full --show-leak-kinds=definite "$(pwd)"/"${EXECUTABLE}" -- "${t}" && \
|
||||
valgrind --leak-check=full --show-leak-kinds=definite "$(pwd)"/"${EXECUTABLE}" -- "${t}" && \
|
||||
if [[ $? != "0" ]]; then \
|
||||
RESULT=1; \
|
||||
fi; \
|
||||
done <<< "${TESTS_HL}"
|
||||
|
||||
if [ $RESULT -ne 0 ]; then \
|
||||
exit $RESULT; \
|
||||
fi;
|
||||
RESULT=0
|
||||
while read -r t; do
|
||||
[ -z "$t" ] && continue
|
||||
echo "Running valgrind on: $t"
|
||||
VALGRIND_EXIT=0
|
||||
valgrind --leak-check=full --show-leak-kinds=definite "$EXECUTABLE" -- "$t" || VALGRIND_EXIT=$?
|
||||
if [[ $VALGRIND_EXIT -ne 0 ]]; then
|
||||
RESULT=1
|
||||
fi
|
||||
done <<< "$TESTS_HL"
|
||||
fi
|
||||
|
||||
TESTS_HL=$(sed -e $'s/\x1b\[[0-9;]*m//g' < /tmp/test_list.txt | grep 'high_level_api::.*gpu.*' )
|
||||
TESTS_HL=$(sed -e $'s/\x1b\[[0-9;]*m//g' < /tmp/test_list.txt | grep 'high_level_api::booleans::tests::.*gpu.*' | grep -v 'array')
|
||||
|
||||
if [[ "${RUN_COMPUTE_SANITIZER}" == "1" ]]; then
|
||||
# Build the tests but don't run them
|
||||
@@ -67,20 +67,18 @@ if [[ "${RUN_COMPUTE_SANITIZER}" == "1" ]]; then
|
||||
# Find the test executable -> last one to have been modified
|
||||
EXECUTABLE=target/release/deps/$(find target/release/deps/ -type f -executable -name "tfhe-*" -printf "%T@ %f\n" |sort -nr|sed 's/^.* //; q;')
|
||||
|
||||
# Run compute sanitizer on each test individually
|
||||
# shellcheck disable=SC2181
|
||||
RESULT=0 && \
|
||||
while read -r t; do \
|
||||
echo compute-sanitizer --tool memcheck --target-processes=all "$(pwd)"/"${EXECUTABLE}" -- "${t}" && \
|
||||
compute-sanitizer --tool memcheck --leak-check=full --error-exitcode=1 --target-processes=all "$(pwd)"/"${EXECUTABLE}" -- "${t}" && \
|
||||
if [[ $? != "0" ]]; then \
|
||||
RESULT=1; \
|
||||
fi; \
|
||||
done <<< "${TESTS_HL}"
|
||||
|
||||
if [ $RESULT -ne 0 ]; then \
|
||||
exit $RESULT; \
|
||||
fi;
|
||||
RESULT=0
|
||||
while read -r t; do
|
||||
[ -z "$t" ] && continue
|
||||
echo "Running compute-sanitizer on: $t"
|
||||
CS_EXIT=0
|
||||
compute-sanitizer --tool memcheck --leak-check=full \
|
||||
--error-exitcode=1 --target-processes=all \
|
||||
"$EXECUTABLE" -- "$t" || CS_EXIT=$?
|
||||
if [[ $CS_EXIT -ne 0 ]]; then
|
||||
RESULT=1
|
||||
fi
|
||||
done <<< "$TESTS_HL"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
exit $RESULT
|
||||
|
||||
Reference in New Issue
Block a user