diff options
author | P. J. McDermott <pjm@nac.net> | 2013-07-04 15:15:44 (EDT) |
---|---|---|
committer | P. J. McDermott <pjm@nac.net> | 2013-07-04 15:16:29 (EDT) |
commit | 60d73be3ce985be8eb333bfeb4c437f09e4f955c (patch) | |
tree | 4c52529b74d15e305028c717e38a2481e5eb4d0d | |
parent | c6fd49809b9bc0a4aeea44ebf18ed6c0f9983b1c (diff) |
bootstrap-stage2-test.sh: New file.
-rwxr-xr-x | bootstrap-stage2-test.sh | 86 |
1 files changed, 86 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. + +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 "${@}" |