xref: /openbmc/openbmc-build-scripts/scripts/test-qemu (revision 1680cdaade551b8f12d0b12a9ed1d185c3f5b2f1)
1e7162a08SPatrick Williams#!/bin/bash
20eb7ce02SAndrew Jeffery
30eb7ce02SAndrew Jefferyset -eu
40eb7ce02SAndrew Jefferyset -x
50eb7ce02SAndrew Jeffery
67d2c27fdSAndrew JefferyARTIFACT_DIR=$(mktemp -d)
70eb7ce02SAndrew Jeffery
87d2c27fdSAndrew Jefferytrap 'rm -rf ${ARTIFACT_DIR}' EXIT
90eb7ce02SAndrew Jeffery
10476a7e99SPatrick Williamsfunction acquire() {
117d2c27fdSAndrew Jeffery    local target="$1"
127d2c27fdSAndrew Jeffery    wget --quiet --show-progress --directory-prefix="${ARTIFACT_DIR}" https://jenkins.openbmc.org/view/latest/job/latest-master/lastSuccessfulBuild/label=docker-builder,target="${target}"/artifact/openbmc/build/tmp/deploy/images/"${target}"/'*zip*'/"${target}".zip
137d2c27fdSAndrew Jeffery    unzip -qq -d "${ARTIFACT_DIR}" "${ARTIFACT_DIR}"/"${target}".zip
147d2c27fdSAndrew Jeffery    echo "${ARTIFACT_DIR}"/"${target}"
150eb7ce02SAndrew Jeffery}
160eb7ce02SAndrew Jeffery
170eb7ce02SAndrew Jeffery# AST2400
187d2c27fdSAndrew JefferyPALMETTO_ARTIFACTS="$(acquire palmetto)"
197d2c27fdSAndrew JefferyPALMETTO_MTD="$(echo "${PALMETTO_ARTIFACTS}"/obmc-phosphor-image-palmetto-*.static.mtd)"
20e7162a08SPatrick Williams# shellcheck disable=SC2016 # 'expect' strings
210eb7ce02SAndrew Jefferyexpect \
220eb7ce02SAndrew Jeffery    -c "spawn qemu-system-arm \
230eb7ce02SAndrew Jeffery            -M palmetto-bmc \
240eb7ce02SAndrew Jeffery            -drive file=${PALMETTO_MTD},if=mtd,format=raw \
250eb7ce02SAndrew Jeffery            -nographic \
260eb7ce02SAndrew Jeffery            -net nic \
270eb7ce02SAndrew Jeffery    -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
287d6ee0b4SAndrew Jeffery    -c 'set timeout 300' \
290eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
300e47d123SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
310eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
320eb7ce02SAndrew Jeffery
330eb7ce02SAndrew Jeffery# AST2500
34*1680cdaaSAndrew JefferyROMULUS_ARTIFACTS="$(acquire romulus)"
35*1680cdaaSAndrew JefferyROMULUS_MTD="$(echo "${ROMULUS_ARTIFACTS}"/obmc-phosphor-image-romulus*.mtd)"
36e7162a08SPatrick Williams# shellcheck disable=SC2016 # 'expect' strings
370eb7ce02SAndrew Jefferyexpect \
380eb7ce02SAndrew Jeffery    -c "spawn qemu-system-arm \
39*1680cdaaSAndrew Jeffery            -M romulus-bmc \
40*1680cdaaSAndrew Jeffery            -drive file=${ROMULUS_MTD},if=mtd,format=raw \
410eb7ce02SAndrew Jeffery            -nographic \
420eb7ce02SAndrew Jeffery            -net nic \
430eb7ce02SAndrew Jeffery    -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \
447d6ee0b4SAndrew Jeffery    -c 'set timeout 300' \
450eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
460e47d123SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
470eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
480eb7ce02SAndrew Jeffery
490eb7ce02SAndrew Jeffery# AST2600
507d2c27fdSAndrew JefferyP10BMC_ARTIFACTS="$(acquire p10bmc)"
510eb7ce02SAndrew Jeffery
527d2c27fdSAndrew JefferyP10BMC_WIC_XZ="$(echo "${P10BMC_ARTIFACTS}"/obmc-phosphor-image-p10bmc-*.wic.xz)"
537d2c27fdSAndrew JefferyP10BMC_MMC="${P10BMC_WIC_XZ%.xz}"
547d2c27fdSAndrew JefferyP10BMC_UBOOT_SPL="$(echo "${P10BMC_ARTIFACTS}"/u-boot-spl.bin-*)"
557d2c27fdSAndrew JefferyP10BMC_UBOOT="$(echo "${P10BMC_ARTIFACTS}"/u-boot-p10bmc-*.bin)"
567d2c27fdSAndrew Jeffery
577d2c27fdSAndrew Jefferydd of="$P10BMC_MMC" if=/dev/zero bs=1M count=2
587d2c27fdSAndrew Jefferydd of="$P10BMC_MMC" if="$P10BMC_UBOOT_SPL" conv=notrunc
597d2c27fdSAndrew Jefferydd of="$P10BMC_MMC" if="$P10BMC_UBOOT" conv=notrunc bs=1K seek=64
607d2c27fdSAndrew Jeffery
617d2c27fdSAndrew Jefferyxz --decompress --stdout --keep "$P10BMC_WIC_XZ" | dd of="$P10BMC_MMC" conv=notrunc bs=1M seek=2
627d2c27fdSAndrew Jeffery
637d2c27fdSAndrew Jefferytruncate -s 16G "$P10BMC_MMC"
640eb7ce02SAndrew Jeffery
65e7162a08SPatrick Williams# shellcheck disable=SC2016 # 'expect' strings
660eb7ce02SAndrew Jefferyexpect \
677d2c27fdSAndrew Jeffery    -c "spawn qemu-system-arm -M rainier-bmc \
687d2c27fdSAndrew Jeffery            -drive file=${P10BMC_MMC},if=sd,format=raw,index=2 \
690eb7ce02SAndrew Jeffery            -net nic \
700eb7ce02SAndrew Jeffery            -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \
717d2c27fdSAndrew Jeffery    -nographic" \
727d6ee0b4SAndrew Jeffery    -c 'set timeout 300' \
730eb7ce02SAndrew Jeffery    -c 'expect timeout { exit 1 } "login:"' \
740e47d123SAndrew Jeffery    -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \
750eb7ce02SAndrew Jeffery    -c 'expect -i $spawn_id eof'
76