qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 07/14] tests: ds-rtc test wday offset


From: David Gibson
Subject: Re: [Qemu-devel] [PATCH v2 07/14] tests: ds-rtc test wday offset
Date: Mon, 9 Jul 2018 16:50:48 +1000
User-agent: Mutt/1.10.0 (2018-05-17)

On Sat, Jul 07, 2018 at 10:50:39AM -0700, Michael Davidsaver wrote:
> Signed-off-by: Michael Davidsaver <address@hidden>

Reviewed-by: David Gibson <address@hidden>

> ---
>  tests/ds-rtc-common.h       | 10 +++++++---
>  tests/ds-rtc-current-test.c |  9 ++++++++-
>  tests/ds-rtc-set-test.c     |  6 ++++--
>  3 files changed, 19 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/ds-rtc-common.h b/tests/ds-rtc-common.h
> index 5bc7ab32a6..782ea60453 100644
> --- a/tests/ds-rtc-common.h
> +++ b/tests/ds-rtc-common.h
> @@ -20,7 +20,7 @@ static uint8_t addr;
>  static bool use_century;
>  
>  /* input buffer must have at least 7 elements */
> -static inline time_t rtc_parse(const uint8_t *buf, int *mmode)
> +static inline time_t rtc_parse(const uint8_t *buf, unsigned *wday, int 
> *mmode)
>  {
>      struct tm parts;
>  
> @@ -51,10 +51,14 @@ static inline time_t rtc_parse(const uint8_t *buf, int 
> *mmode)
>          parts.tm_year += 100u;
>      }
>  
> +    if (wday) {
> +        *wday = parts.tm_wday;
> +    }
> +
>      return mktimegm(&parts);
>  }
>  
> -static time_t rtc_gettime(int *mmode)
> +static time_t rtc_gettime(unsigned *wday, int *mmode)
>  {
>      uint8_t buf[7];
>  
> @@ -64,7 +68,7 @@ static time_t rtc_gettime(int *mmode)
>      /* read back current time registers */
>      i2c_recv(i2c, addr, buf, 7);
>  
> -    return rtc_parse(buf, mmode);
> +    return rtc_parse(buf, wday, mmode);
>  }
>  
>  #endif /* DSRTCCOMMON_H */
> diff --git a/tests/ds-rtc-current-test.c b/tests/ds-rtc-current-test.c
> index 3c15482a9d..08d8411671 100644
> --- a/tests/ds-rtc-current-test.c
> +++ b/tests/ds-rtc-current-test.c
> @@ -20,17 +20,24 @@
>  static
>  void test_rtc_current(void)
>  {
> +    struct tm tm_actual;
>      time_t expected, actual;
>      /* relax test to limit false positives when host may be overloaded.
>       * Allow larger delta when running "-m quick"
>       */
>      time_t max_delta = g_test_slow() ? 1 : 30;
>  
> +    unsigned wday_expect;
> +
>      actual = time(NULL);
>      /* new second may start here */
> -    expected = rtc_gettime(NULL);
> +    expected = rtc_gettime(&wday_expect, NULL);
> +
> +    gmtime_r(&actual, &tm_actual);
> +
>      g_assert_cmpuint(expected, <=, actual + max_delta);
>      g_assert_cmpuint(expected, >=, actual);
> +    g_assert_cmpuint(wday_expect, ==, tm_actual.tm_wday);
>  }
>  
>  int main(int argc, char *argv[])
> diff --git a/tests/ds-rtc-set-test.c b/tests/ds-rtc-set-test.c
> index 3a742e897f..1004470931 100644
> --- a/tests/ds-rtc-set-test.c
> +++ b/tests/ds-rtc-set-test.c
> @@ -124,17 +124,19 @@ void test_rtc_set(const void *raw)
>  
>      const uint8_t *testtime = raw;
>      time_t expected, actual;
> +    unsigned wday_expect, wday_actual;
>      int mode_expect, mode_actual;
>  
>      /* skip address pointer and parse remainder */
> -    expected = rtc_parse(&testtime[1], &mode_expect);
> +    expected = rtc_parse(&testtime[1], &wday_expect, &mode_expect);
>  
>      i2c_send(i2c, addr, testtime, 8);
>      /* host may start new second here */
> -    actual = rtc_gettime(&mode_actual);
> +    actual = rtc_gettime(&wday_actual, &mode_actual);
>  
>      g_assert_cmpuint(expected, <=, actual);
>      g_assert_cmpuint(expected + max_delta, >=, actual);
> +    g_assert_cmpuint(wday_expect, ==, wday_actual);
>      g_assert_cmpint(mode_expect, ==, mode_actual);
>  }
>  

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]