Table of Contents

Daniel Verkamp: Automated regression testing

Journal Week 10

Monday, July 27

Attempting to debug Test::Machine::Qemu lockup with -curses and -monitor on a PTY.

Noted that with -curses and -serial stdio, no lockup occurs, so this seems to be unique to -curses.

Tracing monitor and curses operation; seemingly qemu-char.c is used for generic “char devices”, which at least the monitor is.

Tuesday, July 28 - Wednesday, July 29

strace of QEMU with -curses and -monitor simultaneously seems to indicate that it is in fact writing to the monitor PTY:

open("/dev/pts/5", O_RDWR|O_NONBLOCK)   = 11
ioctl(11, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(11, SNDCTL_TMR_START or TCSETS, {B115200 opost -isig -icanon -echo ...}) = 0

[...]

write(11, "QEMU 0.10.5 monitor - type 'help'"..., 56) = 56
write(11, "(qemu) "..., 7)              = 7

Thursday, July 30

Attach the correct end of the monitor PTY to QEMU: commit

Taking a short break from debugging -curses output (I plan to continue work in other areas using -serial and gPXE's CONSOLE_SERIAL if I can't figure it out in the short term).

Implemented generic configuration file abstraction: commit

Switched Test::Machine from parsing conf files itself over to Test::Configuration: commit