blob: 80f2edb0c1783d9836cc4249a40f022683839297 (
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
|
#!/usr/bin/env bash
targetname=$1
# Note the target name for the documentation targets (-C, -Python, -Gjs)
# incorrectly include a relative path to the srcdir, strip that off for usage
# in directory diffs.
targetbase=${targetname##*/}
# The "shared-library" field of the GIR is platform-dependent. For example, on
# OSX, shared libraries have the extension .dylib. Ignore this field when
# determining whether the output succeeded.
ignore_expr='-I shared-library=".*"$'
case $targetname in
*.gir)
len=${#targetname}
limit=$(expr $len - 4)
diff -u -U 10 ${ignore_expr} ${srcdir}/${targetname:0:${limit}}-expected.gir ${builddir}/${targetname}
exit $?
;;
*.typelib)
# Do nothing for typelibs, this just ensures they build as part of the tests
exit 0
;;
*-C)
diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase}
exit $?
;;
*-Python)
diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase}
exit $?
;;
*-Gjs)
diff -r -u -w -I '^\s*$' -U 10 ${srcdir}/${targetbase}-expected ${builddir}/${targetbase}
exit $?
;;
*-sections.txt)
diff -u -w -I '^\s*$' -U 10 ${srcdir}/${targetname::$((${#targetname} - 4))}-expected.txt ${builddir}/${targetname}
exit $?
;;
*.py)
if [[ -z "${TESTARGS}" ]]; then
# Run as regular Python file if TESTARGS is empty
PYTHONPATH=${top_builddir}:${top_srcdir} ${PYTHON} ${targetname}
exit $?
else
# Run as Python unittest module with TESTARGS concatenated to the basename of target.
# Ensure we are in the directory containing the python module first.
export PYTHONPATH=$(readlink -f ${top_builddir}):$(readlink -f ${top_srcdir})
modulename=$(basename "${targetbase}" .py)
(cd $(dirname ${targetname}) && ${PYTHON} -m unittest -v "${modulename}.${TESTARGS}")
exit $?
fi
;;
*)
echo $"Usage: [TESTARGS=<args>] gi-tester <targetname>"
exit 1
;;
esac
|