diff --git a/.github/workflows/msl-test.yml b/.github/workflows/msl-test.yml index 2acd829f..743e2fa9 100644 --- a/.github/workflows/msl-test.yml +++ b/.github/workflows/msl-test.yml @@ -26,6 +26,11 @@ on: required: false default: 'main' type: string + bm_options: + description: 'Comma-separated --baseModelicaOptions values for OpenModelica Base Modelica export' + required: false + default: 'scalarize,moveBindings' + type: string concurrency: group: pages-${{ inputs.library || 'Modelica' }}-${{ inputs.lib_version || '4.1.0' }}-${{ inputs.bm_version || 'main' }} @@ -46,6 +51,7 @@ jobs: LIB_NAME: ${{ inputs.library || 'Modelica' }} LIB_VERSION: ${{ inputs.lib_version || '4.1.0' }} BM_VERSION_INPUT: ${{ inputs.bm_version || 'main' }} + BM_OPTIONS: ${{ inputs.bm_options || 'scalarize,moveBindings' }} steps: - name: Checkout source diff --git a/src/pipeline.jl b/src/pipeline.jl index 5f82a198..a73944ce 100644 --- a/src/pipeline.jl +++ b/src/pipeline.jl @@ -52,7 +52,7 @@ end # ── Main ─────────────────────────────────────────────────────────────────────── """ - main(; library, version, filter, omc_exe, results_root, ref_root) → results + main(; library, version, filter, omc_exe, results_root, ref_root, bm_options) → results Run the full pipeline over all experiment models in `library` `version`. Discovers models via OMC, runs `test_model` for each, then writes the HTML @@ -65,6 +65,7 @@ function main(; omc_exe :: String = get(ENV, "OMC_EXE", "omc"), results_root :: String = "", ref_root :: String = get(ENV, "MAPLIB_REF", ""), + bm_options :: String = get(ENV, "BM_OPTIONS", "scalarize,moveBindings"), ) t0 = time() @@ -78,13 +79,14 @@ function main(; @info "Starting OMC session ($(omc_exe))..." omc = OMJulia.OMCSession(omc_exe) + omc_options = "--baseModelica --frontendInline --baseModelicaOptions=$(bm_options) -d=evaluateAllParameters" omc_version = "unknown" results = ModelResult[] try omc_version = sendExpression(omc, "getVersion()") @info "OMC version: $omc_version" - ok = sendExpression(omc, """setCommandLineOptions("--baseModelica --frontendInline --baseModelicaOptions=scalarize -d=evaluateAllParameters")""") + ok = sendExpression(omc, """setCommandLineOptions("$(omc_options)")""") ok || @warn "Failed to set Base Modelica options: $(sendExpression(omc, "getErrorString()"))" ok = sendExpression(omc, """loadModel($library, {"$version"})""") @@ -145,6 +147,7 @@ function main(; version, something(filter, ""), omc_exe, + omc_options, results_root, ref_root, omc_version, diff --git a/src/report.jl b/src/report.jl index 96c85d9b..55777cc0 100644 --- a/src/report.jl +++ b/src/report.jl @@ -105,6 +105,7 @@ function generate_report(results::Vector{ModelResult}, results_root::String,
Generated: $(now())
OpenModelica: $(info.omc_version)
+OMC options: $(info.omc_options)
BaseModelica.jl: $(info.bm_version)$(filter_row)$(ref_row)
CPU: $(info.cpu_model) ($(info.cpu_threads) threads)
RAM: $(ram_str) GiB
diff --git a/src/summary.jl b/src/summary.jl
index 7de1e2d5..810bfeab 100644
--- a/src/summary.jl
+++ b/src/summary.jl
@@ -23,6 +23,7 @@ function write_summary(
print(io, " \"lib_version\": \"$(_esc_json(info.lib_version))\",\n")
print(io, " \"filter\": \"$(_esc_json(info.filter))\",\n")
print(io, " \"omc_exe\": \"$(_esc_json(info.omc_exe))\",\n")
+ print(io, " \"omc_options\": \"$(_esc_json(info.omc_options))\",\n")
print(io, " \"results_root\": \"$(_esc_json(info.results_root))\",\n")
print(io, " \"ref_root\": \"$(_esc_json(info.ref_root))\",\n")
print(io, " \"omc_version\": \"$(_esc_json(info.omc_version))\",\n")
@@ -62,6 +63,7 @@ Parsed contents of a single `summary.json` file.
- `lib_version` — library version (e.g. `"4.1.0"`)
- `filter` — model name filter regex, or `""` when none was given
- `omc_exe` — path / command used to launch OMC
+- `omc_options` — full options string passed to `setCommandLineOptions`
- `results_root` — absolute path where results were written
- `ref_root` — absolute path to reference results, or `""` when unused
- `omc_version` — OMC version string
@@ -78,6 +80,7 @@ struct RunSummary
lib_version :: String
filter :: String
omc_exe :: String
+ omc_options :: String
results_root :: String
ref_root :: String
omc_version :: String
@@ -134,6 +137,7 @@ function load_summary(results_root::String)::Union{RunSummary,Nothing}
_str("lib_version"),
_str("filter"),
_str("omc_exe"),
+ _str("omc_options"),
_str("results_root"),
_str("ref_root"),
_str("omc_version"),
diff --git a/src/types.jl b/src/types.jl
index 188dcea6..e11cdb0d 100644
--- a/src/types.jl
+++ b/src/types.jl
@@ -46,6 +46,7 @@ Metadata about a single test run, collected by `main()` and written into both
- `lib_version` — library version (e.g. `"4.1.0"`)
- `filter` — model name filter regex, or `""` when none was given
- `omc_exe` — path / command used to launch OMC
+- `omc_options` — full options string passed to `setCommandLineOptions`
- `results_root` — absolute path where results are written
- `ref_root` — absolute path to reference results, or `""` when unused
- `omc_version` — version string returned by `getVersion()`, e.g. `"v1.23.0"`
@@ -60,6 +61,7 @@ struct RunInfo
lib_version :: String
filter :: String # "" when no filter was given
omc_exe :: String
+ omc_options :: String
results_root :: String
ref_root :: String # "" when no reference root was given
omc_version :: String