Message ID | 20180129121754.13033-4-quintela@redhat.com |
---|---|
State | New |
Headers | show |
Series | Add make check tests for Migration | expand |
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 --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"
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(-)