2
1
Fork 0
mirror of https://git.savannah.gnu.org/git/gnuboot.git synced 2025-01-27 09:40:20 +01:00
gnuboot/resources/packages/release/test
Denis 'GNUtoo' Carikli a113eceaa4
packages: release: test: really warn when files are missing from ${release_files}.
Before this commit if some files were in the release directory but
missing from ${release_files}, it would show something like that:
    [ !! ] release/i945-thinkpads-install/gnuboot_src.tar

The ${release_files} variable is used to test for files missing in the
release directory, and it prints something if a file is missing:
    [ !! ] release/roms/gnuboot-0.1-rc3-95-g1783708_d510mo.tar.xz is missing

Since confusion is possible between the two tests (especially if the
people looking at the log don't have all the code and context in mind
when doing that), this commit changes the code to print something like
that instead:
    [ !! ] release/i945-thinkpads-install/gnuboot_src.tar missing in ${release_files}

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
neox: fixed commit message
Acked-by: Adrien Bourmault <neox@gnu.org>
2024-09-08 17:34:14 +02:00

207 lines
5.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# Copyright (C) 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/>.
. resources/scripts/misc/sysexits.sh
topdir="$(realpath "$(dirname "$(dirname "$(dirname "$(dirname "$0")")")")")"
progname="resources/packages/tests/test-release"
rev="$("${topdir}"/resources/git/git describe --tags HEAD)"
usage()
{
progname="$1"
printf "Usage: %s [options]\n\n" "${progname}"
printf "Available options:\n"
printf "\t-h, --help\n"
printf "\t\tDisplay this help and exit.\n"
}
test_file()
{
path="$1"
test -f "${path}" ; ret=$?
if [ ${ret} -eq 0 ] ; then
echo "[ OK ] ${path}"
else
echo "[ !! ] ${path} is missing"
exit ${ret}
fi
}
test_qemu_rom_archive()
{
target="qemu-pc_2mb"
dir="release"
keyboard_layouts=" \
colemak \
deqwertz \
esqwerty \
frazerty \
frdvbepo \
itqwerty \
svenska \
trqwerty \
ukdvorak \
ukqwerty \
usdvorak \
usqwerty \
"
archive_files=""
for kb in ${keyboard_layouts} ; do
cbfb="libgfxinit_corebootfb"
txtmode="libgfxinit_txtmode"
archive_files="${archive_files} \
${target}/grub_${target}_${cbfb}_${kb}.rom \
${target}/grub_${target}_${txtmode}_${kb}.rom \
${target}/seabios_grubfirst_${target}_${cbfb}_${kb}.rom \
${target}/seabios_grubfirst_${target}_${txtmode}_${kb}.rom \
${target}/seabios_withgrub_${target}_${cbfb}_${kb}.rom \
${target}/seabios_withgrub_${target}_${txtmode}_${kb}.rom \
"
done
archive_files="${archive_files} qemu-pc_2mb/version"
archive_files="${archive_files} qemu-pc_2mb/versiondate"
archive_files="${archive_files} qemu-pc_2mb/projectname"
archive="${dir}"/roms/gnuboot-"${rev}"_"${target}".tar.xz
for path in $(tar tf "${archive}" | grep -v '/$') ; do
found=0
for archive_file in ${archive_files} ; do
if [ "${path}" = "${archive_file}" ] ; then
found=1
fi
done
if [ $found -eq 0 ] ; then
echo "[ !! ] $path"
fi
done
}
test_release_dir()
{
dir="release"
targets="\
d510mo \
d510mo_16mb \
d945gclf \
d945gclf_16mb \
g43t-am3 \
g43t-am3_16mb \
ga-g41m-es2l \
kcma-d8-rdimm_16mb \
kcma-d8-rdimm_2mb \
kcma-d8-udimm_16mb \
kcma-d8-udimm_2mb \
kfsn4-dre_1mb \
kfsn4-dre_2mb \
kgpe-d16-rdimm_16mb \
kgpe-d16-rdimm_2mb \
kgpe-d16-udimm_16mb \
kgpe-d16-udimm_2mb \
macbook11 \
macbook11_16mb \
macbook21 \
macbook21_16mb \
qemu-pc_2mb \
r400_16mb \
r400_4mb \
r400_8mb \
r500_4mb \
t400_16mb \
t400_4mb \
t400_8mb \
t500_16mb \
t500_4mb \
t500_8mb \
t60_16mb_intelgpu \
t60_intelgpu \
w500_16mb \
w500_4mb \
w500_8mb \
x200_16mb \
x200_4mb \
x200_8mb \
x301_16mb \
x301_4mb \
x301_8mb \
x60 \
x60_16mb \
"
release_files=""
for target in ${targets} ; do
archive_path="${dir}"/roms/gnuboot-"${rev}"_"${target}".tar.xz
release_files="${release_files}"" ""${archive_path}"
done
release_files="${release_files}"" ""${dir}"/gnuboot-"${rev}"_src.tar.xz
release_files="${release_files}"" ""${dir}"/gnuboot-source-"${rev}".bundle
release_files="${release_files}"" ""${dir}"/untitled-"${rev}".bundle
release_files="${release_files}"" ""${dir}"/gnuboot-website-"${rev}".tar.gz
release_files="${release_files}"" ""${dir}"/i945-thinkpads-install/i945-thinkpads-install-utilities-deb-pack.deb
release_files="${release_files}"" ""${dir}"/i945-thinkpads-install/packages_src.tar
release_files="${release_files}"" ""${dir}"/i945-thinkpads-install/gnuboot_src.tar
release_files="${release_files}"" ""${dir}"/i945-thinkpads-install/i945-thinkpads-install-utilities-tarball-pack.tar.gz
for path in ${release_files} ; do
test_file "${path}"
done
while IFS= read -r -d '' path ; do
found=0
for release_file in ${release_files} ; do
if [ "${path}" = "${release_file}" ] ; then
found=1
fi
done
if [ $found -eq 0 ] ; then
echo "[ !! ] $path missing in \${release_files}"
fi
done < <(find "${dir}" -type f -print0)
}
test_release()
{
test_release_dir
test_qemu_rom_archive
}
if [ $# -eq 1 ] && { [ "$1" = "-h" ] || [ "$1" == "--help" ] ;} ; then
usage "${progname}"
exit 0
elif [ $# -eq 0 ] ; then
test_release
else
usage "${progname}"
exit ${EX_USAGE}
fi