On Mon, Oct 28, 2019 at 03:52:12PM +0800, Tao Xu wrote: > Add tests for time input such as zero, around limit of precision, > signed upper limit, actual upper limit, beyond limits, time suffixes, > and etc. > > Signed-off-by: Tao Xu <tao3...@intel.com> > --- [...] > + /* Close to signed upper limit 0x7ffffffffffffc00 (53 msbs set) */ > + qdict = keyval_parse("time1=9223372036854774784," /* 7ffffffffffffc00 */ > + "time2=9223372036854775295", /* 7ffffffffffffdff */ > + NULL, &error_abort); > + v = qobject_input_visitor_new_keyval(QOBJECT(qdict)); > + qobject_unref(qdict); > + visit_start_struct(v, NULL, NULL, 0, &error_abort); > + visit_type_time(v, "time1", &time, &error_abort); > + g_assert_cmphex(time, ==, 0x7ffffffffffffc00); > + visit_type_time(v, "time2", &time, &error_abort); > + g_assert_cmphex(time, ==, 0x7ffffffffffffc00);
I'm confused by this test case and the one below[1]. Are these known bugs? Shouldn't we document them as known bugs? > + visit_check_struct(v, &error_abort); > + visit_end_struct(v, NULL); > + visit_free(v); > + > + /* Close to actual upper limit 0xfffffffffffff800 (53 msbs set) */ > + qdict = keyval_parse("time1=18446744073709549568," /* fffffffffffff800 */ > + "time2=18446744073709550591", /* fffffffffffffbff */ > + NULL, &error_abort); > + v = qobject_input_visitor_new_keyval(QOBJECT(qdict)); > + qobject_unref(qdict); > + visit_start_struct(v, NULL, NULL, 0, &error_abort); > + visit_type_time(v, "time1", &time, &error_abort); > + g_assert_cmphex(time, ==, 0xfffffffffffff800); > + visit_type_time(v, "time2", &time, &error_abort); > + g_assert_cmphex(time, ==, 0xfffffffffffff800); [1] > + visit_check_struct(v, &error_abort); > + visit_end_struct(v, NULL); > + visit_free(v); [...] -- Eduardo