Re: [kvm-unit-tests PATCH v2 06/18] arm64: efi: Move run code into a function

Nikos Nikoleris
2024-03-04T07:19:41Z

On 27/02/2024 19:21, Andrew Jones wrote:
> Push the run code in arm/efi/run into a function named
> uefi_shell_run() since it will create an EFI file system, copy
> the test and possibly the DTB there, and create a startup.nsh
> which executes the test from the UEFI shell. Pushing this
> code into a function allows additional execution paths to be
> created in the script. Also rename EFI_RUN to UEFI_SHELL_RUN
> to pass the information on to arm/run that it's being called
> from uefi_shell_run().
>
> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>

Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>

Thanks,

Nikos

> ---
> arm/efi/run | 33 +++++++++++++++++++--------------
> arm/run | 4 ++--
> 2 files changed, 21 insertions(+), 16 deletions(-)
>
> diff --git a/arm/efi/run b/arm/efi/run
> index e45cecfa3265..494ba9e7efe7 100755
> --- a/arm/efi/run
> +++ b/arm/efi/run
> @@ -63,18 +63,23 @@ if [ "$EFI_CASE" = "_NO_FILE_4Uhere_" ]; then
> exit
> fi
>
> -mkdir -p "$EFI_CASE_DIR"
> -cp "$EFI_SRC/$EFI_CASE.efi" "$EFI_CASE_DIR/"
> -echo "@echo -off" > "$EFI_CASE_DIR/startup.nsh"
> -if [ "$EFI_USE_DTB" = "y" ]; then
> - qemu_args+=(-machine acpi=off)
> - FDT_BASENAME="dtb"
> - EFI_RUN=y $TEST_DIR/run -machine dumpdtb="$EFI_CASE_DIR/$FDT_BASENAME" "${qemu_args[@]}"
> - echo "setvar fdtfile -guid $EFI_VAR_GUID -rt =L\"$FDT_BASENAME\"" >> "$EFI_CASE_DIR/startup.nsh"
> -fi
> -echo "$EFI_CASE.efi" "${cmd_args[@]}" >> "$EFI_CASE_DIR/startup.nsh"
> +uefi_shell_run()
> +{
> + mkdir -p "$EFI_CASE_DIR"
> + cp "$EFI_SRC/$EFI_CASE.efi" "$EFI_CASE_DIR/"
> + echo "@echo -off" > "$EFI_CASE_DIR/startup.nsh"
> + if [ "$EFI_USE_DTB" = "y" ]; then
> + qemu_args+=(-machine acpi=off)
> + FDT_BASENAME="dtb"
> + UEFI_SHELL_RUN=y $TEST_DIR/run -machine dumpdtb="$EFI_CASE_DIR/$FDT_BASENAME" "${qemu_args[@]}"
> + echo "setvar fdtfile -guid $EFI_VAR_GUID -rt =L\"$FDT_BASENAME\"" >> "$EFI_CASE_DIR/startup.nsh"
> + fi
> + echo "$EFI_CASE.efi" "${cmd_args[@]}" >> "$EFI_CASE_DIR/startup.nsh"
> +
> + UEFI_SHELL_RUN=y $TEST_DIR/run \
> + -bios "$EFI_UEFI" \
> + -drive file.dir="$EFI_CASE_DIR/",file.driver=vvfat,file.rw=on,format=raw,if=virtio \
> + "${qemu_args[@]}"
> +}
>
> -EFI_RUN=y $TEST_DIR/run \
> - -bios "$EFI_UEFI" \
> - -drive file.dir="$EFI_CASE_DIR/",file.driver=vvfat,file.rw=on,format=raw,if=virtio \
> - "${qemu_args[@]}"
> +uefi_shell_run
> diff --git a/arm/run b/arm/run
> index ac64b3b461a2..40c2ca66ba7e 100755
> --- a/arm/run
> +++ b/arm/run
> @@ -60,7 +60,7 @@ if ! $qemu $M -chardev '?' | grep -q testdev; then
> exit 2
> fi
>
> -if [ "$EFI_RUN" != "y" ]; then
> +if [ "$UEFI_SHELL_RUN" != "y" ]; then
> chr_testdev='-device virtio-serial-device'
> chr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd'
> fi
> @@ -75,7 +75,7 @@ command="$qemu -nodefaults $M $A -cpu $processor $chr_testdev $pci_testdev"
> command+=" -display none -serial stdio"
> command="$(migration_cmd) $(timeout_cmd) $command"
>
> -if [ "$EFI_RUN" = "y" ]; then
> +if [ "$UEFI_SHELL_RUN" = "y" ]; then
> ENVIRON_DEFAULT=n run_qemu_status $command "$@"
> else
> run_qemu $command -kernel "$@"