feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks
Task 5.1: the 26 white-box tests that include repl.c or sim_loop.c now include the REPL trace sources (and the core trace sources where no hooked source brings them); sched_sim_isolation_lib carries all trace sources and the sim isolation test scans the REPL trace files. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4df29606f6
commit
8931833132
30 changed files with 310 additions and 6 deletions
|
|
@ -169,12 +169,25 @@ sched_core_isolation_lib = static_library(
|
|||
# object references zero controller-facing symbols (register_seqjob_
|
||||
# allocator()/register_parjob_allocator(), plugins/seqjob_allocator.c and
|
||||
# plugins/parjob_allocator.c, touch only core-scoped resource/worker state).
|
||||
# scheduler-sim-decision-trace task 5.1 adds the REPL trace sources
|
||||
# (repl_trace.c, repl_trace_store.c, repl_trace_render.c,
|
||||
# repl_trace_render_outcome.c, repl_trace_emit.c), which
|
||||
# test_sim_isolation.c also text-scans, and the four core trace sources
|
||||
# (sched_trace*.c). The core ones are here because sched_election.c (hooked
|
||||
# by task 3.1) and repl_trace_store.c call them, so by the same "cover every
|
||||
# file the driver calls" rule their undefined symbols belong in the nm(1)
|
||||
# check; their text scan (forbidden headers/symbols plus no stdio) stays in
|
||||
# test_core_isolation.c and is not repeated here.
|
||||
sched_sim_isolation_lib = static_library(
|
||||
'sched_sim_isolation',
|
||||
['src/sim.c', 'src/sim_loop.c', 'src/sim_picker.c', 'src/sim_limit.c',
|
||||
'src/sim_alloc.c', 'src/sim_record.c', 'src/repl.c', 'src/repl_fmt.c',
|
||||
'src/repl_break.c', 'src/repl_info.c', 'src/repl_params.c',
|
||||
'src/repl_rollup.c', 'src/sched_election.c'],
|
||||
'src/repl_rollup.c', 'src/repl_trace.c', 'src/repl_trace_store.c',
|
||||
'src/repl_trace_render.c', 'src/repl_trace_render_outcome.c',
|
||||
'src/repl_trace_emit.c', 'src/sched_election.c', 'src/sched_trace.c',
|
||||
'src/sched_trace_scan.c', 'src/sched_trace_capture.c',
|
||||
'src/sched_trace_outcome.c'],
|
||||
include_directories: incdir,
|
||||
dependencies: scheduler_deps,
|
||||
install: false)
|
||||
|
|
|
|||
|
|
@ -683,6 +683,24 @@ sched_sim_isolation_test = executable(
|
|||
'-DXCE_SIM_REPL_FMT_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_fmt.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_STORE_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace_store.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_RENDER_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace_render.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_RENDER_OUTCOME_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace_render_outcome.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_RENDER_H_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace_render.h')
|
||||
+ '"',
|
||||
'-DXCE_SIM_REPL_TRACE_EMIT_C_PATH="'
|
||||
+ (meson.current_source_dir() / '..' / 'src' / 'repl_trace_emit.c')
|
||||
+ '"',
|
||||
'-DXCE_SIM_LIB_PATH="'
|
||||
+ sched_sim_isolation_lib.full_path()
|
||||
+ '"'],
|
||||
|
|
|
|||
|
|
@ -145,6 +145,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c"
|
||||
|
|
|
|||
|
|
@ -85,6 +85,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -144,6 +144,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -102,6 +102,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -99,6 +99,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -94,6 +94,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -89,6 +89,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -98,6 +98,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c"
|
||||
|
|
|
|||
|
|
@ -65,6 +65,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -61,6 +61,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -75,6 +75,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -115,6 +115,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -92,6 +92,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -205,6 +205,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/resource.c"
|
||||
/* Hooked sources compile SCHED_TRACE bodies (scheduler-sim-decision-trace). */
|
||||
#include "../src/sched_trace.c"
|
||||
|
|
|
|||
|
|
@ -78,6 +78,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c"
|
||||
|
|
|
|||
|
|
@ -199,6 +199,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/resource.c"
|
||||
/* Hooked sources compile SCHED_TRACE bodies (scheduler-sim-decision-trace). */
|
||||
#include "../src/sched_trace.c"
|
||||
|
|
|
|||
|
|
@ -205,6 +205,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -108,6 +108,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -124,9 +124,20 @@
|
|||
#error \
|
||||
"XCE_SIM_REPL_PARAMS_C_PATH must be defined by meson.build to repl_params.c's absolute path"
|
||||
#endif
|
||||
/* Task 5.1 (scheduler-sim-decision-trace, Req 11.3): the REPL trace
|
||||
* sources and the renderer's private header. */
|
||||
#if !defined(XCE_SIM_REPL_TRACE_C_PATH) \
|
||||
|| !defined(XCE_SIM_REPL_TRACE_STORE_C_PATH) \
|
||||
|| !defined(XCE_SIM_REPL_TRACE_RENDER_C_PATH) \
|
||||
|| !defined(XCE_SIM_REPL_TRACE_RENDER_OUTCOME_C_PATH) \
|
||||
|| !defined(XCE_SIM_REPL_TRACE_RENDER_H_PATH) \
|
||||
|| !defined(XCE_SIM_REPL_TRACE_EMIT_C_PATH)
|
||||
#error \
|
||||
"XCE_SIM_REPL_TRACE_*_PATH must be defined by meson.build to the absolute paths of the repl_trace*.c sources and repl_trace_render.h"
|
||||
#endif
|
||||
#ifndef XCE_SIM_LIB_PATH
|
||||
#error \
|
||||
"XCE_SIM_LIB_PATH must be defined by meson.build to the absolute path of sim.c+sim_loop.c+sim_picker.c+sim_record.c+repl.c+repl_break.c+repl_info.c+repl_params.c's isolated static_library() archive"
|
||||
"XCE_SIM_LIB_PATH must be defined by meson.build to the absolute path of the sched_sim_isolation_lib static_library() archive (its sources are listed in src/scheduler/meson.build)"
|
||||
#endif
|
||||
|
||||
/* Forbidden headers (design.md "Allowed Dependencies", same list
|
||||
|
|
@ -657,6 +668,42 @@ static void test_sim_never_calls_forbidden_symbols(void)
|
|||
free(repl_fmt_c);
|
||||
}
|
||||
|
||||
/*
|
||||
* test_sim_trace_repl_sources_are_isolated - the REPL trace sources
|
||||
* (control, store, renderer, emitter) are part of the simulation driver:
|
||||
* each one must be readable, include no forbidden header and name no
|
||||
* controller-facing symbol. They may use stdio (the REPL prints), unlike
|
||||
* the core trace sources test_core_isolation.c scans.
|
||||
*/
|
||||
static void test_sim_trace_repl_sources_are_isolated(void)
|
||||
{
|
||||
static const char* const paths[] = {
|
||||
XCE_SIM_REPL_TRACE_C_PATH,
|
||||
XCE_SIM_REPL_TRACE_STORE_C_PATH,
|
||||
XCE_SIM_REPL_TRACE_RENDER_C_PATH,
|
||||
XCE_SIM_REPL_TRACE_RENDER_OUTCOME_C_PATH,
|
||||
XCE_SIM_REPL_TRACE_RENDER_H_PATH,
|
||||
XCE_SIM_REPL_TRACE_EMIT_C_PATH,
|
||||
};
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < sizeof(paths) / sizeof(paths[0]); i++) {
|
||||
char* raw = read_whole_file(paths[i]);
|
||||
char* stripped;
|
||||
|
||||
TEST_ASSERT_NOT_NULL_MESSAGE(raw, paths[i]);
|
||||
stripped = strip_c_comments(raw);
|
||||
TEST_ASSERT_NOT_NULL_MESSAGE(stripped, paths[i]);
|
||||
TEST_ASSERT_TRUE_MESSAGE(stripped[0] != '\0', paths[i]);
|
||||
|
||||
assert_no_forbidden_includes(stripped, paths[i]);
|
||||
assert_no_forbidden_symbols(stripped, paths[i]);
|
||||
|
||||
free(raw);
|
||||
free(stripped);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* test_sim_driver_struct_has_no_forbidden_fields - Req 5 AC 17's
|
||||
* "confirmed by the struct definition itself, not runtime checks alone"
|
||||
|
|
@ -730,9 +777,8 @@ static void test_sim_object_has_no_forbidden_undefined_symbols(void)
|
|||
/* posix format for an undefined symbol: "<name> U" (no
|
||||
* value/size columns). Skip anything that doesn't parse as
|
||||
* exactly that -- e.g. a blank line, or an archive member header
|
||||
* some nm versions print (this archive has eight member objects,
|
||||
* sim.c.o, sim_loop.c.o, sim_picker.c.o, sim_record.c.o, repl.c.o,
|
||||
* repl_break.c.o, repl_info.c.o, and repl_params.c.o). */
|
||||
* some nm versions print (this archive has one member object per
|
||||
* source in sched_sim_isolation_lib, src/scheduler/meson.build). */
|
||||
if (sscanf(line, "%511s %c", symbol, &type) != 2) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -779,6 +825,7 @@ int main(void)
|
|||
RUN_TEST(test_sim_source_paths_are_readable);
|
||||
RUN_TEST(test_sim_never_includes_forbidden_headers);
|
||||
RUN_TEST(test_sim_never_calls_forbidden_symbols);
|
||||
RUN_TEST(test_sim_trace_repl_sources_are_isolated);
|
||||
RUN_TEST(test_sim_driver_struct_has_no_forbidden_fields);
|
||||
RUN_TEST(test_sim_object_has_no_forbidden_undefined_symbols);
|
||||
return UNITY_END();
|
||||
|
|
|
|||
|
|
@ -120,6 +120,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -136,6 +136,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/resource.c"
|
||||
/* Hooked sources compile SCHED_TRACE bodies (scheduler-sim-decision-trace). */
|
||||
#include "../src/sched_trace.c"
|
||||
|
|
|
|||
|
|
@ -79,6 +79,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -143,6 +143,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/resource.c"
|
||||
/* Hooked sources compile SCHED_TRACE bodies (scheduler-sim-decision-trace). */
|
||||
#include "../src/sched_trace.c"
|
||||
|
|
|
|||
|
|
@ -111,6 +111,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/resource.c"
|
||||
/* Hooked sources compile SCHED_TRACE bodies (scheduler-sim-decision-trace). */
|
||||
#include "../src/sched_trace.c"
|
||||
|
|
|
|||
|
|
@ -149,6 +149,11 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -98,6 +98,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
|
|
@ -101,6 +101,16 @@
|
|||
#include "../src/repl_break.c"
|
||||
#include "../src/repl_info.c"
|
||||
#include "../src/repl_params.c"
|
||||
/* 5.1: the REPL trace sources below call the trace model. */
|
||||
#include "../src/sched_trace.c"
|
||||
#include "../src/sched_trace_scan.c"
|
||||
#include "../src/sched_trace_capture.c"
|
||||
#include "../src/sched_trace_outcome.c"
|
||||
#include "../src/repl_trace_render.c"
|
||||
#include "../src/repl_trace_render_outcome.c"
|
||||
#include "../src/repl_trace_store.c"
|
||||
#include "../src/repl_trace.c"
|
||||
#include "../src/repl_trace_emit.c"
|
||||
#include "../src/sim.c"
|
||||
#include "../src/sim_loop.c"
|
||||
#include "../src/sim_picker.c" /* bug-1567: sched_sim_driver_run() now calls sim_bootstrap_picker() (sim_loop.c-cap sibling) as an extern -- undefined reference at link time otherwise */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue