From 60d73be3ce985be8eb333bfeb4c437f09e4f955c Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 04 Jul 2013 15:15:44 -0400 Subject: bootstrap-stage2-test.sh: New file. --- diff --git a/bootstrap-stage2-test.sh b/bootstrap-stage2-test.sh new file mode 100755 index 0000000..d0c0d78 --- /dev/null +++ b/bootstrap-stage2-test.sh @@ -0,0 +1,86 @@ +#!/bin/sh +# +# Initial port bootstrap scripts +# bootstrap-stage2-test.sh +# Tests the installed stage 2 bootstrap system in a changed file system root. +# +# Copyright (C) 2013 Patrick "P. J." McDermott +# +# 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 2 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 . + +set -e + +ARCH= + +main() +{ + ARCH="$(cat /etc/proteanos_arch)" + + cat <<-EOF + + Testing packages in stage 2... + ============================== + EOF + + test_packages +} + +log() +{ + local msg i + + msg="$(printf "${@}")" + printf '\n%s\n' "${msg}" + i=0 + while [ ${i} -lt ${#msg} ]; do + printf '-' + i=$(($i + 1)) + done + printf '\n\n' +} + +test_packages() +{ + local zlib_upstream_ver opk + + cd root2 + + log 'Testing BusyBox...' + sudo chroot . true + + log 'Testing GNU readelf...' + sudo chroot . readelf -hl /usr/bin/readelf + + log 'Testing GCC...' + zlib_upstream_ver="$(printf '%s' ../pkg/zlib/zlib-*.orig.tar* | sed \ + 's|^.*/zlib-\([a-z0-9.~]*\).*\.orig\.tar.*$|\1|')" + tar -xjOf ../pkg/zlib/zlib-*.orig.tar* \ + "zlib-${zlib_upstream_ver}/examples/fitblk.c" >fitblk.c + sudo chroot . gcc -lz -o /fitblk /fitblk.c + sudo chroot . /fitblk 2>&1 | grep -F 'fitblk abort' >/dev/null + + log 'Testing opkg...' + for opk in ../root1/usr/src/*_${ARCH}_${PLAT}.opk \ + ../root1/usr/src/*_${ARCH}_all.opk \ + ../root1/usr/src/*_all_${PLAT}.opk \ + ../root1/usr/src/*_all_all.opk; do + [ -f "${opk}" ] || continue + cp "${opk}" . + done + sudo chroot . sh -c 'opkg install /*.opk' + + cd .. +} + +main "${@}" -- cgit v0.9.1