Skip to content

Commit edc9242

Browse files
committed
fix: restore alpha_wrt registration; skip array vars in decl gen; add example validation to precheck
1 parent c7aa600 commit edc9242

3 files changed

Lines changed: 33 additions & 6 deletions

File tree

toolchain/bootstrap/precheck.sh

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,24 @@ fi
127127
) &
128128
PID_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

132145
FAILED=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..."
135148
if [ "$FORMAT_OK" = "1" ]; then
136149
error "Formatting check failed to run."
137150
FAILED=1
@@ -146,7 +159,7 @@ else
146159
fi
147160

148161
wait $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..."
150163
SPELL_RC=$(cat "$TMPDIR_PC/spell_exit" 2>/dev/null || echo "1")
151164
if [ "$SPELL_RC" = "0" ]; then
152165
ok "Spell check passed."
@@ -156,7 +169,7 @@ else
156169
fi
157170

158171
wait $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..."
160173
LINT_RC=$(cat "$TMPDIR_PC/lint_exit" 2>/dev/null || echo "1")
161174
if [ "$LINT_RC" = "0" ]; then
162175
ok "Toolchain lint passed."
@@ -166,7 +179,7 @@ else
166179
fi
167180

168181
wait $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..."
170183
SOURCE_RC=$(cat "$TMPDIR_PC/source_exit" 2>/dev/null || echo "1")
171184
if [ "$SOURCE_RC" = "0" ]; then
172185
ok "Source lint passed."
@@ -175,7 +188,7 @@ else
175188
FAILED=1
176189
fi
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..."
179192
if [ $DOC_FAILED -eq 0 ]; then
180193
ok "Doc references are valid."
181194
else
@@ -184,7 +197,7 @@ else
184197
fi
185198

186199
wait $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..."
188201
PARAM_DOCS_RC=$(cat "$TMPDIR_PC/param_docs_exit" 2>/dev/null || echo "1")
189202
if [ "$PARAM_DOCS_RC" = "0" ]; then
190203
ok "Parameter documentation check passed."
@@ -193,6 +206,16 @@ else
193206
FAILED=1
194207
fi
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+
196219
echo ""
197220

198221
if [ $FAILED -eq 0 ]; then

toolchain/mfc/params/definitions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,7 @@ def _load():
623623
_r(n, LOG, {"output"})
624624
for n in [
625625
"schlieren_wrt",
626+
"alpha_wrt",
626627
"rho_wrt",
627628
"E_wrt",
628629
"pres_wrt",

toolchain/mfc/params/generators/fortran_gen.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ def generate_decls_fpp(target: str) -> str:
107107
param = REGISTRY.all_params.get(name)
108108
if param is None:
109109
continue
110+
# Skip if also registered as an indexed family — Fortran declares it as an array.
111+
if any(k.startswith(f"{name}(") for k in REGISTRY.all_params):
112+
continue
110113
lines.append(f"{fortran_type_decl(param).ljust(_DECL_COL)}:: {name}")
111114
return "\n".join(lines) + "\n"
112115

0 commit comments

Comments
 (0)