summaryrefslogtreecommitdiffstats
path: root/src/fluent-bit/lib/jansson-e23f558/test/scripts/valgrind.sh
blob: afbdcee15469a03b7acfc1fd7a24feb767eb306c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Copyright (c) 2009-2016 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
}