b9fe0063b7
This adds two new tests that re-use the memory test to check basic record replay functionality is still working. We have to define our own runners rather than using the default pattern as we want to change the test name but re-use the memory binary. We declare the test binaries as PHONY as they don't really exist. [AJB: A better test would output some sort of timer value or other otherwise variable value so we could compare the record and replay outputs and ensure they match] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Cc: Pavel Dovgalyuk <dovgaluk@ispras.ru>
56 lines
1.7 KiB
Makefile
56 lines
1.7 KiB
Makefile
#
|
|
# Aarch64 system tests
|
|
#
|
|
|
|
AARCH64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/aarch64/system
|
|
VPATH+=$(AARCH64_SYSTEM_SRC)
|
|
|
|
# These objects provide the basic boot code and helper functions for all tests
|
|
CRT_OBJS=boot.o
|
|
|
|
AARCH64_TEST_SRCS=$(wildcard $(AARCH64_SYSTEM_SRC)/*.c)
|
|
AARCH64_TESTS = $(patsubst $(AARCH64_SYSTEM_SRC)/%.c, %, $(AARCH64_TEST_SRCS))
|
|
|
|
CRT_PATH=$(AARCH64_SYSTEM_SRC)
|
|
LINK_SCRIPT=$(AARCH64_SYSTEM_SRC)/kernel.ld
|
|
LDFLAGS=-Wl,-T$(LINK_SCRIPT)
|
|
TESTS+=$(AARCH64_TESTS) $(MULTIARCH_TESTS)
|
|
CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
|
|
LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
|
|
|
|
# building head blobs
|
|
.PRECIOUS: $(CRT_OBJS)
|
|
|
|
%.o: $(CRT_PATH)/%.S
|
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@
|
|
|
|
# Build and link the tests
|
|
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
|
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
|
|
|
memory: CFLAGS+=-DCHECK_UNALIGNED=1
|
|
|
|
# Running
|
|
QEMU_OPTS+=-M virt -cpu max -display none -semihosting-config enable=on,target=native,chardev=output -kernel
|
|
|
|
# Simple Record/Replay Test
|
|
.PHONY: memory-record
|
|
run-memory-record: memory-record memory
|
|
$(call run-test, $<, \
|
|
$(QEMU) -monitor none -display none \
|
|
-chardev file$(COMMA)path=$<.out$(COMMA)id=output \
|
|
-icount shift=5$(COMMA)rr=record$(COMMA)rrfile=record.bin \
|
|
$(QEMU_OPTS) memory, \
|
|
"$< on $(TARGET_NAME)")
|
|
|
|
.PHONY: memory-replay
|
|
run-memory-replay: memory-replay run-memory-record
|
|
$(call run-test, $<, \
|
|
$(QEMU) -monitor none -display none \
|
|
-chardev file$(COMMA)path=$<.out$(COMMA)id=output \
|
|
-icount shift=5$(COMMA)rr=replay$(COMMA)rrfile=record.bin \
|
|
$(QEMU_OPTS) memory, \
|
|
"$< on $(TARGET_NAME)")
|
|
|
|
TESTS+=memory-record memory-replay
|