From 60d73be3ce985be8eb333bfeb4c437f09e4f955c Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pjm@nac.net>
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 <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 "${@}"
--
cgit v0.9.1