Commit graph

44 commits

Author SHA1 Message Date
Toby Jaffey
adec69e1d7 Attempt to enable RV32 C extension. c.lw and c.sw are definitely broken somehow wrt MMIO memory.
Examples built using C extensions, many fail in strange ways
2025-12-17 15:43:15 +00:00
Toby Jaffey
49a94ca174 Add BLT test 2025-12-14 21:53:54 +00:00
Toby Jaffey
83276f98e4 Move shared.h 2025-12-14 21:41:01 +00:00
Toby Jaffey
93898a5baa Rename 2025-12-14 21:38:24 +00:00
Toby Jaffey
6a4118e420 Add AUIPC test 2025-12-14 21:38:05 +00:00
Toby Jaffey
585a945b18 Report "true" code coverage by including mini-rv32ima.h 2025-12-14 18:46:34 +00:00
Toby Jaffey
a693fed59c Show coverage report for all uvm32 2025-12-14 11:15:59 +00:00
Toby Jaffey
5dc9acdf3d When a trap occurs in mini-rv32ima, always pass to the host rather than allowing running code to handle it. This would be important for a real OS, but the aim of uvm32 is embeddable logic - not full emulation.
As all traps are caught by host, begin testing mini-rv32ima internals by checking PC oob and PC alignment.
2025-12-14 11:00:45 +00:00
Toby Jaffey
079cf2c9bd Add CI workflow to create a coverage badge via github pages 2025-12-14 03:08:59 +00:00
Toby Jaffey
a5305d64dc Test that invalid lX opcodes trigger mini-rv32 internal core error 2025-12-14 01:21:42 +00:00
Toby Jaffey
fe51154698 Test for lb, lbu, lw, sb, sbu, sw explicitly 2025-12-14 00:58:35 +00:00
Toby Jaffey
2037f6e575 Test memory read outside of memory and extram regions. 2025-12-14 00:32:50 +00:00
Toby Jaffey
aae4eacfb8 Test getslice_fixed when a buffer is requests which exceeds memory 2025-12-13 23:29:45 +00:00
Toby Jaffey
a7b480fd11 Only use stackprotection when debugging 2025-12-13 23:26:32 +00:00
Toby Jaffey
6429d2cdaf Add test for string reading off end of extram 2025-12-13 23:24:24 +00:00
Toby Jaffey
2039de73f2 Rename getbuf to getslice 2025-12-13 23:15:06 +00:00
Toby Jaffey
b083008d7b Add test for reading slice in extram which is out of bounds 2025-12-13 23:10:49 +00:00
Toby Jaffey
18d787a7b9 Add test for extram becoming invalid while reading an "unterminated" buffer (slice) 2025-12-13 23:04:58 +00:00
Toby Jaffey
d1eace7b93 Improved warning message 2025-12-13 22:58:42 +00:00
Toby Jaffey
6434f0b0cb Smoke test of getProgramCounter 2025-12-13 19:21:05 +00:00
Toby Jaffey
5667598427 Test uvm32_getMemory() in a tautological manner 2025-12-13 19:19:39 +00:00
Toby Jaffey
99c0925db5 Test for invalid uvm32_arg_t 2025-12-13 19:17:58 +00:00
Toby Jaffey
59ade881c3 uvm32_hasEnded() test 2025-12-13 19:15:06 +00:00
Toby Jaffey
0018bdd249 Add test of reading cstring syscall argument which never terminates before hitting end of ram 2025-12-13 19:12:24 +00:00
Toby Jaffey
b1b4cbf583 Fix bug where memory was being used instead of extram when reading cstring from extram 2025-12-13 18:46:28 +00:00
Toby Jaffey
d72955690f Add test for extram being removed then invalid pointer being followed 2025-12-13 18:10:50 +00:00
Toby Jaffey
92913ab478 Add test for reading code which is too large 2025-12-13 18:02:43 +00:00
Toby Jaffey
2e1f4d3f93 Generate coverage report 2025-12-13 17:53:55 +00:00
Toby Jaffey
1e5555f66d Unify all tests to use same common makefile includes 2025-12-13 17:27:24 +00:00
Toby Jaffey
8c97057809 Make extram uint8_t 2025-12-12 20:51:39 +00:00
Toby Jaffey
8158ac647c Renaming and documentating header 2025-12-12 20:42:26 +00:00
Toby Jaffey
5bd6a32013 Move all app common files under apps/common 2025-12-12 15:45:17 +00:00
Toby Jaffey
74267d94df Handle syscall cstring argument when pointing to extram 2025-12-12 14:45:25 +00:00
Toby Jaffey
3f21335fc3 Test that repeatedly stopping and starting results in executing exactly the same number of VM instructions 2025-12-11 13:16:46 +00:00
Toby Jaffey
978ddb52f0 Fix memory size in extram test 2025-12-11 11:16:46 +00:00
Toby Jaffey
7a1656ab10 Handle 8, 16 and 32 bit accesses to extram. 2025-12-11 10:33:45 +00:00
Toby Jaffey
63386f9a92 Missing header 2025-12-11 02:40:30 +00:00
Toby Jaffey
b55c2bc88a Add system for memory mapping a block of memory from the host. 2025-12-11 02:36:46 +00:00
Toby Jaffey
ac1975a820 Test metering, prove that system can resume after a hang error with a range of meter sizes 2025-12-10 22:30:19 +00:00
Toby Jaffey
9d9e7542fc Test parsing of syscall args, and responses to invalid behaviour 2025-12-10 22:29:33 +00:00
Toby Jaffey
46b6d1efba Ensure make errors when a test fails 2025-12-10 19:27:39 +00:00
Toby Jaffey
30b7ff4791 custom syscall example 2025-12-10 18:52:01 +00:00
Toby Jaffey
508d41c8c5 Remove stackoverflow error, have one CORE_INTERNAL error for catastrophic crash 2025-12-10 18:42:34 +00:00
Toby Jaffey
da7f70c456 Initial test framework
Clean up makefiles
Everything buildable under docker (or natively)
2025-12-10 16:36:33 +00:00