mirror of
https://github.com/systemd/systemd.git
synced 2024-11-27 12:13:33 +08:00
Merge pull request #12510 from keszybz/test-directives
test: run check-directives.sh as part of the test suite
This commit is contained in:
commit
d7c5b3ec3e
10
meson.build
10
meson.build
@ -2928,6 +2928,16 @@ endforeach
|
||||
|
||||
############################################################
|
||||
|
||||
check_directives_sh = find_program('tools/check-directives.sh')
|
||||
|
||||
if want_tests != 'false'
|
||||
test('check-directives',
|
||||
check_directives_sh,
|
||||
args : project_source_root)
|
||||
endif
|
||||
|
||||
############################################################
|
||||
|
||||
# Enable tests for all supported sanitizers
|
||||
foreach tuple : sanitizers
|
||||
sanitizer = tuple[0]
|
||||
|
@ -1,6 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
which perl &>/dev/null || exit 77
|
||||
|
||||
function generate_directives() {
|
||||
perl -aF'/[\s,]+/' -ne '
|
||||
if (my ($s, $d) = ($F[0] =~ /^([^\s\.]+)\.([^\s\.]+)$/)) { $d{$s}{"$d="} = 1; }
|
||||
@ -11,22 +13,22 @@ function generate_directives() {
|
||||
|
||||
ret=0
|
||||
if ! diff \
|
||||
<(generate_directives src/network/networkd-network-gperf.gperf | sort) \
|
||||
<(cat test/fuzz/fuzz-network-parser/directives.network | sort); then
|
||||
<(generate_directives "$1"/src/network/networkd-network-gperf.gperf | sort) \
|
||||
<(cat "$1"/test/fuzz/fuzz-network-parser/directives.network | sort); then
|
||||
echo "Looks like test/fuzz/fuzz-network-parser/directives.network hasn't been updated"
|
||||
ret=1
|
||||
fi
|
||||
|
||||
if ! diff \
|
||||
<(generate_directives src/network/netdev/netdev-gperf.gperf | sort) \
|
||||
<(cat test/fuzz/fuzz-netdev-parser/directives.netdev | sort); then
|
||||
<(generate_directives "$1"/src/network/netdev/netdev-gperf.gperf | sort) \
|
||||
<(cat "$1"/test/fuzz/fuzz-netdev-parser/directives.netdev | sort); then
|
||||
echo "Looks like test/fuzz/fuzz-netdev-parser/directives.netdev hasn't been updated"
|
||||
ret=1
|
||||
fi
|
||||
|
||||
if ! diff \
|
||||
<(generate_directives src/udev/net/link-config-gperf.gperf | sort) \
|
||||
<(cat test/fuzz/fuzz-link-parser/directives.link | sort) ; then
|
||||
<(generate_directives "$1"/src/udev/net/link-config-gperf.gperf | sort) \
|
||||
<(cat "$1"/test/fuzz/fuzz-link-parser/directives.link | sort) ; then
|
||||
echo "Looks like test/fuzz/fuzz-link-parser/directives.link hasn't been updated"
|
||||
ret=1
|
||||
fi
|
||||
|
@ -15,7 +15,10 @@ CONT_NAME="${CONT_NAME:-debian-$DEBIAN_RELEASE-$RANDOM}"
|
||||
DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}"
|
||||
DOCKER_RUN="${DOCKER_RUN:-docker run}"
|
||||
REPO_ROOT="${REPO_ROOT:-$PWD}"
|
||||
ADDITIONAL_DEPS=(python3-libevdev python3-pyparsing clang)
|
||||
ADDITIONAL_DEPS=(python3-libevdev
|
||||
python3-pyparsing
|
||||
clang
|
||||
perl)
|
||||
|
||||
function info() {
|
||||
echo -e "\033[33;1m$1\033[0m"
|
||||
@ -47,7 +50,6 @@ for phase in "${PHASES[@]}"; do
|
||||
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true -Dman=true build
|
||||
$DOCKER_EXEC ninja -v -C build
|
||||
docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test
|
||||
$DOCKER_EXEC tools/check-directives.sh
|
||||
;;
|
||||
RUN_ASAN|RUN_CLANG_ASAN)
|
||||
if [[ "$phase" = "RUN_CLANG_ASAN" ]]; then
|
||||
|
@ -15,7 +15,15 @@ CONT_NAME="${CONT_NAME:-fedora-$FEDORA_RELEASE-$RANDOM}"
|
||||
DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}"
|
||||
DOCKER_RUN="${DOCKER_RUN:-docker run}"
|
||||
REPO_ROOT="${REPO_ROOT:-$PWD}"
|
||||
ADDITIONAL_DEPS=(dnf-plugins-core python2 iputils hostname libasan python3-pyparsing python3-evdev libubsan clang llvm)
|
||||
ADDITIONAL_DEPS=(dnf-plugins-core
|
||||
python2 iputils
|
||||
hostname libasan
|
||||
python3-pyparsing
|
||||
python3-evdev
|
||||
libubsan
|
||||
clang
|
||||
llvm
|
||||
perl)
|
||||
|
||||
function info() {
|
||||
echo -e "\033[33;1m$1\033[0m"
|
||||
@ -50,7 +58,6 @@ for phase in "${PHASES[@]}"; do
|
||||
$DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true build
|
||||
$DOCKER_EXEC ninja -v -C build
|
||||
$DOCKER_EXEC ninja -C build test
|
||||
$DOCKER_EXEC tools/check-directives.sh
|
||||
;;
|
||||
RUN_CLANG)
|
||||
docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dman=true build
|
||||
|
@ -2,14 +2,48 @@
|
||||
set -e
|
||||
set -x
|
||||
|
||||
PACKAGES=(cryptsetup-bin
|
||||
gettext
|
||||
iptables-dev
|
||||
iputils-ping
|
||||
isc-dhcp-client
|
||||
itstool
|
||||
kbd
|
||||
libblkid-dev
|
||||
libcap-dev
|
||||
libcurl4-gnutls-dev
|
||||
libgpg-error-dev
|
||||
liblz4-dev
|
||||
liblzma-dev
|
||||
libmicrohttpd-dev
|
||||
libmount-dev
|
||||
libmount-dev
|
||||
libqrencode-dev
|
||||
libxkbcommon-dev
|
||||
linux-image-virtual
|
||||
mount
|
||||
net-tools
|
||||
ninja-build
|
||||
perl
|
||||
python-lxml
|
||||
python3-evdev
|
||||
python3-lxml
|
||||
python3-pip
|
||||
python3-pyparsing
|
||||
python3-setuptools
|
||||
qemu-system-x86
|
||||
strace
|
||||
unifont
|
||||
util-linux)
|
||||
|
||||
bash -c "echo 'deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' >>/etc/apt/sources.list"
|
||||
|
||||
apt-get update
|
||||
apt-get build-dep systemd -y
|
||||
apt-get install -y util-linux libmount-dev libblkid-dev liblzma-dev libqrencode-dev libmicrohttpd-dev iptables-dev liblz4-dev libcurl4-gnutls-dev unifont itstool kbd cryptsetup-bin net-tools isc-dhcp-client iputils-ping strace qemu-system-x86 linux-image-virtual mount libgpg-error-dev libxkbcommon-dev python-lxml python3-lxml python3-pip libcap-dev
|
||||
apt-get install -y gettext python3-evdev python3-pyparsing libmount-dev python3-setuptools ninja-build
|
||||
apt-get install -y "${PACKAGES[@]}"
|
||||
pip3 install meson
|
||||
|
||||
cd ${REPO_ROOT:-$(pwd)}
|
||||
cd ${REPO_ROOT:-$PWD}
|
||||
|
||||
sed -i 's/2\.30/2.27/' meson.build
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
dnf-plugins-core
|
||||
meson
|
||||
ninja-build
|
||||
perl
|
||||
python
|
||||
|
Loading…
Reference in New Issue
Block a user