v2v/test-v2v-windows-conversion.sh used to query if the expected
directories and filed were present in the VM upon conversion; however it
would ignore the results of that query.
That lead to the test passing even though the checks failed.
To fix it, parse the output of guestfish and verify that all is-file and
is-dir commands return the expected "true".
While doing so, keep in mind that the exit status of a pipeline is that
of the last command, so make sure to check the exit status of guestfish
too via $PIPESTATUS (yes it's bash-specific but the scripts are run with
bash only anyway).
Signed-off-by: Roman Kagan <rkagan(a)virtuozzo.com>
---
v2v/test-v2v-windows-conversion.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/v2v/test-v2v-windows-conversion.sh b/v2v/test-v2v-windows-conversion.sh
index eef6f57..916699d 100755
--- a/v2v/test-v2v-windows-conversion.sh
+++ b/v2v/test-v2v-windows-conversion.sh
@@ -67,12 +67,23 @@ test -f $d/windows.xml
test -f $d/windows-sda
# Test some aspects of the target disk image.
+{
guestfish --ro -a $d/windows-sda -i <<EOF
+ trace 1
is-dir "/Program Files/Red Hat/Firstboot"
is-file "/Program Files/Red Hat/Firstboot/firstboot.bat"
is-dir "/Program Files/Red Hat/Firstboot/scripts"
is-dir "/Windows/Drivers/VirtIO"
+ trace 0
EOF
+} | {
+ ret=0
+ while read r; do
+ [ "$r" = "true" ] || ret=1
+ done
+ exit $ret
+}
+(( PIPESTATUS[0] == 0 ))
# We also update the Registry several times, for firstboot, and (ONLY
# if the virtio-win drivers are installed locally) the critical device
--
2.4.3