From: John Snow <jsnow@redhat.com>
To: Markus Armbruster <armbru@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 00/30] AHCI test suite framework
Date: Wed, 06 Aug 2014 12:50:23 -0400 [thread overview]
Message-ID: <53E25CCF.9090000@redhat.com> (raw)
In-Reply-To: <87egwtsvmr.fsf@blackfin.pond.sub.org>
On 08/06/2014 07:30 AM, Markus Armbruster wrote:
> Stefan Hajnoczi <stefanha@redhat.com> writes:
>
>> On Mon, Aug 04, 2014 at 05:11:01PM -0400, John Snow wrote:
>>> This patch series introduces a number of small fixes and tweaks to
>>> help support an AHCI test suite that in the future I hope to expand
>>> to a fuller regression suite to help guide the development of the
>>> AHCI device support under, in particular, the Q35 machine type in QEMU.
>>>
>>> Paolo Bonzini has contributed a number of cleanup and refactoring patches
>>> that support changes to the PIO setup FIS packet construction code, which
>>> is necessary for testing ths specification adherence of the IDENTIFY command,
>>> which issues its data exclusively via PIO mechanisms.
>>>
>>> The ahci-test code being checked in represents a minimum of functionality
>>> needed in order to issue and receive commands from the AHCI HBA under the
>>> libqos / qtest environment.
>>>
>>> In V2, as detailed below, these tests are not currently expected to pass.
>>> I will post a complementary patch outside of this set that highlights
>>> the exact set of tests that will not pass, which can help verify at least
>>> the portions of these tests that do work correctly.
>>>
>>> Assertions that currently fail:
>>> - Ordering of PCI capabilities as defined by either AHCI or Intel ICH9
>>> - Boot-time values of the PxTFD register, which should not have valid
>>> data until after a D2H FIS is received, but does in Qemu 2.1
>>> - Boot-time values of the PxSIG register, which should have a specific
>>> placeholder signature until the first D2H FIS is received, but is
>>> currently blank.
>>> - The "Descriptor Processed" interrupt is expected after the IDENTIFY
>>> command exhausts the given PRDT, but is not seen.
>>
>> I guess these are the assertion failures:
>> ERROR:tests/ahci-test.c:777:ahci_test_pci_spec: assertion failed
>> ((data & 0xFF) == PCI_CAP_ID_MSI): (0x00000012 == 0x00000005)
>> GTester: last random seed: R02Sd92815a5d013e8433808b903b2b13fb0
>> **
>> ERROR:tests/ahci-test.c:1165:ahci_test_port_spec: assertion failed
>> ((reg) & ((0x01)) == ((0x01))): (0x00000000 == 0x00000001)
>> GTester: last random seed: R02S4d6c05e864dc777e64141cdc6d2a18cf
>> **
>> ERROR:tests/ahci-test.c:1360:ahci_test_identify: assertion failed
>> ((reg) & ((0x20)) == ((0x20))): (0x00000000 == 0x00000020)
>> GTester: last random seed: R02S2b3b330b83a66badb24da80b48120b1d
>>
>> Why publish this patch series if the test fails? We can't merge failing
>> tests.
>
> Correct.
>
> What I do when I want to start some bug fixing work with tests is to
> write the tests to expect the actual, incorrect behavior, with a
> greppable comment documenting the correct behavior. Then clean that up
> as the bugs get fixed.
>
I thought it was valid to submit a failing test if... well, the behavior
was wrong. Stefan said no warnings, so I took that to mean "This should
fail." I didn't think it was too strange to have a failing test for
something that was not feature complete.
So, if it's not appropriate to have a failing test at any stage
(Regressions only?) now's a good time to let me know how you would like
me to accomplish no warnings but have the tests pass. In my V1 I did
just print a "WARN" string which was reasonable greppable to find the
failure cases.
My next guess at something workable would be to stick the assertions
behind a bool that could be toggled on/off via a flag that could be
toggled with --all or similar to hit the expected failure cases. No
warnings inside of the test harness, no failures, and cases could be
found by grepping the name of the boolean and/or some accompanying comment.
--j
next prev parent reply other threads:[~2014-08-06 16:50 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-04 21:11 [Qemu-devel] [PATCH v2 00/30] AHCI test suite framework John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 01/30] blkdebug: report errors on flush too John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 02/30] libqtest: add QTEST_LOG for debugging qtest testcases John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 03/30] ide-test: add test for werror=stop John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 04/30] ide: stash aiocb for flushes John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 05/30] ide: simplify reset callbacks John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 06/30] ide: simplify set_inactive callbacks John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 07/30] ide: simplify async_cmd_done callbacks John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 08/30] ide: simplify start_transfer callbacks John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 09/30] ide: wrap start_dma callback John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 10/30] ide: remove wrong setting of BM_STATUS_INT John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 11/30] ide: fold add_status callback into set_inactive John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 12/30] ide: move BM_STATUS bits to pci.[ch] John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 13/30] ide: move retry constants out of BM_STATUS_* namespace John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 14/30] ahci: remove duplicate PORT_IRQ_* constants John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 15/30] ide: stop PIO transfer on errors John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 16/30] ide: make all commands go through cmd_done John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 17/30] ahci: construct PIO Setup FIS for PIO commands John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 18/30] q35: Enable the ioapic device to be seen by qtest John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 19/30] qtest: Adding qtest_memset and qmemset John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 20/30] libqos: Correct memory leak John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 21/30] libqtest: Correct small " John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 22/30] libqos: Fixes a " John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 23/30] libqos: allow qpci_iomap to return BAR mapping size John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 24/30] qtest/ide: Fix small memory leak John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 25/30] ahci: Adding basic functionality qtest John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 26/30] ahci: Add test_pci_spec to ahci-test John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 27/30] ahci: add test_pci_enable " John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 28/30] ahci: Add test_hba_spec " John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 29/30] ahci: Add test_hba_enable " John Snow
2014-08-04 21:11 ` [Qemu-devel] [PATCH v2 30/30] ahci: Add test_identify case " John Snow
2014-08-06 9:43 ` [Qemu-devel] [PATCH v2 00/30] AHCI test suite framework Stefan Hajnoczi
2014-08-06 11:30 ` Markus Armbruster
2014-08-06 16:50 ` John Snow [this message]
2014-08-07 6:01 ` Markus Armbruster
2014-08-07 9:26 ` Stefan Hajnoczi
2014-08-11 16:14 ` Stefan Hajnoczi
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=53E25CCF.9090000@redhat.com \
--to=jsnow@redhat.com \
--cc=armbru@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).