From 94122d7becc6291b017e01f2c5a336d5a067bf5e Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 29 Nov 2022 09:08:14 +0000 Subject: [PATCH] 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. --- .gitignore | 7 ++++--- Makefile | 11 +++++++++-- tests/abuild_keygen_test | 9 +++++++-- tests/bin/openssl | 29 +++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 7 deletions(-) create mode 100755 tests/bin/openssl diff --git a/.gitignore b/.gitignore index f617c8e..3c1ca12 100644 --- a/.gitignore +++ b/.gitignore @@ -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* diff --git a/Makefile b/Makefile index b692385..aeff01e 100644 --- a/Makefile +++ b/Makefile @@ -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= ]" +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 diff --git a/tests/abuild_keygen_test b/tests/abuild_keygen_test index 5e8ecdf..09026a5 100755 --- a/tests/abuild_keygen_test +++ b/tests/abuild_keygen_test @@ -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 \ diff --git a/tests/bin/openssl b/tests/bin/openssl new file mode 100755 index 0000000..231bad4 --- /dev/null +++ b/tests/bin/openssl @@ -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 +