On Tue, 2016-11-22 at 23:39 +0100, Paolo Bonzini wrote: > On 22/11/2016 23:31, Alastair D'Silva wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > + if (irq == NULL) { > > > > > > > > + qtest_send_prefix(chr); > > > > > > > > + qtest_send(chr, "FAIL Unknown IRQ\n"); > > > > > > > > + return; > > > > > > > > + } > > > > > > > > + > > > > > > > > + qemu_set_irq(irq, level); > > > > > > > > This seems wrong. The IRQ should not be modifiable by the > > > > test. > > > > > > > > Paolo > > > > > > Thanks Paolo, could you please advise as to why that is?
Could you answer this please? I would like to understand why. > > The situation I am addressing is that I device under test that > > changes > > behaviour when a GPIO line is raised. Is there another way I should > > be > > raising that line from within qtest? > > What causes the GPIO line to be raised in the normal emulated case? > > It would be wired to a GPIO line from the host microcontroller, under software control. In this test case, the device is connected to a "borrowed" board via the command line: snprintf(args, sizeof(args), "-display none -machine imx25-pdk " "-device rx8900,bus=i2c.0,address=0x%x,id=%s", RX8900_ADDR, RX8900_TEST_ID); I couldn't see a way to wire in the the GPIO to the host via the command line, but even if there was, manipulating it would require manipulating the host CPU, which would broaden the scope of the test. At the moment, the test has no dependency on/interaction with the host CPU, it's just using it to provide an I2C bus. -- Alastair D'Silva Open Source Developer Linux Technology Centre, IBM Australia mob: 0423 762 819