Commit Graph

164 Commits

Author SHA1 Message Date
30812e134e Reduce test cases in sort_replace 2023-04-06 15:33:15 +00:00
467cc9aa7e Fix value_str() usage 2023-04-06 15:33:15 +00:00
35872354e0 Speedup the sort module
Improvements:

- Don't propagate values if they didn't change
- Use custom sort algorithm to speedup the sorting
- Allocate a contiguous array of channel outputs
2023-04-06 15:33:15 +00:00
70b29b6459 Add sort channel module
Sorts the N input values and writes them in the N outputs in order.
2023-04-06 15:33:15 +00:00
f848ddb37f Increase the flush overhead limit to 2 ms
The current CI disk is slower doing the flushes.
2023-04-05 15:35:37 +02:00
54527b0006 Fix shebang in regex match test scripts 2023-04-05 15:18:03 +02:00
080d1df3e1 Remove _DEFAULT_SOURCE from tests 2023-03-24 12:08:45 +00:00
848a1de963 Constraint _GNU_SOURCE in compat.c only 2023-03-24 12:08:45 +00:00
1e822c248e Remove duplicated _POSIX_C_SOURCE define 2023-03-24 12:08:45 +00:00
ddbb7dd9f4 Add include-what-you-use
Adds forwards declarations in headers and includes all headers in
sources, even if they are found by transitive includes.
2023-03-24 12:08:45 +00:00
f22d9084ba Ensure all looms have at least one CPU 2023-03-24 12:08:45 +00:00
81875450a8 Add unit tests for PRV_SKIPDUP and PRV_EMITDUP 2023-03-24 12:08:45 +00:00
c0afc79d4e Use OK() and ERR() in unit tests
Also remove prefixes and trailing new lines in err() and die()
2023-03-24 12:08:45 +00:00
9a4a4a0005 Remove bay_remove() 2023-03-24 12:08:45 +00:00
b42fb4d2f3 Check prv_* return values 2023-03-24 12:08:45 +00:00
6deef0308a Fix underflow in path_remove_trailing() 2023-03-24 12:08:45 +00:00
e625897766 Add CHAN_IGNORE_DUP to ignore duplicates 2023-03-24 12:08:45 +00:00
ab3e823134 Rename CHAN_DUPLICATES to CHAN_ALLOW_DUP 2023-03-24 12:08:45 +00:00
f61711047c Remove buffer argument from value_str()
Use a ring of buffers instead, so we can printf() up to 16 values in
the same call.
2023-03-24 12:08:45 +00:00
82f1cc287d Update copyright years to 2021-2023 2023-03-24 12:08:45 +00:00
eb8d10771b Indent #pragma statements 2023-03-24 12:08:45 +00:00
4c7b44510a Remove empty tests 2023-03-24 12:08:45 +00:00
a4452dee8c Use OK() and ERR() macros in cpu and loom tests
Some return checks were missing too.
2023-03-24 12:08:45 +00:00
78c4bba62e Match the PRV event in delayed-connect-ss test
Ensures the delayed connect of the CPU and thread muxes still causes the
output to be updated properly.
2023-03-24 12:08:45 +00:00
c57bef14a3 Add switch-same-type emu test for Nanos6 2023-03-24 12:08:45 +00:00
aab6808f4e Ensure the appid and the rank are emitted too 2023-03-24 12:08:45 +00:00
246e3cfeab Fail on first error in post scripts 2023-03-24 12:08:45 +00:00
34c9f34f04 Get the gid from nanos6 task types too 2023-03-24 12:08:45 +00:00
4aebe81940 Document ss-mismatch nanos6 test 2023-03-24 12:08:45 +00:00
97dac6e83b Add switch-same-type nosv test
Generates a script with the values of the delta clock, PRV type and
value to be matched in the .prv traces, to ensure the emulator emitted
the switching type event.
2023-03-24 12:08:45 +00:00
64360796b9 Run any script found in the test workdir
Allows the test to perform additional checks on the generated trace.
2023-03-24 12:08:45 +00:00
803945dbc8 Return the gid of the created type 2023-03-24 12:08:45 +00:00
864ce4222f Store the first and last clock of emu events
Allows the tests to know the relative clock that will appear in the PRV
trace (with one rank only).
2023-03-24 12:08:45 +00:00
0eb88af4b9 Use the CPU phyid for the name only
The logical index is used to change the affinity of the threads.
2023-03-24 12:08:45 +00:00
69506e5079 Update burst test regex 2023-03-24 12:08:45 +00:00
65ecc75afd Sort unit tests by name 2023-03-24 12:08:45 +00:00
98b698473d Remove unused unit tests 2023-03-24 12:08:45 +00:00
899b82c36f Update flush-overhead too 2023-03-24 12:08:45 +00:00
7b80aa6aaf Instrument running thread in sort and flush tests 2023-03-24 12:08:45 +00:00
9407616c2b Add Nanos6 spawn task rt tests 2023-03-24 12:08:45 +00:00
b98ccfe3ad Use row and type as identifiers in prv_register()
Prevents multiple channels from being accidentally set to the same row
with the same type.
2023-03-24 12:08:45 +00:00
1c90947f82 Remove unused select function from mux unit test 2023-03-24 12:08:45 +00:00
5b980734ed Add unit test cases for thread init 2023-03-24 12:08:45 +00:00
7bbd74cb17 Add common unit test macros 2023-03-24 12:08:45 +00:00
e06651bbb6 Disable hash speed test
We no longer use the hash for the mux inputs, so during emulation is not
a performance bottleneck.
2023-03-24 12:08:45 +00:00
7ba810fd4a Set the thread->proc in proc_add_thread() 2023-03-24 12:08:45 +00:00
3a4722a83e Add delayed connect unit test for mux 2023-03-24 12:08:45 +00:00
b265442b8c Mark select channel as dirty on mux_init()
Ensures that the select callback will be called on the propagation
phase, immediately setting the right output. Otherwise the mux won't be
updated until the select channel sets a new value.
2023-03-24 12:08:45 +00:00
4a1fba74f3 Update bay unit test 2023-03-24 12:08:45 +00:00
fe6db823a7 Index mux inputs by an integer 2023-03-24 12:08:45 +00:00