mirror of https://git.tukaani.org/xz.git
ci: test Valgrind
Using `--trace-children=yes` has a trade-off here, as it makes
`test_scripts.sh` pretty slow when calling various non-xz utilities.
But I also feel like it's not useless to have Valgrind used there and it's
not easy to exclude Valgrind just for that one test...
I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working
immediately with some conditionally-built tests and I wondered if it was
worth spending time on at least while we're debating xz's future build
system situation.
[0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html
[1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/
(cherry picked from commit 6c095a98fb
)
This commit is contained in:
parent
5d20a61205
commit
2d2d5f14b3
|
@ -37,7 +37,7 @@ jobs:
|
||||||
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools
|
sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools valgrind
|
||||||
|
|
||||||
# Install Autotools on Mac
|
# Install Autotools on Mac
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
|
@ -89,6 +89,15 @@ jobs:
|
||||||
./build-aux/ci_build.sh -b autotools -p test -f "-fsanitize=address,undefined" -d sandbox
|
./build-aux/ci_build.sh -b autotools -p test -f "-fsanitize=address,undefined" -d sandbox
|
||||||
cd ../xz_build && make distclean
|
cd ../xz_build && make distclean
|
||||||
|
|
||||||
|
- name: Build with Valgrind
|
||||||
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
|
run: ./build-aux/ci_build.sh -b autotools -p build -d sandbox
|
||||||
|
- name: Test with Valgrind
|
||||||
|
if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
|
||||||
|
run: |
|
||||||
|
./build-aux/ci_build.sh -b autotools -p test -d sandbox -w "valgrind --quiet --trace-children=yes --exit-on-first-error=yes --error-exitcode=1"
|
||||||
|
cd ../xz_build && make distclean
|
||||||
|
|
||||||
- name: Build with musl libc
|
- name: Build with musl libc
|
||||||
if: ${{ matrix.os == 'ubuntu-latest'}}
|
if: ${{ matrix.os == 'ubuntu-latest'}}
|
||||||
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
|
run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
|
||||||
|
|
|
@ -53,7 +53,7 @@ ARTIFACTS_DIR_NAME="output"
|
||||||
# Parse arguments #
|
# Parse arguments #
|
||||||
###################
|
###################
|
||||||
|
|
||||||
while getopts a:b:c:d:l:m:n:s:p:f:h opt; do
|
while getopts a:b:c:d:l:m:n:s:p:f:w:h opt; do
|
||||||
# b option can have either value "autotools" OR "cmake"
|
# b option can have either value "autotools" OR "cmake"
|
||||||
case ${opt} in
|
case ${opt} in
|
||||||
h)
|
h)
|
||||||
|
@ -108,6 +108,8 @@ while getopts a:b:c:d:l:m:n:s:p:f:h opt; do
|
||||||
CFLAGS="$OPTARG"
|
CFLAGS="$OPTARG"
|
||||||
export CFLAGS
|
export CFLAGS
|
||||||
;;
|
;;
|
||||||
|
w) WRAPPER="$OPTARG"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -260,7 +262,7 @@ then
|
||||||
autotools)
|
autotools)
|
||||||
cd "$DEST_DIR"
|
cd "$DEST_DIR"
|
||||||
# If the tests fail, copy the test logs into the artifacts folder
|
# If the tests fail, copy the test logs into the artifacts folder
|
||||||
if make check
|
if make check LOG_COMPILER="$WRAPPER"
|
||||||
then
|
then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
@ -271,7 +273,7 @@ then
|
||||||
;;
|
;;
|
||||||
cmake)
|
cmake)
|
||||||
cd "$DEST_DIR"
|
cd "$DEST_DIR"
|
||||||
if make test
|
if ${WRAPPER} make test
|
||||||
then
|
then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue