Commit 165d4f4
committed
pvh: Add test for PVH note parsing
Add test cases to verify the functionality that parses
the ELF Note header to look for a PVH entry point address
if one is encoded.
Parse a minimal ELF binary that encodes a predefined address
of 0x1e1fe1f, and verify that the same value is read. Also
test the case in which a note header is present but no PVH
entry point is encoded, as well as a case where the PVH entry
address is encoded in the note header using a field of
incorrect size.
The minimal ELF source code (elfnote.S):
#define ELFNOTE_START(name, type, flags) \
.pushsection .note.name, flags, @note ; \
.balign 4 ; \
.long 2f - 1f /* namesz */ ; \
.long 4484f - 3f /* descsz */ ; \
.long type ; \
1:.asciz #name ; \
2:.balign 4 ; \
3:
#define ELFNOTE_END \
4484:.balign 4 ; \
.popsection ;
#define ELFNOTE(name, type, desc) \
ELFNOTE_START(name, type, "a") \
desc ; \
ELFNOTE_END
#define XEN_ELFNOTE_PHYS32_ENTRY 18
#define NT_VERSION 1
ELFNOTE(dummy, NT_VERSION, .quad 0xcafecafe)
ELFNOTE(PVHNote, XEN_ELFNOTE_PHYS32_ENTRY, .quad 0x1e1fe1f)
.section ".text","ax"
.global _start
_start:
Built with:
$ gcc elfnote.S -s -nostdlib -o test_elfnote.bin
The elfnote.S source above is modified to generate the binaries
for the rest of the test cases.
Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>1 parent 6b29b31 commit 165d4f4
File tree
4 files changed
+54
-0
lines changed- src/loader
4 files changed
+54
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
543 | 543 | | |
544 | 544 | | |
545 | 545 | | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
546 | 564 | | |
547 | 565 | | |
548 | 566 | | |
| |||
665 | 683 | | |
666 | 684 | | |
667 | 685 | | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
668 | 722 | | |
669 | 723 | | |
670 | 724 | | |
| |||
Binary file not shown.
Binary file not shown.
Binary file not shown.
0 commit comments