summaryrefslogtreecommitdiffstats
path: root/bootstrap-stage2-test.sh
diff options
context:
space:
mode:
authorP. 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)
commit60d73be3ce985be8eb333bfeb4c437f09e4f955c (patch)
tree4c52529b74d15e305028c717e38a2481e5eb4d0d /bootstrap-stage2-test.sh
parentc6fd49809b9bc0a4aeea44ebf18ed6c0f9983b1c (diff)
bootstrap-stage2-test.sh: New file.
Diffstat (limited to 'bootstrap-stage2-test.sh')
-rwxr-xr-xbootstrap-stage2-test.sh86
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 "${@}"