Path: blob/main/Modules/_decimal/tests/runall-memorydebugger.sh
12 views
#!/bin/sh12#3# Purpose: test with and without contextvar, all machine configurations, pydebug,4# refleaks, release build and release build with valgrind.5#6# Synopsis: ./runall-memorydebugger.sh [--all-configs64 | --all-configs32]7#8# Requirements: valgrind9#1011# Set additional CFLAGS and LDFLAGS for ./configure12ADD_CFLAGS=13ADD_LDFLAGS=141516CONFIGS_64="x64 uint128 ansi64 universal"17CONFIGS_32="ppro ansi32 ansi-legacy universal"1819VALGRIND="valgrind --tool=memcheck --leak-resolution=high \20--suppressions=Misc/valgrind-python.supp"2122# Get args23case $@ in24*--all-configs64*)25CONFIGS=$CONFIGS_6426;;27*--all-configs32*)28CONFIGS=$CONFIGS_3229;;30*)31CONFIGS="auto"32;;33esac3435# gmake required36GMAKE=`which gmake`37if [ X"$GMAKE" = X"" ]; then38GMAKE=make39fi4041# Pretty print configurations42print_config ()43{44len=`echo $@ | wc -c`45margin="#%"`expr \( 74 - $len \) / 2`"s"4647echo ""48echo "# ========================================================================"49printf $margin ""50echo $@51echo "# ========================================================================"52echo ""53}545556cd ..5758# test_decimal: refleak, regular and Valgrind tests59for args in "--without-decimal-contextvar" ""; do60for config in $CONFIGS; do6162unset PYTHON_DECIMAL_WITH_MACHINE63libmpdec_config=$config64if [ X"$config" != X"auto" ]; then65PYTHON_DECIMAL_WITH_MACHINE=$config66export PYTHON_DECIMAL_WITH_MACHINE67else68libmpdec_config=""69fi7071############ refleak tests ###########72print_config "refleak tests: config=$config" $args73printf "\nbuilding python ...\n\n"7475cd ../../76$GMAKE distclean > /dev/null 2>&177./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" --with-pydebug $args > /dev/null 2>&178$GMAKE | grep _decimal7980printf "\n\n# ======================== refleak tests ===========================\n\n"81./python -m test -uall -R 3:3 test_decimal828384############ regular tests ###########85print_config "regular tests: config=$config" $args86printf "\nbuilding python ...\n\n"8788$GMAKE distclean > /dev/null 2>&189./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" $args > /dev/null 2>&190$GMAKE | grep _decimal9192printf "\n\n# ======================== regular tests ===========================\n\n"93./python -m test -uall test_decimal949596########### valgrind tests ###########97valgrind=$VALGRIND98case "$config" in99# Valgrind has no support for 80 bit long double arithmetic.100ppro) valgrind= ;;101auto) case `uname -m` in102i386|i486|i586|i686) valgrind= ;;103esac104esac105106print_config "valgrind tests: config=$config" $args107printf "\nbuilding python ...\n\n"108$GMAKE distclean > /dev/null 2>&1109./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" --without-pymalloc $args > /dev/null 2>&1110$GMAKE | grep _decimal111112printf "\n\n# ======================== valgrind tests ===========================\n\n"113$valgrind ./python -m test -uall test_decimal114115cd Modules/_decimal116done117done118119# deccheck120cd ../../121for args in "--without-decimal-contextvar" ""; do122for config in $CONFIGS; do123124unset PYTHON_DECIMAL_WITH_MACHINE125if [ X"$config" != X"auto" ]; then126PYTHON_DECIMAL_WITH_MACHINE=$config127export PYTHON_DECIMAL_WITH_MACHINE128fi129130############ debug ############131print_config "deccheck: config=$config --with-pydebug" $args132printf "\nbuilding python ...\n\n"133134$GMAKE distclean > /dev/null 2>&1135./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" --with-pydebug $args > /dev/null 2>&1136$GMAKE | grep _decimal137138printf "\n\n# ========================== debug ===========================\n\n"139./python Modules/_decimal/tests/deccheck.py140141########### regular ###########142print_config "deccheck: config=$config" $args143printf "\nbuilding python ...\n\n"144145$GMAKE distclean > /dev/null 2>&1146./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" $args > /dev/null 2>&1147$GMAKE | grep _decimal148149printf "\n\n# ======================== regular ===========================\n\n"150./python Modules/_decimal/tests/deccheck.py151152########### valgrind ###########153valgrind=$VALGRIND154case "$config" in155# Valgrind has no support for 80 bit long double arithmetic.156ppro) valgrind= ;;157auto) case `uname -m` in158i386|i486|i586|i686) valgrind= ;;159esac160esac161162print_config "valgrind deccheck: config=$config" $args163printf "\nbuilding python ...\n\n"164165$GMAKE distclean > /dev/null 2>&1166./configure CFLAGS="$ADD_CFLAGS" LDFLAGS="$ADD_LDFLAGS" --without-pymalloc $args > /dev/null 2>&1167$GMAKE | grep _decimal168169printf "\n\n# ======================== valgrind ==========================\n\n"170$valgrind ./python Modules/_decimal/tests/deccheck.py171done172done173174175176177178