Re: [Qemu-devel] [PULL 2/2] Add QTest testcase for the Intel Hexadecimal

2018-05-24 Thread Su Hang
Sure, I will list other involved files. Thanks for you suggestion.

SU Hang

"Eric Blake" wrote:
> On 05/24/2018 06:29 AM, Su Hang wrote:
> > 'test.hex' file is a bare metal ARM software stored in Hexadecimal
> > Object Format. When it's loaded by QEMU, it will print "Hello world!\n"
> > on console.
> > 
> > `pre_store` array in 'hexloader-test.c' file, stores the binary format
> > of 'test.hex' file, which is used to verify correctness.
> > 
> > Reviewed-by: Stefan Hajnoczi 
> > Suggested-by: Steffen Gortz 
> > Suggested-by: Stefan Hajnoczi 
> > Signed-off-by: Su Hang 
> > ---
> >   MAINTAINERS  |  6 
> >   configure|  4 +++
> >   tests/Makefile.include   |  2 ++
> >   tests/hex-loader-check-data/test.hex | 12 
> >   tests/hexloader-test.c   | 56 
> > 
> 
> The previous patch also touched:
> 
>   hw/arm/boot.c   |   7 +-
>   hw/core/loader.c| 246 
> 
>   include/hw/loader.h |  12 +++
> 
> > +++ b/MAINTAINERS
> > @@ -1291,6 +1291,12 @@ F: hw/core/generic-loader.c
> >   F: include/hw/core/generic-loader.h
> >   F: docs/generic-loader.txt
> > 
> > +Intel Hexadecimal Object File Loader
> > +M: Su Hang 
> > +S: Maintained
> > +F: tests/hexloader-test.c
> > +F: tests/hex-loader-check-data/test.hex
> > +
> 
> It looks odd having a maintainer that claims only test files; do you 
> want to also list some of the other files touched by this patch so that 
> you get notification if one of the implementation files has subsequent 
> patches (rather than just the test files)?
> 
> -- 
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.   +1-919-301-3266
> Virtualization:  qemu.org | libvirt.org


Re: [Qemu-devel] [PULL 2/2] Add QTest testcase for the Intel Hexadecimal

2018-05-24 Thread Eric Blake

On 05/24/2018 06:29 AM, Su Hang wrote:

'test.hex' file is a bare metal ARM software stored in Hexadecimal
Object Format. When it's loaded by QEMU, it will print "Hello world!\n"
on console.

`pre_store` array in 'hexloader-test.c' file, stores the binary format
of 'test.hex' file, which is used to verify correctness.

Reviewed-by: Stefan Hajnoczi 
Suggested-by: Steffen Gortz 
Suggested-by: Stefan Hajnoczi 
Signed-off-by: Su Hang 
---
  MAINTAINERS  |  6 
  configure|  4 +++
  tests/Makefile.include   |  2 ++
  tests/hex-loader-check-data/test.hex | 12 
  tests/hexloader-test.c   | 56 


The previous patch also touched:

 hw/arm/boot.c   |   7 +-
 hw/core/loader.c| 246 


 include/hw/loader.h |  12 +++


+++ b/MAINTAINERS
@@ -1291,6 +1291,12 @@ F: hw/core/generic-loader.c
  F: include/hw/core/generic-loader.h
  F: docs/generic-loader.txt

+Intel Hexadecimal Object File Loader
+M: Su Hang 
+S: Maintained
+F: tests/hexloader-test.c
+F: tests/hex-loader-check-data/test.hex
+


It looks odd having a maintainer that claims only test files; do you 
want to also list some of the other files touched by this patch so that 
you get notification if one of the implementation files has subsequent 
patches (rather than just the test files)?


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



[Qemu-devel] [PULL 2/2] Add QTest testcase for the Intel Hexadecimal

2018-05-24 Thread Su Hang
'test.hex' file is a bare metal ARM software stored in Hexadecimal
Object Format. When it's loaded by QEMU, it will print "Hello world!\n"
on console.

`pre_store` array in 'hexloader-test.c' file, stores the binary format
of 'test.hex' file, which is used to verify correctness.

Reviewed-by: Stefan Hajnoczi 
Suggested-by: Steffen Gortz 
Suggested-by: Stefan Hajnoczi 
Signed-off-by: Su Hang 
---
 MAINTAINERS  |  6 
 configure|  4 +++
 tests/Makefile.include   |  2 ++
 tests/hex-loader-check-data/test.hex | 12 
 tests/hexloader-test.c   | 56 
 5 files changed, 80 insertions(+)
 create mode 100644 tests/hex-loader-check-data/test.hex
 create mode 100644 tests/hexloader-test.c

diff --git a/MAINTAINERS b/MAINTAINERS
index e187b1f18f27..817ac7176b91 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1291,6 +1291,12 @@ F: hw/core/generic-loader.c
 F: include/hw/core/generic-loader.h
 F: docs/generic-loader.txt

+Intel Hexadecimal Object File Loader
+M: Su Hang 
+S: Maintained
+F: tests/hexloader-test.c
+F: tests/hex-loader-check-data/test.hex
+
 CHRP NVRAM
 M: Thomas Huth 
 S: Maintained
diff --git a/configure b/configure
index 59f91ab3f996..15cb143b17ec 100755
--- a/configure
+++ b/configure
@@ -7188,6 +7188,10 @@ for test_file in $(find 
$source_path/tests/acpi-test-data -type f)
 do
 FILES="$FILES tests/acpi-test-data$(echo $test_file | sed -e 
's/.*acpi-test-data//')"
 done
+for test_file in $(find $source_path/tests/hex-loader-check-data -type f)
+do
+FILES="$FILES tests/hex-loader-check-data$(echo $test_file | sed -e 
's/.*hex-loader-check-data//')"
+done
 mkdir -p $DIRS
 for f in $FILES ; do
 if [ -e "$source_path/$f" ] && [ "$pwd_is_source_path" != "y" ]; then
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 3b9a5e31a2c2..f4a3e71f34ee 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -380,6 +380,7 @@ check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF)
 gcov-files-arm-y += hw/timer/arm_mptimer.c
 check-qtest-arm-y += tests/boot-serial-test$(EXESUF)
 check-qtest-arm-y += tests/sdhci-test$(EXESUF)
+check-qtest-arm-y += tests/hexloader-test$(EXESUF)

 check-qtest-aarch64-y = tests/numa-test$(EXESUF)
 check-qtest-aarch64-y += tests/sdhci-test$(EXESUF)
@@ -755,6 +756,7 @@ tests/qmp-test$(EXESUF): tests/qmp-test.o
 tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
 tests/rtc-test$(EXESUF): tests/rtc-test.o
 tests/m48t59-test$(EXESUF): tests/m48t59-test.o
+tests/hexloader-test$(EXESUF): tests/hexloader-test.o
 tests/endianness-test$(EXESUF): tests/endianness-test.o
 tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y)
 tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
diff --git a/tests/hex-loader-check-data/test.hex 
b/tests/hex-loader-check-data/test.hex
new file mode 100644
index ..7e99b452f5cc
--- /dev/null
+++ b/tests/hex-loader-check-data/test.hex
@@ -0,0 +1,12 @@
+:02040001F9
+:14D09FE516EBFEEA9810010008
+:100014B02DE500B08DE20CD04DE208000BE5F8
+:100026EA08301BE50020D3E52C309FE5F0
+:1000302083E508301BE5013083E208300BE542
+:100048301BE50030D3E553E3F41A4E
+:10005000A0E100D08BE204B09DE41EFF2FE180
+:100060101F1000482DE904B08DE208009FE544
+:10007000E6EBA0E10088BDE8840001007E
+:100080101F1048656C6C6F20776F726C6421D4
+:02009A0064
+:0001FF
diff --git a/tests/hexloader-test.c b/tests/hexloader-test.c
new file mode 100644
index ..a8b4cb78e06a
--- /dev/null
+++ b/tests/hexloader-test.c
@@ -0,0 +1,56 @@
+/*
+ * QTest testcase for the Intel Hexadecimal Object File Loader
+ *
+ * Authors:
+ *  Su Hang  2018
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "libqtest.h"
+
+#define BIN_SIZE 146
+
+static unsigned char pre_store[BIN_SIZE] = {
+4,   208, 159, 229, 22,  0,   0,   235, 254, 255, 255, 234, 152, 16,  1,
+0,   4,   176, 45,  229, 0,   176, 141, 226, 12,  208, 77,  226, 8,   0,
+11,  229, 6,   0,   0,   234, 8,   48,  27,  229, 0,   32,  211, 229, 44,
+48,  159, 229, 0,   32,  131, 229, 8,   48,  27,  229, 1,   48,  131, 226,
+8,   48,  11,  229, 8,   48,  27,  229, 0,   48,  211, 229, 0,   0,   83,
+227, 244, 255, 255, 26,  0,   0,   160, 225, 0,   208, 139, 226, 4,   176,
+157, 228, 30,  255, 47,  225, 0,   16,  31,  16,  0,   72,  45,  233, 4,
+176, 141, 226, 8,   0,   159, 229, 230, 255, 255, 235, 0,   0,   160, 225,
+0,   136, 189, 232, 132, 0,   1,   0,   0,   16,  31,  16,  72,  101, 108,
+108, 111, 32,  119, 111, 114, 108, 100, 33,  10,  0};
+
+/*