diff mbox series

[v5,3/5] tests: Migration ppc now inlines its program

Message ID 20180129121754.13033-4-quintela@redhat.com
State New
Headers show
Series Add make check tests for Migration | expand

Commit Message

Juan Quintela Jan. 29, 2018, 12:17 p.m. UTC
No need to write it to a file.  Just need a proper firmware O:-)

Signed-off-by: Juan Quintela <quintela@redhat.com>
CC: Laurent Vivier <lvivier@redhat.com>
---
 tests/migration-test.c | 41 +++++------------------------------------
 1 file changed, 5 insertions(+), 36 deletions(-)

Comments

Laurent Vivier Jan. 29, 2018, 3:53 p.m. UTC | #1
On 29/01/2018 13:17, Juan Quintela wrote:
> No need to write it to a file.  Just need a proper firmware O:-)
> 
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> CC: Laurent Vivier <lvivier@redhat.com>
> ---
>  tests/migration-test.c | 41 +++++------------------------------------
>  1 file changed, 5 insertions(+), 36 deletions(-)
> 
> diff --git a/tests/migration-test.c b/tests/migration-test.c
> index fcad2ed460..26439f6071 100644
> --- a/tests/migration-test.c
> +++ b/tests/migration-test.c
> @@ -18,9 +18,6 @@
>  #include "qemu/sockets.h"
>  #include "chardev/char.h"
>  #include "sysemu/sysemu.h"
> -#include "hw/nvram/chrp_nvram.h"
> -
> -#define MIN_NVRAM_SIZE 8192 /* from spapr_nvram.c */
>  
>  const unsigned start_address = 1024 * 1024;
>  const unsigned end_address = 100 * 1024 * 1024;
> @@ -133,36 +130,6 @@ static void init_bootfile_x86(const char *bootpath)
>      fclose(bootfile);
>  }
>  
> -static void init_bootfile_ppc(const char *bootpath)
> -{
> -    FILE *bootfile;
> -    char buf[MIN_NVRAM_SIZE];
> -    ChrpNvramPartHdr *header = (ChrpNvramPartHdr *)buf;
> -
> -    memset(buf, 0, MIN_NVRAM_SIZE);
> -
> -    /* Create a "common" partition in nvram to store boot-command property */
> -
> -    header->signature = CHRP_NVPART_SYSTEM;
> -    memcpy(header->name, "common", 6);
> -    chrp_nvram_finish_partition(header, MIN_NVRAM_SIZE);
> -
> -    /* FW_MAX_SIZE is 4MB, but slof.bin is only 900KB,
> -     * so let's modify memory between 1MB and 100MB
> -     * to do like PC bootsector
> -     */

You should copy this comment where we have inlined the code (below).

> -
> -    sprintf(buf + 16,
> -            "boot-command=hex .\" _\" begin %x %x do i c@ 1 + i c! 1000 +loop "
> -            ".\" B\" 0 until", end_address, start_address);
> -
> -    /* Write partition to the NVRAM file */
> -
> -    bootfile = fopen(bootpath, "wb");
> -    g_assert_cmpint(fwrite(buf, MIN_NVRAM_SIZE, 1, bootfile), ==, 1);
> -    fclose(bootfile);
> -}
> -
>  /*
>   * Wait for some output in the serial output file,
>   * we get an 'A' followed by an endless string of 'B's
> @@ -453,12 +420,14 @@ static void test_migrate_start(QTestState **from, QTestState **to,
>          if (access("/sys/module/kvm_hv", F_OK)) {
>              accel = "tcg";
>          }
> -        init_bootfile_ppc(bootpath);

I think you could move bootpath allocation/free inside the
'if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {' as it
is not used anymore by ppc.

>          cmd_src = g_strdup_printf("-machine accel=%s -m 256M"
>                                    " -name source,debug-threads=on"
>                                    " -serial file:%s/src_serial"
> -                                  " -drive file=%s,if=pflash,format=raw",
> -                                  accel, tmpfs, bootpath);
> +                                  " -prom-env '"
> +                                  "boot-command=hex .\" _\" begin %x %x "
> +                                  "do i c@ 1 + i c! 1000 +loop .\" B\" 0 "
> +                                  "until'",  accel, tmpfs, end_address,
> +                                  start_address);
>          cmd_dst = g_strdup_printf("-machine accel=%s -m 256M"
>                                    " -name target,debug-threads=on"
>                                    " -serial file:%s/dest_serial"
> 

Thanks,
Laurent
diff mbox series

Patch

diff --git a/tests/migration-test.c b/tests/migration-test.c
index fcad2ed460..26439f6071 100644
--- a/tests/migration-test.c
+++ b/tests/migration-test.c
@@ -18,9 +18,6 @@ 
 #include "qemu/sockets.h"
 #include "chardev/char.h"
 #include "sysemu/sysemu.h"
-#include "hw/nvram/chrp_nvram.h"
-
-#define MIN_NVRAM_SIZE 8192 /* from spapr_nvram.c */
 
 const unsigned start_address = 1024 * 1024;
 const unsigned end_address = 100 * 1024 * 1024;
@@ -133,36 +130,6 @@  static void init_bootfile_x86(const char *bootpath)
     fclose(bootfile);
 }
 
-static void init_bootfile_ppc(const char *bootpath)
-{
-    FILE *bootfile;
-    char buf[MIN_NVRAM_SIZE];
-    ChrpNvramPartHdr *header = (ChrpNvramPartHdr *)buf;
-
-    memset(buf, 0, MIN_NVRAM_SIZE);
-
-    /* Create a "common" partition in nvram to store boot-command property */
-
-    header->signature = CHRP_NVPART_SYSTEM;
-    memcpy(header->name, "common", 6);
-    chrp_nvram_finish_partition(header, MIN_NVRAM_SIZE);
-
-    /* FW_MAX_SIZE is 4MB, but slof.bin is only 900KB,
-     * so let's modify memory between 1MB and 100MB
-     * to do like PC bootsector
-     */
-
-    sprintf(buf + 16,
-            "boot-command=hex .\" _\" begin %x %x do i c@ 1 + i c! 1000 +loop "
-            ".\" B\" 0 until", end_address, start_address);
-
-    /* Write partition to the NVRAM file */
-
-    bootfile = fopen(bootpath, "wb");
-    g_assert_cmpint(fwrite(buf, MIN_NVRAM_SIZE, 1, bootfile), ==, 1);
-    fclose(bootfile);
-}
-
 /*
  * Wait for some output in the serial output file,
  * we get an 'A' followed by an endless string of 'B's
@@ -453,12 +420,14 @@  static void test_migrate_start(QTestState **from, QTestState **to,
         if (access("/sys/module/kvm_hv", F_OK)) {
             accel = "tcg";
         }
-        init_bootfile_ppc(bootpath);
         cmd_src = g_strdup_printf("-machine accel=%s -m 256M"
                                   " -name source,debug-threads=on"
                                   " -serial file:%s/src_serial"
-                                  " -drive file=%s,if=pflash,format=raw",
-                                  accel, tmpfs, bootpath);
+                                  " -prom-env '"
+                                  "boot-command=hex .\" _\" begin %x %x "
+                                  "do i c@ 1 + i c! 1000 +loop .\" B\" 0 "
+                                  "until'",  accel, tmpfs, end_address,
+                                  start_address);
         cmd_dst = g_strdup_printf("-machine accel=%s -m 256M"
                                   " -name target,debug-threads=on"
                                   " -serial file:%s/dest_serial"