diff options
Diffstat (limited to 'embedded-test.sh')
-rwxr-xr-x | embedded-test.sh | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/embedded-test.sh b/embedded-test.sh index e50d250..84c3197 100755 --- a/embedded-test.sh +++ b/embedded-test.sh @@ -38,7 +38,6 @@ topdir=$(pwd) giturl=http://git.openadk.org/openadk.git valid_libc="uclibc-ng musl glibc newlib" valid_tests="toolchain boot libc ltp mksh native" -valid_modes="dynamic static" bootserver=10.0.0.1 buildserver=10.0.0.2 @@ -65,7 +64,6 @@ Explanation: --skiparch=<arch> architectures to skip when all choosen --targets=<targets.txt> a list of remote targets to test via nfsroot or chroot --test=<test> run test (${valid_tests}), default toolchain - --mode=<mode> run mode (${valid_modes}), default dynamic --libc-source=<dir> use directory with source for C library --gcc-source=<dir> use directory with source for gcc --binutils-source=<dir> use directory with source for binutils @@ -82,6 +80,7 @@ Explanation: --cleandir clean OpenADK build directories before build --clean clean OpenADK build directory for single arch --no-clean do not clean OpenADK build directory for single arch + --static use static compilation --verbose enable verbose output from OpenADK --shell start a shell instead of test autorun --help this help text @@ -97,10 +96,10 @@ shell=0 update=0 verbose=0 create=0 +static=0 ntp="" libc="" test="toolchain" -mode="dynamic" while [[ $1 != -- && $1 = -* ]]; do case $1 { (--cleandir) cleandir=1; shift ;; @@ -109,6 +108,7 @@ while [[ $1 != -- && $1 = -* ]]; do case $1 { (--verbose) verbose=1; shift ;; (--update) update=1; shift ;; (--create) create=1; shift ;; + (--static) static=1; shift ;; (--continue) cont=1; shift ;; (--shell) shell=1 shift ;; (--libc=*) libc=${1#*=}; shift ;; @@ -116,7 +116,6 @@ while [[ $1 != -- && $1 = -* ]]; do case $1 { (--skiparch=*) skiparchs=${1#*=}; shift ;; (--targets=*) targets=${1#*=}; shift ;; (--test=*) test=${1#*=}; shift ;; - (--mode=*) mode=${1#*=}; shift ;; (--libc-source=*) libcsource=${1#*=}; shift ;; (--gcc-source=*) gccsource=${1#*=}; shift ;; (--binutils-source=*) binutilssource=${1#*=}; shift ;; @@ -895,7 +894,7 @@ cat >> $file << EOF file /bin/busybox $tee size /bin/busybox $tee EOF - if [ $mode = "dynamic" ]; then + if [ $static -eq 0 ]; then cat >> $file << EOF for i in \$(ls /lib/*.so|grep -v libgcc);do size \$i $tee @@ -1053,19 +1052,24 @@ runtest() { qemu_args="$qemu_args ${qemu_append}" fi + if [ $static -eq 1 ]; then + rsuffix=.static + fi + report=REPORT.${arch}.${test}.${libver}${rsuffix} + echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}" case $emulator in qemu) echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot" - ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot | tee REPORT.${arch}.${test}.${libver} + ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot | tee $report ;; nsim) echo "./openadk/scripts/nsim.sh ${arch} ${kernel}" - ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee REPORT.${arch}.${test}.${libver} + ./openadk/scripts/nsim.sh ${arch} ${kernel} | tee $report ;; esac if [ $? -eq 0 ]; then - echo "Test ${test} for ${arch} finished. See REPORT.${arch}.${test}.${libver}" + echo "Test ${test} for ${arch} finished. See $report" else echo "Test ${test} failed for ${arch} with ${lib} ${libver}." fi @@ -1075,7 +1079,7 @@ build() { lib=$1 arch=$2 test=$3 - mode=$4 + static=$4 system=$5 rootfs=$6 @@ -1159,8 +1163,7 @@ build() { if [ $create -eq 1 ]; then printf "ADK_CREATE_TOOLCHAIN_ARCHIVE=y" >> .config fi - # build defaults for different modes - if [ $mode = "static" ]; then + if [ $static -eq 1 ]; then printf "ADK_TARGET_USE_STATIC_LIBS=y" >> .config fi for pkg in $packages; do @@ -1270,7 +1273,6 @@ for lib in ${libc}; do clean=1 fi fi - # start with a clean dir if [ $cleandir -eq 1 ]; then echo "completely cleaning openadk build directory" @@ -1289,7 +1291,7 @@ for lib in ${libc}; do target_rootfs=$(echo $line|cut -f 6 -d ,) target_powerid=$(echo $line|cut -f 7 -d ,) echo "Testing target system $target_system ($target_arch) with $target_rootfs on $target_host" - build $lib $target_arch $test $mode $target_system $target_rootfs + build $lib $target_arch $test $static $target_system $target_rootfs kernel=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${target_rootfs}-kernel tarball=openadk/firmware/${target_system}_${lib}_${target_suffix}/${target_system}-${lib}-${target_rootfs}.tar.xz scp $kernel root@${bootserver}:/tftpboot/${target_host} @@ -1310,7 +1312,7 @@ for lib in ${libc}; do for arch in $archlist; do get_arch_info $arch $lib if [ $cont -eq 1 ]; then - if [ -f "REPORT.${arch}.${test}.${libver}" ]; then + if [ -f $report ]; then echo "Skipping already run test $test for $arch and $lib" continue fi @@ -1319,17 +1321,22 @@ for lib in ${libc}; do echo "Skipping $skiparchs" continue fi + if [ $static -eq 1 ]; then + rsuffix=.static + fi + report=REPORT.${arch}.${test}.${libver}$rsuffix + if [[ "$allowed_tests" = *${test}* ]]; then if [[ "$allowed_libc" = *${lib}* ]]; then echo "Compiling for $lib and $arch testing $test" - build $lib $arch $test $mode + build $lib $arch $test $static if [ "$test" != "toolchain" ]; then if [[ "$runtime_test" = *${lib}* ]]; then runtest $lib $arch $test fi else # fake stamp for continue - touch REPORT.${arch}.${test}.${libver} + touch $report fi else echo "$lib not available for $arch" |