From: Laszlo Ersek <lersek@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 8/8] OptsVisitor: introduce unit tests, with test cases for range flattening
Date: Tue, 23 Jul 2013 00:24:42 +0200 [thread overview]
Message-ID: <51EDB12A.7020704@redhat.com> (raw)
In-Reply-To: <51EDAC5F.1070001@redhat.com>
On 07/23/13 00:04, Eric Blake wrote:
> On 07/22/2013 03:07 PM, Laszlo Ersek wrote:
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>> tests/Makefile | 6 +-
>> qapi-schema-test.json | 15 +++
>> tests/test-opts-visitor.c | 275 +++++++++++++++++++++++++++++++++++++++++++++
>> .gitignore | 1 +
>> 4 files changed, 296 insertions(+), 1 deletions(-)
>> create mode 100644 tests/test-opts-visitor.c
>
>> + add_test("/visitor/opts/i64/val1/errno", &expect_fail,
>> + "i64=0x8000000000000000");
>> + add_test("/visitor/opts/i64/val1/empty", &expect_fail, "i64=");
>> + add_test("/visitor/opts/i64/val1/trailing", &expect_fail, "i64=5z");
>> + add_test("/visitor/opts/i64/nonlist", &expect_fail, "i64x=5-6");
>> + add_test("/visitor/opts/i64/val2/errno", &expect_fail,
>> + "i64=0x7fffffffffffffff-0x8000000000000000");
>> + add_test("/visitor/opts/i64/val2/empty", &expect_fail, "i64=5-");
>> + add_test("/visitor/opts/i64/val2/trailing", &expect_fail, "i64=5-6z");
>> + add_test("/visitor/opts/i64/range/empty", &expect_fail, "i64=6-5");
>> + add_test("/visitor/opts/i64/range/minval", &expect_i64_min,
>> + "i64=-0x8000000000000000--0x8000000000000000");
>> + add_test("/visitor/opts/i64/range/maxval", &expect_i64_max,
>> + "i64=0x7fffffffffffffff-0x7fffffffffffffff");
>
> Pretty thorough, although I thought of a couple other ideas to test:
> i64=5z-6 should fail; i64=5-6-7 should fail
I can add them if you insist, but I wrote (and single-stepped all of)
the test cases so that all branches added by patches 3, 5 and 6 would be
covered. (Some of the final tests in this function are actually
redundant, but I liked how they looked :))
For example, "i64=5z-6" is no different from "i64=5z", in patch 3 both
the first added (*endptr == '\0') condition and the (*endptr == '-')
fail the same way for both input strings: we never look past the "z".
Likewise, "i64=5-6-7" is the same case as "i64=5-6z": both characters
after the "6" (ie. "-" and "z") violate the second added (*endptr ==
'\0') condition in patch 3 the same way.
Do you accept this argument? :)
Thanks!
Laszlo
next prev parent reply other threads:[~2013-07-22 22:22 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-22 21:07 [Qemu-devel] [PATCH 0/8] OptsVisitor: support / flatten integer ranges for repeating options Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 1/8] OptsVisitor: introduce basic list modes Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 2/8] OptsVisitor: introduce list modes for interval flattening Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 3/8] OptsVisitor: opts_type_int(): recognize intervals when LM_IN_PROGRESS Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 4/8] OptsVisitor: rebase opts_type_uint64() to parse_uint_full() Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 5/8] OptsVisitor: opts_type_uint64(): recognize intervals when LM_IN_PROGRESS Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 6/8] OptsVisitor: don't try to flatten overlong integer ranges Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 7/8] add "test-int128" to .gitignore Laszlo Ersek
2013-07-22 21:07 ` [Qemu-devel] [PATCH 8/8] OptsVisitor: introduce unit tests, with test cases for range flattening Laszlo Ersek
2013-07-22 22:04 ` Eric Blake
2013-07-22 22:24 ` Laszlo Ersek [this message]
2013-07-22 22:26 ` Eric Blake
2013-07-22 22:37 ` Laszlo Ersek
2013-08-19 19:26 ` Luiz Capitulino
2013-08-19 19:55 ` Laszlo Ersek
2013-08-19 20:04 ` Laszlo Ersek
2013-07-29 9:47 ` [Qemu-devel] [PATCH 0/8] OptsVisitor: support / flatten integer ranges for repeating options Laszlo Ersek
2013-07-29 11:01 ` Paolo Bonzini
2013-07-29 11:11 ` Wanlong Gao
2013-07-29 11:30 ` Laszlo Ersek
2013-08-16 7:15 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51EDB12A.7020704@redhat.com \
--to=lersek@redhat.com \
--cc=eblake@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.