From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- release/src/router/busybox/scripts/randomtest | 92 +++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100755 release/src/router/busybox/scripts/randomtest (limited to 'release/src/router/busybox/scripts/randomtest') diff --git a/release/src/router/busybox/scripts/randomtest b/release/src/router/busybox/scripts/randomtest new file mode 100755 index 00000000..eebf1c52 --- /dev/null +++ b/release/src/router/busybox/scripts/randomtest @@ -0,0 +1,92 @@ +#!/bin/sh + +# Select which libc to build against +libc="glibc" # assumed native +# static, cross-compilation +libc="uclibc" +# x86 32-bit: +uclibc_cross="i486-linux-uclibc-" +# My system has strange prefix for x86 64-bit uclibc: +#uclibc_cross="x86_64-pc-linux-gnu-" + +test -d tree || exit 1 + +dir=test.$$ +while test -e "$dir" -o -e failed."$dir"; do + dir=test."$RANDOM" +done + +cp -dpr tree "$dir" || exit 1 +cd "$dir" || exit 1 + +echo "Running randconfig test in $dir..." >&2 + +make randconfig >/dev/null || exit 1 + +cat .config \ +| grep -v ^CONFIG_DEBUG_PESSIMIZE= \ +| grep -v CONFIG_WERROR \ +| cat >.config.new +mv .config.new .config +echo CONFIG_WERROR=y >>.config + +test "$libc" = glibc && { +cat .config \ +| grep -v ^CONFIG_SELINUX= \ +| grep -v ^CONFIG_EFENCE= \ +| grep -v ^CONFIG_DMALLOC= \ +| cat >.config.new +mv .config.new .config +} + +test "$libc" = uclibc && { +cat .config \ +| grep -v ^CONFIG_SELINUX= \ +| grep -v ^CONFIG_EFENCE= \ +| grep -v ^CONFIG_DMALLOC= \ +| grep -v ^CONFIG_BUILD_LIBBUSYBOX= \ +| grep -v ^CONFIG_PAM= \ +| grep -v ^CONFIG_TASKSET= \ +| grep -v ^CONFIG_FEATURE_ASSUME_UNICODE= \ +| grep -v ^CONFIG_PIE= \ +| grep -v CONFIG_STATIC \ +| grep -v CONFIG_CROSS_COMPILER_PREFIX \ +| cat >.config.new +mv .config.new .config +echo 'CONFIG_CROSS_COMPILER_PREFIX="'"$uclibc_cross"'"' >>.config +echo 'CONFIG_STATIC=y' >>.config +} + +# If NOMMU, remove some things +grep -q ^CONFIG_NOMMU= .config && { +cat .config \ +| grep -v ^CONFIG_ASH= \ +| grep -v ^CONFIG_FEATURE_SH_IS_ASH= \ +| cat >.config.new +mv .config.new .config +} + +# If STATIC, remove some things +# PAM with static linking is probably pointless +# (but I need to try - now I don't have libpam.a on my system, only libpam.so) +grep -q ^CONFIG_STATIC= .config && { +cat .config \ +| grep -v ^CONFIG_PAM= \ +| cat >.config.new +mv .config.new .config +} + +# Regenerate .config with default answers for yanked-off options +{ yes "" | make oldconfig >/dev/null; } || exit 1 + +nice -n 10 make 2>&1 | tee -a make.log + +test -x busybox && { + cd .. + rm -rf "$dir" + exit 0 +} + +cd .. +mv "$dir" "failed.$dir" +exit 1 -- cgit v1.2.3-54-g00ecf