tests/tcg: add user version of dumb-as-bricks semiconsole test
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.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
f05938090b
commit
486e58b188
|
@ -32,4 +32,11 @@ run-plugin-semihosting-with-%:
|
||||||
$(call strip-plugin,$<) 2> $<.err, \
|
$(call strip-plugin,$<) 2> $<.err, \
|
||||||
"$< on $(TARGET_NAME) with $*")
|
"$< on $(TARGET_NAME) with $*")
|
||||||
|
|
||||||
|
AARCH64_TESTS += semiconsole
|
||||||
|
run-semiconsole: semiconsole
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
|
run-plugin-semiconsole-with-%:
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
TESTS += $(AARCH64_TESTS)
|
TESTS += $(AARCH64_TESTS)
|
||||||
|
|
|
@ -49,6 +49,25 @@ run-plugin-semihosting-with-%:
|
||||||
$(call strip-plugin,$<) 2> $<.err, \
|
$(call strip-plugin,$<) 2> $<.err, \
|
||||||
"$< on $(TARGET_NAME) with $*")
|
"$< on $(TARGET_NAME) with $*")
|
||||||
|
|
||||||
|
ARM_TESTS += semiconsole semiconsole-arm
|
||||||
|
|
||||||
|
semiconsole: CFLAGS += -mthumb
|
||||||
|
run-semiconsole: semiconsole
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
|
run-plugin-semiconsole-with-%:
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
|
semiconsole-arm: CFLAGS += -marm
|
||||||
|
semiconsole-arm: semiconsole.c
|
||||||
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
||||||
|
|
||||||
|
run-semiconsole-arm: semiconsole-arm
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
|
run-plugin-semiconsole-arm-with-%:
|
||||||
|
$(call skip-test, $<, "MANUAL ONLY")
|
||||||
|
|
||||||
TESTS += $(ARM_TESTS)
|
TESTS += $(ARM_TESTS)
|
||||||
|
|
||||||
# On ARM Linux only supports 4k pages
|
# On ARM Linux only supports 4k pages
|
||||||
|
|
27
tests/tcg/arm/semiconsole.c
Normal file
27
tests/tcg/arm/semiconsole.c
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* linux-user semihosting console
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019
|
||||||
|
* Written by Alex Bennée <alex.bennee@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;
|
||||||
|
}
|
Loading…
Reference in a new issue