tests/acceptance: Add boot tests for some of the QEMU advent calendar images
The 2018 edition of the QEMU advent calendar 2018 featured Linux images
for various non-x86 machines. We can use them for a boot tests in our
acceptance test suite.
Let's also make sure that we build the corresponding machines in Travis.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Message-Id: <20200124170325.30072-1-thuth@redhat.com>
[PMD: Rebased, --python=python3 parameter dropped in commit 5311cb12e]
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff --git a/.travis.yml b/.travis.yml
index 54e1d12..5887055 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -313,7 +313,7 @@
# Acceptance (Functional) tests
- name: "GCC check-acceptance"
env:
- - CONFIG="--target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmmu,alpha-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,sparc-softmmu"
+ - CONFIG="--target-list=aarch64-softmmu,alpha-softmmu,arm-softmmu,m68k-softmmu,microblaze-softmmu,mips-softmmu,mips64el-softmmu,nios2-softmmu,or1k-softmmu,ppc-softmmu,ppc64-softmmu,s390x-softmmu,sparc-softmmu,x86_64-softmmu,xtensa-softmmu"
- TEST_CMD="make check-acceptance"
after_script:
- python3 -c 'import json; r = json.load(open("tests/results/latest/results.json")); [print(t["logfile"]) for t in r["tests"] if t["status"] not in ("PASS", "SKIP")]' | xargs cat
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index a6191ee..a6ce917 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -590,3 +590,99 @@
self.wait_for_console_pattern(console_pattern)
console_pattern = 'No filesystem could mount root'
self.wait_for_console_pattern(console_pattern)
+
+ def do_test_advcal_2018(self, day, tar_hash, kernel_name):
+ tar_url = ('https://www.qemu-advent-calendar.org'
+ '/2018/download/day' + day + '.tar.xz')
+ file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
+ archive.extract(file_path, self.workdir)
+ self.vm.set_console()
+ self.vm.add_args('-kernel',
+ self.workdir + '/day' + day + '/' + kernel_name)
+ self.vm.launch()
+ self.wait_for_console_pattern('QEMU advent calendar')
+
+ def test_arm_vexpressa9(self):
+ """
+ :avocado: tags=arch:arm
+ :avocado: tags=machine:vexpress-a9
+ """
+ tar_hash = '32b7677ce8b6f1471fb0059865f451169934245b'
+ self.vm.add_args('-dtb', self.workdir + '/day16/vexpress-v2p-ca9.dtb')
+ self.do_test_advcal_2018('16', tar_hash, 'winter.zImage')
+
+ def test_m68k_mcf5208evb(self):
+ """
+ :avocado: tags=arch:m68k
+ :avocado: tags=machine:mcf5208evb
+ """
+ tar_hash = 'ac688fd00561a2b6ce1359f9ff6aa2b98c9a570c'
+ self.do_test_advcal_2018('07', tar_hash, 'sanity-clause.elf')
+
+ def test_microblaze_s3adsp1800(self):
+ """
+ :avocado: tags=arch:microblaze
+ :avocado: tags=machine:petalogix-s3adsp1800
+ """
+ tar_hash = '08bf3e3bfb6b6c7ce1e54ab65d54e189f2caf13f'
+ self.do_test_advcal_2018('17', tar_hash, 'ballerina.bin')
+
+ def test_or1k_sim(self):
+ """
+ :avocado: tags=arch:or1k
+ :avocado: tags=machine:or1k-sim
+ """
+ tar_hash = '20334cdaf386108c530ff0badaecc955693027dd'
+ self.do_test_advcal_2018('20', tar_hash, 'vmlinux')
+
+ def test_nios2_10m50(self):
+ """
+ :avocado: tags=arch:nios2
+ :avocado: tags=machine:10m50-ghrd
+ """
+ tar_hash = 'e4251141726c412ac0407c5a6bceefbbff018918'
+ self.do_test_advcal_2018('14', tar_hash, 'vmlinux.elf')
+
+ def test_ppc64_e500(self):
+ """
+ :avocado: tags=arch:ppc64
+ :avocado: tags=machine:ppce500
+ """
+ tar_hash = '6951d86d644b302898da2fd701739c9406527fe1'
+ self.vm.add_args('-cpu', 'e5500')
+ self.do_test_advcal_2018('19', tar_hash, 'uImage')
+
+ def test_ppc_g3beige(self):
+ """
+ :avocado: tags=arch:ppc
+ :avocado: tags=machine:g3beige
+ """
+ tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
+ self.vm.add_args('-M', 'graphics=off')
+ self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
+
+ def test_ppc_mac99(self):
+ """
+ :avocado: tags=arch:ppc
+ :avocado: tags=machine:mac99
+ """
+ tar_hash = 'e0b872a5eb8fdc5bed19bd43ffe863900ebcedfc'
+ self.vm.add_args('-M', 'graphics=off')
+ self.do_test_advcal_2018('15', tar_hash, 'invaders.elf')
+
+ def test_sparc_ss20(self):
+ """
+ :avocado: tags=arch:sparc
+ :avocado: tags=machine:SS-20
+ """
+ tar_hash = 'b18550d5d61c7615d989a06edace051017726a9f'
+ self.do_test_advcal_2018('11', tar_hash, 'zImage.elf')
+
+ def test_xtensa_lx60(self):
+ """
+ :avocado: tags=arch:xtensa
+ :avocado: tags=machine:lx60
+ """
+ tar_hash = '49e88d9933742f0164b60839886c9739cb7a0d34'
+ self.vm.add_args('-cpu', 'dc233c')
+ self.do_test_advcal_2018('02', tar_hash, 'santas-sleigh-ride.elf')