Enable tests for VxWorks target

Updates VSB and VIP. Adds newer updated QEMU for VxWorks.
Set to build and run tests on qtbase.

Change-Id: I1dc97a48ff67dedd79de3659d2af2768616c61ca
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
This commit is contained in:
Toni Saario
2023-11-23 13:00:08 +02:00
committed by Simo Fält
parent dd235745c6
commit af082deb40
8 changed files with 82 additions and 27 deletions

View File

@@ -8,8 +8,8 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'ubuntu-22.04'
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
Features: ['UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -developer-build -force-debug-info -qpa eglfs -nomake examples',
'TARGET_CONFIGURE_ARGS=-release -developer-build -force-debug-info -qpa offscreen -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target'
]

View File

@@ -0,0 +1,16 @@
Version: 2
Configurations:
-
Id: 'vxworks-imx6-tests'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Target os: 'VxWorks'
Target arch: 'ARMv7'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'vxworks-imx6-buildtest'
Features: ['VMSize16', 'InsignificantTests', 'UseConfigure', 'TestOnly', 'BuildTestsInTest', 'DoNotUploadTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -developer-build -force-debug-info -qpa offscreen -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib'
]

View File

@@ -1,11 +0,0 @@
Version: 2
Module only: True
Include: [
cmake_platforms.yaml: [
"ubuntu-22.04"
],
cmake_platforms_qemu_vxworks.yaml: [
"vxworks-imx6"
]
]
Configurations: []

View File

@@ -8,6 +8,8 @@ Include: [
linux_android_tests_multi_abi.yaml,
wasm_qtbase_tests.yaml,
cmake_platforms_qemu_vxworks_buildtest.yaml,
cmake_platforms_qemu_vxworks.yaml,
cmake_platforms_qemu_vxworks_tests.yaml,
qtlite.yaml,
qtbase-linux-arm64-offscreen.yaml,
qtbase-new-compiler-testing.yaml

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
QEMU_VER="8.2.3"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qemu/qemu-$QEMU_VER.tar.xz"
AltUrl="https://download.qemu.org/qemu-$QEMU_VER.tar.xz"
SHA1="1b29c8105cf8d15b9e7fb6f8e85170b6c54a1788"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" "$appPrefix"
targetFolder=/tmp/qemu-${QEMU_VER}
mkdir -p "$targetFolder/build"
cd "$targetFolder/build"
../configure --target-list=arm-softmmu
make -j8
sudo mkdir -p /usr/share/qemu/keymaps
sudo cp -r "$targetFolder/build/pc-bios/keymaps" "/usr/share/qemu/"
sudo mv "$targetFolder/build" "/opt/qemu-$QEMU_VER"
rm -rf $targetFolder
SetEnvVar "VXWORKS_QEMU" "/opt/qemu-$QEMU_VER"

View File

@@ -14,38 +14,51 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
VXWORKS_VER="23_09"
######### VXworks libs #########
# Installs to /opt/vxworks
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_no_source_patched_$VXWORKS_VER.tar.gz"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2403.tar.gz"
AltUrl=""
sha1="35a457999b310a6128e3bd7de3103c2235063071"
targetFolder="/opt/"
sha1="8152c527ca489b1e51f2954e6e88c6daa22d88f6"
targetFolder="/opt"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
VXWORKS_BUILD_VER="20240326"
VXWORKS_BUILD_VER="20240522"
######### VXworks toolchain #########
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_vsb_${VXWORKS_BUILD_VER}_2.tar.gz"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="415359ac124e11198a3911c9c4b923269d8da83a"
sha1="b8fd1203aaa0976dbd68ddc94ce0af1b8f89e26f"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
VXWORKS_BUILD_VER="20240619"
######### VXworks VIP kernel #########
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_vip_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="a6019012a8c7af760469959e2df89875f5ff4e9a"
sha1="d66aee4054638df50c8be003fecb010374524f14"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "VXWORKS_SSH" "WindRiver@172.31.1.10"
SetEnvVar "VXWORKS_SSH" "WindRiver@10.0.2.4"
######### VXworks fonts and certs #########
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_misc.tar.gz"
AltUrl=""
sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
targetFolder="/opt/fsl_imx6_2_0_6_2_VSB/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Setup NFS exports that are needed by VxWorks qemu
sudo bash -c "echo '/home/qt/work 10.0.2.4/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000)' >> /etc/exports"
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_2_VSB 10.0.2.4/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000)' >> /etc/exports"
sudo bash -c "echo '/home/qt/work 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_2_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo exportfs -a
# Enable ipv4 routing from vxWorks to Qt DNS
sudo sed -i s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g /etc/sysctl.conf
sudo iptables -I FORWARD 1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
# Copy start script in place
cp "${BASH_SOURCE%/*}/../linux/vxworks_qemu_launcher.sh" "${HOME}"
SetEnvVar "VXWORKS_EMULATOR" "${HOME}/vxworks_qemu_launcher.sh"

View File

@@ -6,24 +6,24 @@
if ! ip link show br0 >/dev/null 2>&1; then
sudo brctl addbr br0
sudo brctl stp br0 off
sudo ifconfig br0 10.0.2.1 netmask 255.255.255.0 promisc up
sudo ifconfig br0 172.31.1.1 netmask 255.255.255.0 promisc up
sudo tunctl -u qt -t tap0
sudo ifconfig tap0 promisc up
sudo brctl addif br0 tap0
fi
QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log.txt"
qemu-system-arm \
$VXWORKS_QEMU/qemu-system-arm \
-machine sabrelite \
-smp 4 \
-m 1G \
-nographic \
-monitor none \
-serial null \
-serial stdio \
-serial pipe:/tmp/guest \
-kernel /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/uVxWorks \
-dtb /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/imx6q-sabrelite.dtb \
-append "enet(0,0)host:vxWorks h=10.0.2.1 g=10.0.2.1 e=10.0.2.4 u=target pw=vxTarget s=/romfs/startup_script_arm.txt" \
-append "enet(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=172.31.1.10 u=target pw=vxTarget s=/romfs/startup_script_arm.txt" \
-nic "tap,ifname=tap0,script=no" >"${QEMU_LOG_PATH}" 2>&1 &
for _ in $(seq 30)

View File

@@ -0,0 +1,7 @@
#!/bin/bash
#Copyright (C) 2023 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vxworks-qemu.sh"