libreboot-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lbwww-build][PATCH v1 1/5] Add automatic tests


From: Denis 'GNUtoo' Carikli
Subject: [lbwww-build][PATCH v1 1/5] Add automatic tests
Date: Mon, 3 Apr 2023 17:21:04 +0200

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
---
 Makefile.am | 16 ++++++++++++-
 check.sh    | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+), 1 deletion(-)
 create mode 100755 check.sh

diff --git a/Makefile.am b/Makefile.am
index 48da047..caa00fb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 DOMAIN := libreboot.at
 
-.PHONY: all build help upload website.tar.gz
+.PHONY: all build check help upload website.tar.gz
 
 all: website.tar.gz
 
@@ -45,11 +45,25 @@ build:
                -- \
                ./build.sh $(BUILD_OPTIONS)
 
+check: website.tar.gz
+       guix shell \
+               --container \
+               --network \
+               --emulate-fhs \
+               bash \
+               coreutils \
+               grep \
+               gzip \
+               tar \
+               -- \
+               ./check.sh --tarball website.tar.gz
+
 help:
        @printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \
                "Available commands:" \
                "help           # Print this help" \
                "test           # run lighttpd on localhost:8080" \
+               "check          # Run automatic tests" \
                "upload         # Upload the website to https://$(DOMAIN)" \
                "website.tar.gz # Create a tarball of the website"
 
diff --git a/check.sh b/check.sh
new file mode 100755
index 0000000..167fc01
--- /dev/null
+++ b/check.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# Copyright (C) 2022-2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+# For compatibility with sysexits.h (see man 3 sysexits.h for more details)
+EX_USAGE=64
+
+tarball=""
+
+help()
+{
+       echo "Usage: $0 [options]"
+       echo ""
+       echo "Available options:"
+       echo -e "\t-h, --help"
+       echo -e "\t\tDisplay this help and exit."
+       echo -e "\t-t, --tarball TARBALL"
+       echo -e "\t\tCheck TARBALL\n"
+}
+
+test_pattern()
+{
+       name="$1"
+       tarball="$2"
+       pattern="$3"
+
+       tar tf "${tarball}" | grep -q "${pattern}"
+
+       result=$?
+
+       if [ ${result} -eq 0 ] ; then
+               echo "[ OK ] ${name}"
+       else
+               echo "[ !! ] ${name} failed"
+               exit 1
+       fi
+}
+
+run_tests()
+{
+       test_pattern "html test" "${tarball}" '\.html$'
+       test_pattern "jpg test" "${tarball}" '\.jpg$'
+}
+
+if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then
+       help
+       exit 0
+elif [ $# -eq 2 ] && [ "$1" = "-t" -o "$1" = "--tarball" ] ; then
+       tarball="$(realpath $2)"
+       run_tests "${tarball}"
+else
+       help
+       exit ${EX_USAGE}
+fi
-- 
2.39.1


reply via email to

[Prev in Thread] Current Thread [Next in Thread]