tests: pre-generate abuild keys

use a fake openssl for abuild-keykey and pre-generate the abuild keys.
This makes tests run significantly faster as we dont need to generate
new keys for each abuild-keygen test.
This commit is contained in:
Natanael Copa 2022-11-29 09:08:14 +00:00
parent 7d540bed4d
commit 94122d7bec
4 changed files with 49 additions and 7 deletions

7
.gitignore vendored
View File

@ -1,7 +1,7 @@
*.tar.bz2
*.o
*.1
*.5
*.o
*.tar.bz2
Kyuafile
abuild
abuild-fetch
@ -22,5 +22,6 @@ checkapk
devbuild
functions.sh
newapkbuild
src
pkg
src
tests/testdata/abuild.key*

View File

@ -80,7 +80,8 @@ P=$(PACKAGE)-$(VERSION)
all: $(USR_BIN_FILES) $(MAN_PAGES) functions.sh
clean:
@rm -f $(USR_BIN_FILES) $(MAN_PAGES) *.o functions.sh Kyuafile tests/Kyuafile
@rm -f $(USR_BIN_FILES) $(MAN_PAGES) *.o functions.sh Kyuafile \
tests/Kyuafile tests/testdata/abuild.key*
%.o: %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS-$@) -o $@ -c $<
@ -104,6 +105,12 @@ help:
@echo "$(P) makefile"
@echo "usage: make install [ DESTDIR=<path> ]"
tests/testdata/abuild.key:
openssl genrsa -out "$@" 4096
tests/testdata/abuild.key.pub: tests/testdata/abuild.key
openssl rsa -in "$<" -pubout -out "$@"
tests/Kyuafile: $(wildcard tests/*_test)
echo "syntax(2)" > $@
echo "test_suite('abuild')" >> $@
@ -116,7 +123,7 @@ Kyuafile: tests/Kyuafile
echo "test_suite('abuild')" >> $@
echo "include('tests/Kyuafile')" >> $@
check: $(SCRIPTS) $(USR_BIN_FILES) functions.sh tests/Kyuafile Kyuafile
check: $(SCRIPTS) $(USR_BIN_FILES) functions.sh tests/Kyuafile Kyuafile tests/testdata/abuild.key.pub
kyua test || (kyua report --verbose && exit 1)
install: $(USR_BIN_FILES) $(SAMPLES) $(MAN_PAGES) abuild.conf functions.sh

View File

@ -1,6 +1,7 @@
#!/usr/bin/env atf-sh
. $(atf_get_srcdir)/test_env.sh
SRCDIR="$(atf_get_srcdir)"
. "$SRCDIR"/test_env.sh
init_tests \
abuild_keygen_help \
abuild_keygen_invalid_opts \
@ -12,8 +13,12 @@ init_tests \
abuild_keygen_install_non_interactive \
abuild_keygen_install_doas
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
export ABUILD_SHAREDIR="$SRCDIR"/..
export GIT=false
export FAKEKEY="$SRCDIR/testdata/abuild.key"
export FAKEKEYPUB="$SRCDIR/testdata/abuild.key.pub"
PATH="$SRCDIR/bin:$PATH"
abuild_keygen_help_body() {
atf_check -s exit:0 \

29
tests/bin/openssl Executable file
View File

@ -0,0 +1,29 @@
#!/bin/sh
# fake openssl
while [ $# -gt 0 ]; do
case "$1" in
genrsa|rsa)
cmd="$1"
;;
-out)
shift
outfile="$1"
;;
-in)
shift
infile="$1"
esac
shift
done
case "$cmd" in
genrsa)
cat "$FAKEKEY" > "$outfile"
;;
rsa)
echo "writing RSA key" >&2
cat "$FAKEKEYPUB" > "$outfile"
;;
esac