Message ID | 20191216140235.10751-15-eric.auger@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm/arm64: Add ITS tests | expand |
On 16/12/2019 15.02, Eric Auger wrote: > 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 <eric.auger@redhat.com> > --- > 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); Duplicated space before "readb"... > + if (!ret) > + return -1; > + return ret; > +} > > /* > * Defining halt to take 'code' as an argument guarantees that it will > ... but apart from that nit: Reviewed-by: Thomas Huth <thuth@redhat.com>
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
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 <eric.auger@redhat.com> --- arm/Makefile.common | 2 +- arm/run | 2 +- lib/arm/io.c | 13 +++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-)