summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xembedded-test.sh120
1 files changed, 37 insertions, 83 deletions
diff --git a/embedded-test.sh b/embedded-test.sh
index acb8b5b..6027e06 100755
--- a/embedded-test.sh
+++ b/embedded-test.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env mksh
#
-# Copyright © 2014-2024
+# Copyright © 2014-2025
# Waldemar Brodkorb <wbx@openadk.org>
#
# Provided that these terms and disclaimer and all copyright notices
@@ -27,12 +27,12 @@ arch_list_uclibcng="aarch64 aarch64be alpha arcv2 arc32 \
armv5 armv5-nommu-arm armv5-nommu-thumb armv5-nommu-fdpic armv5-nommu-elf \
armv6 armv7 armv7-thumb2 armv8 armv8-thumb2 armeb avr32 \
bf512-flat bf512-fdpic bf532-flat bf532-fdpic \
- c6x crisv10 crisv32 csky-ck807 csky-ck810 \
+ c6x crisv10 crisv32 csky-ck807 csky-ck810 frv \
h8300-h8300h h8300-h8s hppa ia64 kvx lm32 \
m68k m68k-nommu-flat m68k-nommu-elf metag microblazeel microblazebe \
mips32 mips32r6 mips32sf mips32el mips32r6el mips32elsf \
mips64 mips64n32 mips64n64 mips64el mips64eln32 mips64eln64 \
- mips64r6n32 mips64r6n64 mips64r6eln32 mips64r6eln64 nds32le \
+ mips64r6n32 mips64r6n64 mips64r6eln32 mips64r6eln64 \
nios2 or1k ppc ppcsf riscv32 riscv32-nommu-flat riscv32-nommu-elf \
riscv64 riscv64-nommu-flat riscv64-nommu-elf \
sh2 sh2eb sh3 sh3eb sh4 sh4eb sparc sparc-leon3 sparc64 tilegx x86 x86_64 \
@@ -47,12 +47,12 @@ arch_list_musl="aarch64 aarch64be armv5 armv6 armv7 armeb \
x86 x86_64 x86_64_x32"
# glibc
-arch_list_glibc="aarch64 aarch64be alpha armv7 arcv2 arc32 arc64 \
- csky-ck807 csky-ck810 ia64 m68k microblazeel microblazebe \
+arch_list_glibc="aarch64 aarch64be alpha armv7 arcv2 arc32 \
+ csky-ck807 csky-ck810 m68k microblazeel microblazebe \
mips32 mips32r6 mips32sf mips32el mips32elsf \
mips64 mips64n32 mips64n64 mips64el mips64eln32 mips64eln64 \
mips64r6n32 mips64r6n64 mips64r6eln32 mips64r6eln64 loongarch \
- nios2 or1k ppc ppcsf ppc64 ppc64le riscv32 riscv64 s390 sh4 sh4eb sparc64 \
+ or1k ppc ppcsf ppc64 ppc64le riscv32 riscv64 s390 sh4 sh4eb sparc64 \
x86_64 x86_64_x32"
# newlib
@@ -233,8 +233,6 @@ get_arch_info() {
emulator=qemu
gdbcmd=
noappend=0
- piggyback=1
- disk=0
endian=
suffix=
allowed_libc=
@@ -436,10 +434,9 @@ get_arch_info() {
;;
arc32)
allowed_libc="uclibc-ng glibc"
- runtime_test="uclibc-ng glibc"
+ runtime_test="uclibc-ng"
allowed_tests="toolchain boot libc ltp mksh native"
default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-arc ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arc32"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=arc ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-arc ADK_TARGET_ENDIAN=little ADK_TARGET_CPU=arc32"
qemu=qemu-system-arc
qemu_machine=virt,ram_start=0
qemu_args="-nographic -monitor none -serial stdio -cpu hs5x -netdev user,id=eth0 -device virtio-net-device,netdev=eth0"
@@ -587,11 +584,10 @@ get_arch_info() {
default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=frv"
;;
ia64)
- allowed_libc="uclibc-ng glibc newlib"
+ allowed_libc="uclibc-ng newlib"
runtime_test=""
allowed_tests="toolchain"
default_uclibc_ng="ADK_APPLIANCE=toolchain ADK_TARGET_OS=$os ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
- default_glibc="ADK_APPLIANCE=toolchain ADK_TARGET_OS=$os ADK_TARGET_ARCH=ia64 ADK_TARGET_SYSTEM=generic-ia64"
default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=ia64"
;;
kvx)
@@ -693,7 +689,7 @@ get_arch_info() {
metag)
allowed_libc="uclibc-ng"
runtime_test="uclibc-ng"
- allowed_tests="toolchain boot"
+ allowed_tests="toolchain boot libc"
default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=metag ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-metag"
cpu_arch=metag
qemu=qemu-system-meta
@@ -992,11 +988,10 @@ get_arch_info() {
default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=nds32 ADK_TARGET_ENDIAN=big"
;;
nios2)
- allowed_libc="uclibc-ng glibc newlib"
- runtime_test="uclibc-ng glibc"
+ allowed_libc="uclibc-ng newlib"
+ runtime_test="uclibc-ng"
allowed_tests="toolchain boot"
default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=nios2 ADK_TARGET_SYSTEM=qemu-nios2"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=nios2 ADK_TARGET_SYSTEM=qemu-nios2"
default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=nios2"
qemu_machine=10m50-ghrd
;;
@@ -1191,32 +1186,30 @@ get_arch_info() {
sh4)
allowed_libc="uclibc-ng musl glibc"
runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc ltp native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
+ allowed_tests="toolchain boot libc"
+ default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
+ default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
+ default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=little"
cpu_arch=sh4
march=sh
qemu=qemu-system-sh4
qemu_machine=r2d
qemu_args="${qemu_args} -monitor null -serial null -serial stdio"
suffix=${cpu_arch}
- disk=1
;;
sh4eb)
allowed_libc="uclibc-ng musl glibc"
runtime_test="uclibc-ng musl glibc"
- allowed_tests="toolchain boot libc ltp native"
- default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
- default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=archive ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
+ allowed_tests="toolchain boot libc"
+ default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
+ default_musl="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
+ default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sh ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sh ADK_TARGET_ENDIAN=big"
cpu_arch=sh4eb
march=sh
qemu=qemu-system-sh4eb
qemu_machine=r2d
qemu_args="${qemu_args} -monitor null -serial null -serial stdio -append noiotrap"
suffix=${cpu_arch}
- disk=1
;;
sparc)
allowed_libc="uclibc-ng glibc newlib"
@@ -1241,15 +1234,15 @@ get_arch_info() {
;;
sparc64)
allowed_libc="uclibc-ng glibc newlib"
- runtime_test="glibc"
- allowed_tests="toolchain"
- default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initrampiggyback ADK_TARGET_SYSTEM=qemu-sparc64"
+ runtime_test="uclibc-ng glibc"
+ allowed_tests="toolchain boot libc"
+ default_glibc="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sparc64"
default_uclibc_ng="ADK_APPLIANCE=test ADK_TARGET_OS=$os ADK_TARGET_ARCH=sparc64 ADK_TARGET_FS=initramfspiggyback ADK_TARGET_SYSTEM=qemu-sparc64"
default_newlib="ADK_APPLIANCE=toolchain ADK_TARGET_OS=baremetal ADK_TARGET_ARCH=sparc64"
cpu_arch=v9
qemu=qemu-system-sparc64
qemu_machine=sun4u
- qemu_args="${qemu_args} -net nic,model=e1000 -net user"
+ qemu_args="${qemu_args} -m 512 -net nic,model=e1000 -net user"
suffix=${cpu_arch}
;;
tilegx)
@@ -1313,7 +1306,7 @@ get_arch_info() {
qemu=qemu-system-xtensa
qemu_machine=kc705
qemu_args="${qemu_args} -cpu dc233c -m 256"
- suffix=${cpu_arch}
+ suffix=${cpu_arch}_windowed
;;
xtensabe)
allowed_libc="uclibc-ng"
@@ -1503,54 +1496,20 @@ runtest() {
esac
echo "Starting test for $lib and $arch"
- # check if initramfs, piggyback or disk is used
- if [ $piggyback -eq 1 ]; then
- echo "Using extra directory for test image creation"
- root=openadk/extra
- rm -rf openadk/extra 2>/dev/null
- mkdir openadk/extra 2>/dev/null
- if [ ! -z $suffix ]; then
- kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
- else
- kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-initramfspiggyback-kernel
- fi
- elif [ $disk -eq 1 ]; then
- echo "Using disk image for test"
- if [ ! -z $suffix ]; then
- kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/${emulator}-${march}-archive-kernel
- else
- kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-archive-kernel
- fi
- else
- echo "Generating root filesystem for test run"
- root=$(mktemp -d /tmp/XXXX)
- if [ ! -z $suffix ]; then
- archive=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/qemu-${march}-${lib}-initramfsarchive.tar.gz
- kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/qemu-${march}-initramfsarchive-kernel
- else
- archive=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-${lib}-initramfsarchive.tar.gz
- kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-initramfsarchive-kernel
- fi
- if [ ! -f $archive ]; then
- echo "No root filesystem available for architecture ${arch} tried $archive"
- exit 1
- fi
- tar -xf $archive -C $root
+ echo "Using extra directory for test image creation"
+ root=openadk/extra
+ rm -rf openadk/extra 2>/dev/null
+ mkdir openadk/extra 2>/dev/null
+ if [ ! -z $suffix ]; then
+ kernel=openadk/firmware/${emulator}-${march}_${lib}_${suffix}/${emulator}-${march}-initramfspiggyback-kernel
+ else
+ kernel=openadk/firmware/${emulator}-${march}_${lib}/${emulator}-${march}-initramfspiggyback-kernel
fi
create_run_sh $test ${root}/run.sh quit
- if [ $piggyback -eq 1 ]; then
- (cd openadk && make v)
- elif [ $disk -eq 1 ]; then
- (cd openadk && ./scripts/create.sh -i 256 qemu-${march}.img firmware/${emulator}-${march}_${lib}_${cpu_arch}/${emulator}-${march}-${libc}-archive+kernel.tar.gz)
- else
- echo "Creating initramfs filesystem"
- (cd $root; find . | cpio -o -C512 -Hnewc |gzip -c > ${topdir}/initramfs.${arch})
- rm -rf $root
- qemu_args="$qemu_args -initrd initramfs.${arch}"
- fi
+ (cd openadk && make v)
# qemu-ppc overwrites existing commandline
if [ $noappend -eq 0 ]; then
@@ -1562,13 +1521,8 @@ runtest() {
echo "Now running the test ${test} in ${emulator} for architecture ${arch} and ${lib}"
case $emulator in
qemu)
- if [ $disk -eq 1 ]; then
- echo "${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot openadk/qemu-${march}.img"
- ${qemu} -M ${qemu_machine} ${qemu_args} -kernel ${kernel} -qmp tcp:127.0.0.1:4444,server,nowait -no-reboot openadk/qemu-${march}.img | tee $report
- else
- 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
- fi
+ 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
;;
gdb)
echo "$emulator ${arch} ${kernel}"
@@ -1733,7 +1687,7 @@ for lib in ${libc}; do
if [[ $libcversion ]]; then
version=$libcversion
else
- version=1.0.47
+ version=1.0.52
fi
libver=uClibc-ng-${version}
libdir=uClibc-ng
@@ -1743,7 +1697,7 @@ for lib in ${libc}; do
if [[ $libcversion ]]; then
version=$libcversion
else
- version=2.39
+ version=2.41
fi
libver=glibc-${version}
libdir=glibc