On 08/08/2017 09:48 AM, Kevin Wolf wrote: >>> Not completely sure why, but this broke the test with whitespace changes >>> like this: >>> >>> -=== Running test case: mmap.elf -m 1.1M === >>> +=== Running test case: mmap.elf -m1.1M === >> >> I guess that means I'm not regularly running tests/multiboot? Is it not >> part of 'make check' or qemu-iotests? > > The problem is that it needs an i386 compiler to build the test kernels > (and qemu-system-i386 or qemu-system-x86_64 binaries to execute them). > > I guess we could check these conditions, though, and skip the test if we > can't produce i386 binaries.
And when you CAN run the test, it litters 'git status' of an in-tree build with: Untracked files: (use "git add <file>..." to include in what will be committed) tests/multiboot/mmap.elf tests/multiboot/modules.elf tests/multiboot/test.out which ought to be fixed. > >> Ah, I see the problem, and it's insidious. We're using "...$@...", but >> want to be using "...$*...". $@ causes multiple arguments to be passed, >> but printf %b is not concatenating those arguments; while $* uses only a >> single argument. We didn't notice it with echo -e, because echo inserts >> a space between multiple arguments, just as you'd get a space with $*. > > The thing that completely confused me here is that printf doesn't just > ignore additional arguments as I would have expected, but just starts > over with the format string, so that it does kind of work with multiple > arguments and fails only subtly. Both echo and printf accept more than one argument, but only echo injects an automatic space between those arguments in the output. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
Description: OpenPGP digital signature