On 08/19/2011 08:58 AM, Eric Blake wrote:
# Succeed, now: first shut down, then undefine, both via name. -$abs_top_builddir/tools/virsh -q -c test:///default 'shutdown test; undefine test'> out 2>&1 -test $? = 0 || fail=1 -cat<<\EOF> exp || fail=1 +$abs_top_builddir/tools/virsh -q -c test:///default \ + 'shutdown test; undefine test; dominfo test'> out 2> err
Aargh - this points out a bug in virsh - we aren't calling fflush() in between writes to stdout and stderr. If those two FILE* are mapped to the same underlying file description (as is the case when you do 2>&1 redirection from the shell), then it is essential to flush in between every transition between the two FILE* if you want the output to appear in linear order. Without patching virsh, I had to split this into capturing output in two files, with no sense of relationship between timings, because my test run happened to flush stderr prior to stdout and reverse the output from the expected linear ordering of when it was produced.
-- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list