aboutsummaryrefslogtreecommitdiff
path: root/tests/prom-env-test.c
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2017-02-10 16:14:59 +0100
committerPeter Maydell <peter.maydell@linaro.org>2017-02-10 15:44:53 +0000
commit61eedf7aec0e2395aabd628cc055096909a3ea15 (patch)
treec7681ad0bd9b1c204d9fd9957123dbf3736d8239 /tests/prom-env-test.c
parent33d076ebd05491d9f7cace682b4ed70c33263f12 (diff)
downloadqemu-61eedf7aec0e2395aabd628cc055096909a3ea15.zip
qemu-61eedf7aec0e2395aabd628cc055096909a3ea15.tar.gz
qemu-61eedf7aec0e2395aabd628cc055096909a3ea15.tar.bz2
tests/prom-env: Ease time-out problems on slow hosts
Peter Maydell recently ran into time-out problems with the prom-env test on a rather slow ARM board. To tackle this issue, we can speed up the test by running QEMU with "-nodefaults" for the pseries machine, so that SLOF has less devices to scan during boot, and by using the "nvramrc" environment variable instead of "boot-command", since this variable is evaluated earlier in the boot process. And to be really sure that we do not face such time out problems again, let's also increase the time out value from 100s to 120s instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-id: 1486739699-1076-1-git-send-email-thuth@redhat.com Tested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests/prom-env-test.c')
-rw-r--r--tests/prom-env-test.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/tests/prom-env-test.c b/tests/prom-env-test.c
index 0ba6f48..bd33bc3 100644
--- a/tests/prom-env-test.c
+++ b/tests/prom-env-test.c
@@ -30,8 +30,8 @@ static void check_guest_memory(void)
uint32_t signature;
int i;
- /* Poll until code has run and modified memory. Wait at most 30 seconds */
- for (i = 0; i < 10000; ++i) {
+ /* Poll until code has run and modified memory. Wait at most 120 seconds */
+ for (i = 0; i < 12000; ++i) {
signature = readl(ADDRESS);
if (signature == MAGIC) {
break;
@@ -45,9 +45,14 @@ static void check_guest_memory(void)
static void test_machine(const void *machine)
{
char *args;
+ const char *extra_args;
- args = g_strdup_printf("-M %s,accel=tcg -prom-env 'boot-command=%x %x l!'",
- (const char *)machine, MAGIC, ADDRESS);
+ /* The pseries firmware boots much faster without the default devices */
+ extra_args = strcmp(machine, "pseries") == 0 ? "-nodefaults" : "";
+
+ args = g_strdup_printf("-M %s,accel=tcg %s -prom-env 'use-nvramrc?=true' "
+ "-prom-env 'nvramrc=%x %x l!' ",
+ (const char *)machine, extra_args, MAGIC, ADDRESS);
qtest_start(args);
check_guest_memory();