Commit Graph

240 Commits

Author SHA1 Message Date
f8c6b7c7c0 Improve the version error message
Use the terminology want/got to determine which version the user is
requested and the version the library provides.
2023-07-25 19:55:51 +02:00
74557ab348 Don't rely on temporary directories
Use the current test directory instead.
2023-07-25 16:36:57 +02:00
c257405060 Define unit_test() macro with ovni_test()
This allows unit tests to be executed in a individual directory where
they can create new files in $PWD.
2023-07-25 16:26:25 +02:00
2b612166d7 Use dinamically linked ovni for tests
We rely on this library to override the libovni.so that other libraries
are using.
2023-07-07 12:20:41 +02:00
7c68922a95 Enable NODES rt instrumentation
The NODES_OVNI environment variable is now needed to enable the ovni
instrumentation.
2023-07-07 10:52:46 +02:00
48df02f102 Always use the project version
Don't duplicated versions so we avoid the problem of missing one
instance to be updated.
2023-07-07 10:42:40 +02:00
929af74d3f Add sort-flush test 2023-06-28 12:28:40 +02:00
f8a15df1b9 Fix Nanos6 and NODES rt tests 2023-05-31 19:16:18 +02:00
64c2d52a7a Always enable all tests for ovni-rt 2023-05-30 18:16:08 +02:00
f5a911485a Remove unused configuration options for nOS-V 2023-05-30 17:41:05 +02:00
d0a47783f2 Use the completion callback to wait
The memory allocated is freed after the spawned function is executed.
2023-05-08 19:23:42 +02:00
7d7c59bbf8 Fix bug in spawn task tests
The argument passed to nanos6_spawn_function() was being destroyed when
the parent function ends.
2023-05-02 20:04:29 +02:00
fb435842b2 Add nosv multiple-segment test 2023-04-25 17:00:42 +02:00
7089db0bd0 Remove the workdir in each test run
Ensures the scripts are also rebuilt.
2023-04-25 16:52:21 +02:00
ff340df5b5 Disable flush-overhead test 2023-04-19 10:57:10 +00:00
3a28e1c3d3 Avoid fmemopen() due to bug in old glibc 2023-04-19 10:57:10 +00:00
4a936dcb99 Add test to prevent re-running tasks in Nanos6
For now is disabled until we have a better instrumentation for task
states.
2023-04-17 15:58:19 +00:00
bc513832a5 Allow tests to be disabled
Ensure that we still build the tests but they don't run.
2023-04-17 15:58:19 +00:00
3c6c6ed230 Add taskiter NODES test 2023-04-17 15:58:19 +00:00
b16c30a5e6 Add Absorbing state to the idle view in Nanos6 2023-04-14 13:39:37 +00:00
6cafd347ce Add support for sponge subsystem state in Nanos6 2023-04-14 13:39:37 +00:00
676e30b4ca Order looms and processes by rank if given 2023-04-14 08:35:21 +00:00
602daabe23 Fix copyright years 2023-04-06 15:33:15 +00:00
c30a5d94b5 Add emu breakdown test for zero values 2023-04-06 15:33:15 +00:00
6711afdb58 Fix include headers following IWYU 2023-04-06 15:33:15 +00:00
acd63a915e Add breakdown switch option in tests 2023-04-06 15:33:15 +00:00
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
3da9e27190 Skip "loom." prefix from hostname 2023-03-24 12:08:45 +00:00
28517c2000 Add another subsystem between nested tasks 2023-03-24 12:08:45 +00:00
e3339fef3b Increase sort window 2023-03-24 12:08:45 +00:00
f76d160c69 Copy Paraver configs to output directory 2023-03-24 12:08:45 +00:00
451d4be386 Port ovnisort 2023-03-24 12:08:45 +00:00
cd39230089 Remove boilerplate from the models 2023-03-24 12:08:45 +00:00
02db4b6369 Add support for NODES 2023-03-24 12:08:45 +00:00
8727126551 Use .obs extension for ovni binary streams 2023-03-24 12:08:45 +00:00
0746d2a0ec Add CPU oversubscription test 2023-03-24 12:08:45 +00:00
a818795d88 Add support for nOS-V
Most of the model is taken from nanos6, we should refactor them.
2023-03-24 12:08:45 +00:00
e344044b43 Use OB. for flush overhead test 2023-03-24 12:08:45 +00:00
2ce91de173 Move mp-rank test to nOS-V group 2023-03-24 12:08:45 +00:00
c13e004c6f Disable sort and trace-dependent tests 2023-03-24 12:08:45 +00:00
f1b130eb39 Move paraver sources to pv/ 2023-03-24 12:08:45 +00:00
a91b1c554a Finish task types in PCF for nanos6 2023-03-24 12:08:45 +00:00
dbea90f525 Fail if the streams clock is too far apart
The current gate is set to 1 hour and it only checks the first event in
the stream. Added a test too.
2023-03-24 12:08:45 +00:00
e674c92f13 Enable emu and rt tests for nanos6 and ovni 2023-03-24 12:08:45 +00:00
8ed9063488 Remove emu prefix from trace and stream 2023-03-24 12:08:45 +00:00
0e8b23c918 Update prv_register in tests 2023-03-24 12:08:45 +00:00
524ccc4dd5 Begin porting nanos6 model 2023-03-24 12:08:45 +00:00
04029995be Begin porting the ovni model 2023-03-24 12:08:45 +00:00
12bfd3fe26 Add loom and proc 2023-03-24 12:08:45 +00:00
5de74f15cb Add emulator player to read events 2023-03-24 12:08:45 +00:00
5bd04d8435 Add emu_stream unit test 2023-03-24 12:08:45 +00:00