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.
This commit is contained in:
Rodrigo Arias 2023-02-24 18:04:52 +01:00 committed by Rodrigo Arias Mallo
parent 30761c266b
commit 78c4bba62e

View File

@ -3,6 +3,9 @@
#include "instr_nanos6.h" #include "instr_nanos6.h"
#include "emu_prv.h"
#include "nanos6/nanos6_priv.h"
int int
main(void) main(void)
{ {
@ -15,13 +18,31 @@ main(void)
* will remain selecting a null input until the thread state * will remain selecting a null input until the thread state
* changes. */ * changes. */
/* FIXME: We should be able to test that after emitting the
* nanos6 event the emulator follows some properties. */
instr_nanos6_worker_loop_enter(); instr_nanos6_worker_loop_enter();
/* Match the PRV line in the trace */
FILE *f = fopen("match.sh", "w");
if (f == NULL)
die("fopen failed:");
/* Ensure that after the Nanos6 connect phase, the CPU subsystem mux has
* selected the correct input, based on the running thread */
int type = PRV_NANOS6_SUBSYSTEM;
int64_t t = get_delta();
int value = ST_WORKER_LOOP;
fprintf(f, "grep ':%ld:%d:%d$' ovni/thread.prv\n", t, type, value);
fprintf(f, "grep ':%ld:%d:%d$' ovni/cpu.prv\n", t, type, value);
instr_nanos6_worker_loop_exit(); instr_nanos6_worker_loop_exit();
/* Also test when exitting the stacked subsystem */
t = get_delta();
value = 0;
fprintf(f, "grep ':%ld:%d:%d$' ovni/thread.prv\n", t, type, value);
fprintf(f, "grep ':%ld:%d:%d$' ovni/cpu.prv\n", t, type, value);
fclose(f);
instr_end(); instr_end();
return 0; return 0;