Conversation
FileX's regression workflow ran only for master, measured four of nine Linux configurations, and did not run the Win64 simulator suite. Its floating ThreadX checkout and legacy installer could drift or conceal failures. The workflow now gates dev and master with pinned dependencies, all nine Linux coverage configurations, and a separate Win64 job; only a successful master run deploys Pages. Coverage requires at least 99.9% lines and 99.4% branches. The new partition test uses early exits for distinct failure codes (MISRA C:2012 Rule 15.5 exception) and a local declaration of an internal function to test it directly (Rule 8.5 exception). GCC 14.3.0 passed 137/137 tests in each Linux configuration. The merged report has 7,642/7,647 lines and 8,203/8,245 branches. A forced failing test returned status 8; empty or missing reports and a failed dependency fetch failed as expected. Installer retries stayed bounded. Actionlint, ShellCheck, and diff whitespace checks passed. Win64 awaits CI. Assisted-by: Codex (GPT-6) <noreply@openai.com>
GitHub rejected the regression workflow before starting any job because it validates permissions requested by every job in a called workflow, including a deployment job disabled for this caller. Grant the caller the Pages and OIDC permission ceiling required for validation. The called test job still limits its own token, and the called deployment job remains disabled; FileX deploys only after a successful master run. The PR run exposed the permission error before jobs were scheduled. Actionlint and diff whitespace checks passed; CI awaits this correction. Assisted-by: Codex (GPT-6) <noreply@openai.com>
The Win64 regression build failed because the test RAM driver's header declared four buffers as arrays while its MSVC implementation allocates pointers. Declare pointer types for MSVC and retain the array types used by other compilers. The declarations now match the storage in each configuration. The GitHub Win64 build exposed the four conflicting declarations. Header type checks passed in normal, standalone, MSVC, and MSVC standalone modes; all nine GCC 14 Linux configurations rebuilt successfully. Win64 CI awaits this fix. Assisted-by: Codex (GPT-6) <noreply@openai.com>
MSVC stopped the standalone regression build because two tests declared fault-tolerant buffers with a size of zero when that feature was disabled. Declare those buffers only for configurations that enable fault tolerance. Their uses are already limited to those configurations. The GitHub Win64 build identified both compile errors. All nine GCC 14 Linux configurations rebuilt, and both affected tests passed in every configuration (18/18 targeted tests). Win64 CI awaits this fix. Assisted-by: Codex (GPT-6) <noreply@openai.com>
MSVC stopped at another standalone test that declared a fault-tolerant buffer with a size of zero. A scan found three remaining declarations with this shape. Declare those buffers only when fault tolerance is enabled, matching the code that uses them. All nine GCC 14 Linux configurations rebuilt, and the three affected tests passed in every configuration (27/27 targeted tests). Win64 CI awaits this fix. Assisted-by: Codex (GPT-6) <noreply@openai.com>
This was referenced Sep 24, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FileX pull requests to dev had no regression gate. The existing workflow covered master only, measured four of nine Linux configurations, and did not run the Win64 simulator suite; floating dependency and installer behavior could hide failures. The existing test RAM driver and several standalone tests also failed to compile with MSVC.
This change gates dev and master with pinned actions and ThreadX, all nine Linux coverage configurations, a separate Win64 job, and master-only Pages deployment. It aligns the MSVC test buffer declarations with their allocations and removes zero-length buffers from configurations that do not use them. The merged report must meet 99.9% line and 99.4% branch coverage; missing or empty reports fail. The partition regression test uses early exits for distinct failure codes (MISRA C:2012 Rule 15.5 exception) and a local declaration of an internal function to test it directly (Rule 8.5 exception).
An untouched GCC 14.3.0 baseline passed 136/136 in all nine Linux configurations, with four nonempty legacy coverage reports. PR CI passed 137/137 tests in every Linux and Win64 configuration (1,233 tests on each platform). CTest durations in seconds, Linux/Win64:
default_build_coverage14.62/5.82,no_cache_build9.18/4.04,no_cache_standalone_build8.65/3.54,fault_tolerant_build_coverage208.14/60.77,no_check_build13.78/6.06,no_cache_fault_tolerant_build179.43/53.96,standalone_build_coverage13.79/5.20,standalone_fault_tolerant_build_coverage118.90/33.45, andstandalone_no_cache_fault_tolerant_build103.40/27.58. All nine coverage XML/JSON pairs were nonempty; the merged artifact contains 203 repository-relative source files, HTML, 7,642/7,647 lines (99.93%), and 8,203/8,245 branches (99.49%). The sample RAM driver remains excluded from coverage because regression tests use a fault-injection driver. The five uncovered measured lines are three in a FAT read failure path in file writing and one each in the no-cache sector helper and a fault-tolerant sector read error path. A forced failing test returned runner status 8; missing and empty reports, a failed dependency fetch, and lowered line or branch coverage failed as expected. Installer retries stayed bounded. Actionlint, ShellCheck, and whitespace checks passed. Both deployment jobs were skipped on the PR.