summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/windows/msys/run_tests.sh
blob: f7c4b44cf51974a92618243338292bb9cbbf1bf9 (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash

set -e

# Parameters
DLLPATH_EXTRA=$1        # Path to supporting DLLs
CFLAGS_EXTRA=$2         # Extra C flags


LOG=run_tests.log

CFLAGS="-g -Igdtest/ -I. -I../src/ -D_WIN32 -DHAVE_SYS_STAT_H $CFLAGS_EXTRA"
LDFLAGS='-L../src -llibgd'
DLLPATH=../src:$DLLPATH_EXTRA

function run_gcc {
    if msg=`gcc $* 2>&1`; then
        true
    else
        echo "COMMAND: gcc $*" >> $LOG
        echo $msg >> $LOG
        false
    fi
}

# Switch to the working directory
export PATH=$PATH:$DLLPATH
cd ../../tests

# Initial setup
echo "Setting up..."
[ -f $LOG ] && rm -f $LOG
[ -f test_config.h ] || echo '#define GDTEST_TOP_DIR "."' > test_config.h
run_gcc -c $CFLAGS gdtest/gdtest.c


echo "Running tests:"
count=0
failures=0
compile_failures=0
for test in `find . -name \*.c | grep -vE '^./(fontconfig|gdtest|gdhelpers|xpm)'`; do
    count=`expr $count + 1`

    exe=${test%.c}.exe
    if run_gcc -o $exe $CFLAGS $LDFLAGS $test gdtest.o; then
        true;
    else
        echo "COMPILE_FAIL: $test"
        compile_failures=`expr $compile_failures + 1`
        continue
    fi

    echo "Running $exe:" >> $LOG
    if $exe 2>&1 >> $LOG; then
        echo "PASS: $test"
    else
        failures=`expr $failures + 1`
        echo "FAIL: $test"
    fi
    echo >> $LOG
done

echo "$failures failures and $compile_failures compile failures out of $count tests."
echo "Error messages in $LOG"