Alex Bennée <alex.ben...@linaro.org> writes:
> There are linux-user users of semihosting so we'd better check things > work for them as well. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > > --- > v3 > - include aarch64 version > v4 > - use common semicall.h, test thumb & arm > --- > tests/tcg/arm/semiconsole.c | 27 +++++++++++++++++++++++++++ > tests/tcg/aarch64/Makefile.target | 7 +++++++ > tests/tcg/arm/Makefile.target | 19 +++++++++++++++++++ > 3 files changed, 53 insertions(+) > create mode 100644 tests/tcg/arm/semiconsole.c > > diff --git a/tests/tcg/arm/semiconsole.c b/tests/tcg/arm/semiconsole.c > new file mode 100644 > index 00000000000..6ef0bd24500 > --- /dev/null > +++ b/tests/tcg/arm/semiconsole.c > @@ -0,0 +1,27 @@ > +/* > + * linux-user semihosting console > + * > + * Copyright (c) 2019 > + * Written by Alex Bennée <alex.ben...@linaro.org> > + * > + * SPDX-License-Identifier: GPL-3.0-or-later > + */ > + > +#include <stdio.h> > +#include <stdint.h> > +#include "semicall.h" > + > +int main(void) > +{ > + char c; > + > + printf("Semihosting Console Test\n"); > + printf("hit X to exit:"); > + > + do { > + c = __semi_call(SYS_READC, 0); > + printf("got '%c'\n", c); > + } while (c != 'X'); > + > + return 0; > +} > diff --git a/tests/tcg/aarch64/Makefile.target > b/tests/tcg/aarch64/Makefile.target > index 96d2321045a..4281c766419 100644 > --- a/tests/tcg/aarch64/Makefile.target > +++ b/tests/tcg/aarch64/Makefile.target > @@ -32,4 +32,11 @@ run-plugin-semihosting-with-%: > $(call strip-plugin,$<) 2> $<.err, \ > "$< on $(TARGET_NAME) with $*") > > +AARCH64_TESTS += semiconsole > +run-semiconsole: semiconsole > + $(call skip-test, $<, "MANUAL ONLY") > + > +run-semiconsole-with-%: this should be run-plugin-semiconsole-with-% <snip> > +run-semiconsole-with-%: <snip> > +run-semiconsole-arm-with-%: ditto for these -- Alex Bennée