| # Copyright (c) 2009-2014 Petri Lehtinen <petri@digip.org> |
| # |
| # Jansson is free software; you can redistribute it and/or modify |
| # it under the terms of the MIT license. See LICENSE for details. |
| |
| [ -z "$VALGRIND" ] && VALGRIND=0 |
| |
| VALGRIND_CMDLINE="valgrind --leak-check=full --show-reachable=yes --track-origins=yes -q" |
| |
| if [ $VALGRIND -eq 1 ]; then |
| test_runner="$VALGRIND_CMDLINE" |
| json_process="$VALGRIND_CMDLINE $json_process" |
| else |
| test_runner="" |
| fi |
| |
| valgrind_check() { |
| if [ $VALGRIND -eq 1 ]; then |
| # Check for Valgrind error output. The valgrind option |
| # --error-exitcode is not enough because Valgrind doesn't |
| # think unfreed allocs are errors. |
| if grep -E -q '^==[0-9]+== ' $1; then |
| touch $test_log/valgrind_error |
| return 1 |
| fi |
| fi |
| } |
| |
| valgrind_show_error() { |
| if [ $VALGRIND -eq 1 -a -f $test_log/valgrind_error ]; then |
| echo "valgrind detected an error" |
| return 0 |
| fi |
| return 1 |
| } |