Add automatic tests

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@a-lec.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2023-04-02 01:31:29 +02:00
parent 3e9180a277
commit c81c3ec944
Signed by: GNUtoo
GPG Key ID: 5F5DFCC14177E263
2 changed files with 81 additions and 1 deletions

View File

@ -14,7 +14,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
DOMAIN := libreboot.at DOMAIN := libreboot.at
.PHONY: all build help upload website.tar.gz .PHONY: all build check help upload website.tar.gz
all: website.tar.gz all: website.tar.gz
@ -45,11 +45,25 @@ build:
-- \ -- \
./build.sh $(BUILD_OPTIONS) ./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: help:
@printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \ @printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \
"Available commands:" \ "Available commands:" \
"help # Print this help" \ "help # Print this help" \
"test # run lighttpd on localhost:8080" \ "test # run lighttpd on localhost:8080" \
"check # Run automatic tests" \
"upload # Upload the website to https://$(DOMAIN)" \ "upload # Upload the website to https://$(DOMAIN)" \
"website.tar.gz # Create a tarball of the website" "website.tar.gz # Create a tarball of the website"

66
check.sh Executable file
View File

@ -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