Am 18.10.2016 um 21:53 hat Eric Blake geschrieben:
On 10/18/2016 02:45 PM, John Snow wrote:
On 10/18/2016 06:22 AM, Kevin Wolf wrote:
This tests the different supported methods to create floppy drives and
how they interact.
+function check_floppy_qtree()
+{
+ echo
+ echo Testing: "$@" | _filter_testdir
+
+ # QEMU_OPTIONS contains -nodefaults, we don't want that here
because the
+ # defaults are part of what should be checked here
+ echo "info qtree" |
+ QEMU_OPTIONS="" do_run_qemu "$@" | _filter_win32 |
+ grep -zo '[[:cntrl:]]\( *\)dev: isa-fdc.*\([[:cntrl:]]\1
.*\)*[[:cntrl:]] *dev:'
This grep invocation doesn't appear to actually terminate with the '-z'
option here. Not sure why, I haven't looked into the bash framework
much, hopefully it's not too hard for you to reproduce and correct.
No, obviously I can't reproduce, otherwise I wouldn't have written the
test case like this. It passes just fine for me on RHEL 7.
Is 'grep -z' even portable to BSD, or is it just a GNU extension? Would
it be better to run the output through tr to convert things to a saner
subset of characters before then grepping a text file?
Is qemu-iotests even supposed to run on BSD? All our test cases specify
"_supported_os Linux". (And I don't think this means Linux kernel with
BSD userland :-))
Anyway, the tr thing you mean would be translating all newlines into
something else (which is hopefully otherwise unused), then grep, then
translate back?
What this line is supposed to do (if it wasn't obvious) is extracting
the full information for a single device from 'info qtree'. I don't
really mind how it's done, but multiline operation seems to be something
that isn't trivial with most tools... I think I've done multiline sed
before, so maybe that would be another option.
Kevin