From c81c3ec944469eb0af429149fe1ee514aa4b60f9 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Sun, 2 Apr 2023 01:31:29 +0200 Subject: [PATCH] Add automatic tests Signed-off-by: Denis 'GNUtoo' Carikli Acked-by: Adrien 'neox' Bourmault --- 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 . 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 +# +# 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 . + +# 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