tests: Multiboot mmap test case
PATCH 1/1 tests: Multiboot mmap test case
This adds a test case for Multiboot memory map in the tests/multiboot directory, where future i386 test kernels can be dropped. Because this requires an x86 build host and an installed 32 bit libgcc, the test is not part of a regular 'make check'.
The reference output for the test is verified against test runs of the same multiboot kernel booted by some GRUB 0.97.
Signed-off-by Kevin Wolf <[email protected]>
--- tests/multiboot/Makefile | 18 ++++++ tests/multiboot/libc.c | 139 ++++++++++++++++++++++++++++++++++++++++++++ tests/multiboot/libc.h | 61 +++++++++++++++++++ tests/multiboot/link.ld | 19 ++++++ tests/multiboot/mmap.c | 56 ++++++++++++++++++ tests/multiboot/mmap.out | 93 +++++++++++++++++++++++++++++ tests/multiboot/multiboot.h | 66 +++++++++++++++++++++ tests/multiboot/run_test.sh | 81 ++++++++++++++++++++++++++ tests/multiboot/start.S | 51 ++++++++++++++++ 9 files changed, 584 insertions(+) create mode 100644 tests/multiboot/Makefile create mode 100644 tests/multiboot/libc.c create mode 100644 tests/multiboot/libc.h create mode 100644 tests/multiboot/link.ld create mode 100644 tests/multiboot/mmap.c create mode 100644 tests/multiboot/mmap.out create mode 100644 tests/multiboot/multiboot.h create mode 100755 tests/multiboot/run_test.sh create mode 100644 tests/multiboot/start.S
tests/multiboot/Makefile new file +18 -0
@@ -0,0 +1,18 @@ +CC=gcc +CCFLAGS=-m32 -Wall -Wextra -Werror -fno-stack-protector -nostdinc -fno-builtin +ASFLAGS=-m32 + +LD=ld +LDFLAGS=-melf_i386 -T link.ld +LIBS=$(shell $(CC) $(CCFLAGS) -print-libgcc-file-name) + +all: mmap.elf + +mmap.elf: start.o mmap.o libc.o + $(LD) $(LDFLAGS) -o $@ $^ $(LIBS) + +%.o: %.c + $(CC) $(CCFLAGS) -c -o $@ $^ + +%.o: %.S + $(CC) $(ASFLAGS) -c -o $@ $^
tests/multiboot/libc.c new file +139 -0
139 lines not on this page · raw message
tests/multiboot/libc.h new file +61 -0
61 lines not on this page · raw message
tests/multiboot/link.ld new file +19 -0
@@ -0,0 +1,19 @@ +ENTRY(_start) + +SECTIONS +{ + . = 0x100000; + .text : { + *(multiboot) + *(.text) + } + .data ALIGN(4096) : { + *(.data) + } + .rodata ALIGN(4096) : { + *(.rodata) + } + .bss ALIGN(4096) : { + *(.bss) + } +}
tests/multiboot/mmap.c new file +56 -0
56 lines not on this page · raw message
tests/multiboot/mmap.out new file +93 -0
93 lines not on this page · raw message
tests/multiboot/multiboot.h new file +66 -0
66 lines not on this page · raw message
tests/multiboot/run_test.sh new file +81 -0
81 lines not on this page · raw message
tests/multiboot/start.S new file +51 -0
51 lines not on this page · raw message
Signature · 1 line
1.8.1.4