127127) &
128128PID_PARAM_DOCS=$!
129129
130+ # Example case validation
131+ (
132+ failed=0
133+ for case in examples/* /case.py; do
134+ [ -f " $case " ] || continue
135+ if ! ./mfc.sh validate " $case " > /dev/null 2>&1 ; then
136+ failed=$(( failed + 1 ))
137+ fi
138+ done
139+ echo " $failed " > " $TMPDIR_PC /examples_exit"
140+ ) &
141+ PID_EXAMPLES=$!
142+
130143# --- Collect results ---
131144
132145FAILED=0
133146
134- log " [$CYAN 1/6 $COLOR_RESET ] Checking$MAGENTA formatting$COLOR_RESET ..."
147+ log " [$CYAN 1/7 $COLOR_RESET ] Checking$MAGENTA formatting$COLOR_RESET ..."
135148if [ " $FORMAT_OK " = " 1" ]; then
136149 error " Formatting check failed to run."
137150 FAILED=1
146159fi
147160
148161wait $PID_SPELL
149- log " [$CYAN 2/6 $COLOR_RESET ] Running$MAGENTA spell check$COLOR_RESET ..."
162+ log " [$CYAN 2/7 $COLOR_RESET ] Running$MAGENTA spell check$COLOR_RESET ..."
150163SPELL_RC=$( cat " $TMPDIR_PC /spell_exit" 2> /dev/null || echo " 1" )
151164if [ " $SPELL_RC " = " 0" ]; then
152165 ok " Spell check passed."
156169fi
157170
158171wait $PID_LINT
159- log " [$CYAN 3/6 $COLOR_RESET ] Running$MAGENTA toolchain lint$COLOR_RESET ..."
172+ log " [$CYAN 3/7 $COLOR_RESET ] Running$MAGENTA toolchain lint$COLOR_RESET ..."
160173LINT_RC=$( cat " $TMPDIR_PC /lint_exit" 2> /dev/null || echo " 1" )
161174if [ " $LINT_RC " = " 0" ]; then
162175 ok " Toolchain lint passed."
166179fi
167180
168181wait $PID_SOURCE
169- log " [$CYAN 4/6 $COLOR_RESET ] Running$MAGENTA source lint$COLOR_RESET ..."
182+ log " [$CYAN 4/7 $COLOR_RESET ] Running$MAGENTA source lint$COLOR_RESET ..."
170183SOURCE_RC=$( cat " $TMPDIR_PC /source_exit" 2> /dev/null || echo " 1" )
171184if [ " $SOURCE_RC " = " 0" ]; then
172185 ok " Source lint passed."
175188 FAILED=1
176189fi
177190
178- log " [$CYAN 5/6 $COLOR_RESET ] Checking$MAGENTA doc references$COLOR_RESET ..."
191+ log " [$CYAN 5/7 $COLOR_RESET ] Checking$MAGENTA doc references$COLOR_RESET ..."
179192if [ $DOC_FAILED -eq 0 ]; then
180193 ok " Doc references are valid."
181194else
184197fi
185198
186199wait $PID_PARAM_DOCS
187- log " [$CYAN 6/6 $COLOR_RESET ] Checking$MAGENTA parameter docs$COLOR_RESET ..."
200+ log " [$CYAN 6/7 $COLOR_RESET ] Checking$MAGENTA parameter docs$COLOR_RESET ..."
188201PARAM_DOCS_RC=$( cat " $TMPDIR_PC /param_docs_exit" 2> /dev/null || echo " 1" )
189202if [ " $PARAM_DOCS_RC " = " 0" ]; then
190203 ok " Parameter documentation check passed."
@@ -193,6 +206,16 @@ else
193206 FAILED=1
194207fi
195208
209+ wait $PID_EXAMPLES
210+ log " [$CYAN 7/7$COLOR_RESET ] Validating$MAGENTA example cases$COLOR_RESET ..."
211+ EXAMPLES_FAILED=$( cat " $TMPDIR_PC /examples_exit" 2> /dev/null || echo " 1" )
212+ if [ " $EXAMPLES_FAILED " = " 0" ]; then
213+ ok " All example cases are valid."
214+ else
215+ error " $EXAMPLES_FAILED example case(s) failed validation. Run$MAGENTA ./mfc.sh validate examples/\*/case.py$COLOR_RESET for details."
216+ FAILED=1
217+ fi
218+
196219echo " "
197220
198221if [ $FAILED -eq 0 ]; then
0 commit comments