# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout files.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: python3 ../cg_diff --mod-funcname="s/main/MAIN/" ann1.cgout ann1b.cgout > ann-diff1.cgout && python3 ../cg_annotate --mod-filename="s/a.c/A.c/" --mod-funcname s/MAIN/Main/ ann-diff1.cgout
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout files.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: python3 ../cg_diff --mod-filename="s/.*aux\//aux\//i" --mod-funcname="s/(f[a-z]*)[0-9]/\1N/g" ann-diff2a.cgout ann-diff2b.cgout > ann-diff2c.cgout && python3 ../cg_annotate ann-diff2c.cgout
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout files.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: python3 ../cg_annotate --diff --mod-filename="s/.*aux\//aux\//i" --mod-funcname="s/(f[a-z]*)[0-9]/\1N/g" ann-diff2a.cgout ann-diff2b.cgout
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout files.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
# The `sleep` is to ensure the mtime of the second touched file is greater than
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout files.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: python3 ../cg_merge ann-merge1a.cgout ann-merge1b.cgout > ann-merge1c.cgout && python3 ../cg_annotate ann-merge1c.cgout
# the post-processing of the cgout files.
# The touch is because git clone might give the cgout files a timestamp
# in the future wrt the source file which generates a warning and post failure
-prereq: touch ann-merge1a.cgout ann-merge1b.cgout
+prereq: touch ann-merge1a.cgout ann-merge1b.cgout && ../../tests/python_test.sh
prog: ../../tests/true
vgopts: --cachegrind-out-file=cachegrind.out
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout file.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: touch ann1.cgout && python3 ../cg_annotate --show=Ir,I1mr,ILmr --show-percs=no ann1.cgout
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout file.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
post: touch ann1.cgout && python3 ../cg_annotate --sort=Dr --show=Dw,Dr,Ir --auto=no ann1.cgout
# The `prog` doesn't matter because we don't use its output. Instead we test
# the post-processing of the cgout file.
prog: ../../tests/true
+prereq: ../../tests/python_test.sh
vgopts: --cachegrind-out-file=cachegrind.out
# The `sleep` is to ensure the mtime of the second touched file is greater than
filter_xml_frames \
platform_test \
post_regtest_checks \
+ python_test.sh \
vg_regtest
noinst_SCRIPTS = \
--- /dev/null
+#!/bin/sh
+
+# We need a python3 binary
+type python3 2>/dev/null 1>/dev/null || exit 1
+
+# And it needs to support at least version 3.9
+python3 -c 'import sys; assert sys.version_info >= (3,9)' 2>/dev/null || exit 1
+
+exit 0