From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39309) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1OUl-0000he-NL for qemu-devel@nongnu.org; Mon, 22 Jul 2013 18:22:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1OUi-00023z-Ve for qemu-devel@nongnu.org; Mon, 22 Jul 2013 18:22:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44548) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1OUi-00023b-NC for qemu-devel@nongnu.org; Mon, 22 Jul 2013 18:22:16 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r6MMMGDr032725 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 22 Jul 2013 18:22:16 -0400 Message-ID: <51EDB12A.7020704@redhat.com> Date: Tue, 23 Jul 2013 00:24:42 +0200 From: Laszlo Ersek MIME-Version: 1.0 References: <1374527256-27631-1-git-send-email-lersek@redhat.com> <1374527256-27631-9-git-send-email-lersek@redhat.com> <51EDAC5F.1070001@redhat.com> In-Reply-To: <51EDAC5F.1070001@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 8/8] OptsVisitor: introduce unit tests, with test cases for range flattening List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org On 07/23/13 00:04, Eric Blake wrote: > On 07/22/2013 03:07 PM, Laszlo Ersek wrote: >> Signed-off-by: Laszlo Ersek >> --- >> 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