From 1641b089681ffcecc5a0a094ddd641c66447932d Mon Sep 17 00:00:00 2001 From: Julio Merino Date: Wed, 4 Dec 2024 07:15:23 -0800 Subject: [PATCH 1/2] Switch from Kyua to automake's test execution --- .gitignore | 4 ++++ Makefile.am | 33 ++++++++------------------------- configure.ac | 4 ---- 3 files changed, 12 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index b3cccd5..348017b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,13 @@ +*~ *_test +*.log +*.trs Makefile Makefile.in aclocal.m4 admin/install-sh admin/missing +admin/test-driver autom4te.cache config.log config.status diff --git a/Makefile.am b/Makefile.am index 06f1921..0a80dba 100644 --- a/Makefile.am +++ b/Makefile.am @@ -80,45 +80,28 @@ endif dist_pkgtests_DATA = Kyuafile -pkgtests_SCRIPTS = sysbuild_test +TESTS = sysbuild_test +check_SCRIPTS = sysbuild_test CLEANFILES += sysbuild_test EXTRA_DIST += sysbuild_test.sh sysbuild_test: $(srcdir)/sysbuild_test.sh $(AM_V_GEN)source=sysbuild_test.sh target=sysbuild_test; \ $(BUILD_TEST) -pkgtests_SCRIPTS += sysbuild4cron_test +TESTS += sysbuild4cron_test +check_SCRIPTS += sysbuild4cron_test CLEANFILES += sysbuild4cron_test EXTRA_DIST += sysbuild4cron_test.sh sysbuild4cron_test: $(srcdir)/sysbuild4cron_test.sh $(AM_V_GEN)source=sysbuild4cron_test.sh target=sysbuild4cron_test; \ $(BUILD_TEST) -if HAVE_KYUA -CHECK_ENVIRONMENT = PATH=$(abs_top_builddir):$${PATH} -CHECK_ENVIRONMENT += SYSBUILD_SHAREDIR="$(abs_top_srcdir)" +TESTS_ENVIRONMENT = PATH=$(abs_top_builddir):$${PATH} +TESTS_ENVIRONMENT += SYSBUILD_SHAREDIR="$(abs_top_srcdir)" INSTALLCHECK_ENVIRONMENT = PATH=$(prefix)/bin:$${PATH} -check-local: check-kyua -PHONY_TARGETS += check-kyua -check-kyua: - $(CHECK_ENVIRONMENT) $(TESTS_ENVIRONMENT) \ - $(KYUA) --config=none test \ - --kyuafile='$(top_srcdir)/Kyuafile' --build-root='$(top_builddir)' - -installcheck-local: installcheck-kyua -PHONY_TARGETS += installcheck-kyua -installcheck-kyua: - cd $(pkgtestsdir) && $(INSTALLCHECK_ENVIRONMENT) $(TESTS_ENVIRONMENT) \ - $(KYUA) --config=none test -else # HAVE_KYUA -PHONY_TARGETS += missing-kyua -missing-kyua: - @echo "WARNING: kyua not found; no tests run" - -check-local: missing-kyua -installcheck-local: missing-kyua -endif # HAVE_KYUA +installcheck-local: + $(MAKE) $(AM_MAKEFLAGS) check-TESTS TESTS_ENVIRONMENT="$(INSTALLCHECK_ENVIRONMENT)" PHONY_TARGETS += clean-all clean-all: diff --git a/configure.ac b/configure.ac index 4b9b0cb..4385a7c 100644 --- a/configure.ac +++ b/configure.ac @@ -68,10 +68,6 @@ m4_ifndef([SHTK_CHECK], SHTK_CHECK([>= 1.7]) -AC_PATH_PROG([KYUA], [kyua]) -AM_CONDITIONAL([HAVE_KYUA], [test -n "${KYUA}"]) - - AM_CONDITIONAL([HOST_IS_NETBSD], [test "$(uname -s)" = NetBSD]) From a9e0ee7e4f1d5f044228c359dcda869901d72f20 Mon Sep 17 00:00:00 2001 From: Julio Merino Date: Tue, 31 Dec 2024 05:25:29 -0800 Subject: [PATCH 2/2] Add a workflow to run "make distcheck" --- .github/workflows/distcheck.sh | 42 ++++++++++++++++++++++++++ .github/workflows/install-shtk.sh | 50 +++++++++++++++++++++++++++++++ .github/workflows/test.yml | 44 +++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100755 .github/workflows/distcheck.sh create mode 100755 .github/workflows/install-shtk.sh create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/distcheck.sh b/.github/workflows/distcheck.sh new file mode 100755 index 0000000..8d2d514 --- /dev/null +++ b/.github/workflows/distcheck.sh @@ -0,0 +1,42 @@ +# Copyright 2024 Julio Merino. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google Inc. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -eux + +main() { + autoreconf -is + ./configure + local result=0 + make distcheck || result=$? + if [ "${result}" -ne 0 ]; then + find . -name test-suite.log | xargs cat + exit "${result}" + fi +} + +main "${@}" diff --git a/.github/workflows/install-shtk.sh b/.github/workflows/install-shtk.sh new file mode 100755 index 0000000..ca9d68e --- /dev/null +++ b/.github/workflows/install-shtk.sh @@ -0,0 +1,50 @@ +# Copyright 2024 Julio Merino. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google Inc. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set -eux + +readonly VERSION=1.7 + +main() { + local prefix="${1}"; shift + + local tmpdir + tmpdir="$(mktemp -d)" + trap "rm -rf '${tmpdir}'" EXIT HUP INT QUIT TERM + + cd "${tmpdir}" + + curl -LO "https://github.com/jmmv/shtk/releases/download/shtk-${VERSION}/shtk-${VERSION}.tar.gz" + tar xzvf "shtk-${VERSION}.tar.gz" + cd "shtk-${VERSION}" + ./configure --prefix="${prefix}" + make + sudo make install +} + +main "${@}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..2e096da --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,44 @@ +# Copyright 2024 Julio Merino. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of Google Inc. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +name: Test + +on: [push, pull_request] + +jobs: + distcheck-linux: + runs-on: ubuntu-latest + env: + ACLOCAL_PATH: /usr/local/share/aclocal + PKG_CONFIG_PATH: /usr/local/lib/pkgconfig:/usr/local/share/pkgconfig + steps: + - uses: actions/checkout@v4 + - run: sudo apt update + - run: sudo apt install cvs + - run: ./.github/workflows/install-shtk.sh /usr/local + - run: ./.github/workflows/distcheck.sh