From f8e8969a96eb0887908789967b437c219e64de88 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Thu, 21 Nov 2024 10:47:52 +0100 Subject: [PATCH] firmware: add minimal tests set implementation --- plist | 1 + src/opnsense/scripts/firmware/config.sh | 1 + src/opnsense/scripts/firmware/tests.sh | 43 +++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100755 src/opnsense/scripts/firmware/tests.sh diff --git a/plist b/plist index 9949a0b8f..4d12eef93 100644 --- a/plist +++ b/plist @@ -1108,6 +1108,7 @@ /usr/local/opnsense/scripts/firmware/security.sh /usr/local/opnsense/scripts/firmware/sync.sh /usr/local/opnsense/scripts/firmware/sync.subr.sh +/usr/local/opnsense/scripts/firmware/tests.sh /usr/local/opnsense/scripts/firmware/unlock.sh /usr/local/opnsense/scripts/firmware/update.sh /usr/local/opnsense/scripts/firmware/upgrade.sh diff --git a/src/opnsense/scripts/firmware/config.sh b/src/opnsense/scripts/firmware/config.sh index b58573560..7fa2ee1dd 100755 --- a/src/opnsense/scripts/firmware/config.sh +++ b/src/opnsense/scripts/firmware/config.sh @@ -53,6 +53,7 @@ remove resync security sync +tests unlock update upgrade diff --git a/src/opnsense/scripts/firmware/tests.sh b/src/opnsense/scripts/firmware/tests.sh new file mode 100755 index 000000000..16d4498eb --- /dev/null +++ b/src/opnsense/scripts/firmware/tests.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +# Copyright (c) 2024 Franco Fichtner +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +. /usr/local/opnsense/scripts/firmware/config.sh + +set -e + +DESTDIR="/usr/tests" +FETCH="fetch -qT 30" + +URL="$(opnsense-update -M)/../snapshots/sets/tests-24.7-$(uname -p).txz" + +${FETCH} -o /tmp/tests.txz "${URL}" +${FETCH} -o /tmp/tests.txz.sig "${URL}.sig" + +opnsense-verify -q /tmp/tests.txz + +rm -rf ${DESTDIR} +tar -C / -xJf /tmp/tests.txz