On 08/07/2022 10:00, Xenia Ragiadakou wrote:
+
+(grep -q "Xen dom0less mode detected" qemu-staticmem.serial) ||
exit 1
+
+for ((i=0; i<${#base[@]}; i++))
+do
+ start="$(printf "0x%016x" ${base[$i]})"
+ end="$(printf "0x%016x" $((${base[$i]} + ${size[$i]} - 1)))"
+ grep -q "node 0: \[mem ${start}-${end}\]" qemu-staticmem.serial
+ if test $? -eq 1
+ then
+ exit 1
+ fi
+done
Please add a comment on top to explain what this is meant to do.
However, I think we should avoid relying on output that we have
written ourself. IOW, relying on Xen/Linux to always write the same
message is risky because they can change at any time.
The kernel is taken from a test-artifact container, so, IIUC, it
won't change.
This statement is correct today. However, we may decide to update the
kernel or test multiple kernels (with different ouput).
In the first case, it would be a matter of updating the script. This
is annoying but not too bad. In the second case, we would need to have
"if version X ... else if version Y ... ".
The particular test was relying and had a dependency on this kernel.
I think you missed my point. I don't disagree that the test today
expects a specific version. However, there are nothing preventing us to
change that so we long we have a matching initramfs/kernel.
If the test is merged into the qemu-smoke-arm64.sh, the check above will
leave and it will be tested whether the guest makes it to the busybox,
based on the busybox logs, which also may change at any time.
I don't think I suggested that relying on busybox is better. Ideally we
should run a script that prints a message.
But this is not something I am going to argue for in this patch. Relying
on one piece of line is already far better than trying to check logs for
each components (e.g. xen, kernel, busysbox).
Cheers,
--
Julien Grall