[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kvm-unit-tests PATCH 14/16] arm/run: Allow Migration tests
From: |
Eric Auger |
Subject: |
[kvm-unit-tests PATCH 14/16] arm/run: Allow Migration tests |
Date: |
Mon, 16 Dec 2019 15:02:33 +0100 |
Let's link getchar.o to use puts and getchar from the
tests.
Then allow tests belonging to the migration group to
trigger the migration from the test code by putting
"migrate" into the uart. Then the code can wait for the
migration completion by using getchar().
The __getchar implement is minimalist as it just reads the
data register. It is just meant to read the single character
emitted at the end of the migration by the runner script.
It is not meant to read more data (FIFOs are not enabled).
Signed-off-by: Eric Auger <address@hidden>
---
arm/Makefile.common | 2 +-
arm/run | 2 +-
lib/arm/io.c | 13 +++++++++++++
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/arm/Makefile.common b/arm/Makefile.common
index 7cc0f04..327f112 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -32,7 +32,7 @@ CFLAGS += -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -I lib
asm-offsets = lib/$(ARCH)/asm-offsets.h
include $(SRCDIR)/scripts/asm-offsets.mak
-cflatobjs += lib/util.o
+cflatobjs += lib/util.o lib/getchar.o
cflatobjs += lib/alloc_phys.o
cflatobjs += lib/alloc_page.o
cflatobjs += lib/vmalloc.o
diff --git a/arm/run b/arm/run
index 277db9b..a390ca5 100755
--- a/arm/run
+++ b/arm/run
@@ -61,6 +61,6 @@ fi
M+=",accel=$ACCEL"
command="$qemu -nodefaults $M -cpu $processor $chr_testdev $pci_testdev"
command+=" -display none -serial stdio -kernel"
-command="$(timeout_cmd) $command"
+command="$(migration_cmd) $(timeout_cmd) $command"
run_qemu $command "$@"
diff --git a/lib/arm/io.c b/lib/arm/io.c
index 99fd315..aa9e1b5 100644
--- a/lib/arm/io.c
+++ b/lib/arm/io.c
@@ -87,6 +87,19 @@ void puts(const char *s)
spin_unlock(&uart_lock);
}
+/*
+ * Minimalist implementation for migration completion detection.
+ * Needs to be improved for more advanced Rx cases
+ */
+int __getchar(void)
+{
+ int ret;
+
+ ret = readb(uart0_base);
+ if (!ret)
+ return -1;
+ return ret;
+}
/*
* Defining halt to take 'code' as an argument guarantees that it will
--
2.20.1
- [kvm-unit-tests PATCH 06/16] arm/arm64: ITS: Test BASER, (continued)
- [kvm-unit-tests PATCH 06/16] arm/arm64: ITS: Test BASER, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 07/16] arm/arm64: ITS: Set the LPI config and pending tables, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 09/16] arm/arm64: ITS: Enable/Disable LPIs at re-distributor level, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 08/16] arm/arm64: ITS: Init the command queue, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 10/16] arm/arm64: ITS: its_enable_defaults, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 12/16] arm/arm64: ITS: commands, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 13/16] arm/arm64: ITS: INT functional tests, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 14/16] arm/run: Allow Migration tests,
Eric Auger <=
- [kvm-unit-tests PATCH 16/16] arm/arm64: ITS: pending table migration test, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 15/16] arm/arm64: ITS: migration tests, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 11/16] arm/arm64: ITS: Device and collection Initialization, Eric Auger, 2019/12/16
- [kvm-unit-tests PATCH 02/16] arm: gic: Provide per-IRQ helper functions, Eric Auger, 2019/12/16