diff mbox

qtest: Handle addresses and values for {in,out}[bwl] as unsigned

Message ID 1366551003-16649-1-git-send-email-peter.maydell@linaro.org
State Accepted
Commit 56863d4f19c854acc5ebf5f5c1b590eb8164851a
Headers show

Commit Message

Peter Maydell April 21, 2013, 1:30 p.m. UTC
Handle the addresses and values for {in,out}[bwl] as unsigned (ie
with strtoul), as per the protocol specification comment. This fixes
a test failure in test_i440fx_defaults on 32-bit hosts where the test
tries to write 0x80000000 and qtest was instead writing 0x7fffffff.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
This fixes the actual parsing error; checking strtol errors is
a separate bug which should be done for the whole file.

 qtest.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Blue Swirl April 21, 2013, 3:24 p.m. UTC | #1
On Sun, Apr 21, 2013 at 1:30 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Handle the addresses and values for {in,out}[bwl] as unsigned (ie
> with strtoul), as per the protocol specification comment. This fixes
> a test failure in test_i440fx_defaults on 32-bit hosts where the test
> tries to write 0x80000000 and qtest was instead writing 0x7fffffff.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Fixes the problem for me.
Tested-by: Blue Swirl <blauwirbel@gmail.com>

> ---
> This fixes the actual parsing error; checking strtol errors is
> a separate bug which should be done for the whole file.
>
>  qtest.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/qtest.c b/qtest.c
> index 3bba3e5..07a9612 100644
> --- a/qtest.c
> +++ b/qtest.c
> @@ -271,8 +271,8 @@ static void qtest_process_command(CharDriverState *chr, gchar **words)
>          uint32_t value;
>
>          g_assert(words[1] && words[2]);
> -        addr = strtol(words[1], NULL, 0);
> -        value = strtol(words[2], NULL, 0);
> +        addr = strtoul(words[1], NULL, 0);
> +        value = strtoul(words[2], NULL, 0);
>
>          if (words[0][3] == 'b') {
>              cpu_outb(addr, value);
> @@ -290,7 +290,7 @@ static void qtest_process_command(CharDriverState *chr, gchar **words)
>          uint32_t value = -1U;
>
>          g_assert(words[1]);
> -        addr = strtol(words[1], NULL, 0);
> +        addr = strtoul(words[1], NULL, 0);
>
>          if (words[0][2] == 'b') {
>              value = cpu_inb(addr);
> --
> 1.7.10.4
>
Anthony Liguori April 22, 2013, 6:34 p.m. UTC | #2
Applied.  Thanks.

Regards,

Anthony Liguori
diff mbox

Patch

diff --git a/qtest.c b/qtest.c
index 3bba3e5..07a9612 100644
--- a/qtest.c
+++ b/qtest.c
@@ -271,8 +271,8 @@  static void qtest_process_command(CharDriverState *chr, gchar **words)
         uint32_t value;
 
         g_assert(words[1] && words[2]);
-        addr = strtol(words[1], NULL, 0);
-        value = strtol(words[2], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
+        value = strtoul(words[2], NULL, 0);
 
         if (words[0][3] == 'b') {
             cpu_outb(addr, value);
@@ -290,7 +290,7 @@  static void qtest_process_command(CharDriverState *chr, gchar **words)
         uint32_t value = -1U;
 
         g_assert(words[1]);
-        addr = strtol(words[1], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
 
         if (words[0][2] == 'b') {
             value = cpu_inb(addr);