Skip to content

Boilerplate, CI - #94

Merged
synesissoftware merged 10 commits into
devfrom
boilerplate
Oct 9, 2026
Merged

synesissoftware merged 10 commits into
devfrom
boilerplate

Conversation

@synesissoftware

Copy link
Copy Markdown
Owner

No description provided.

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;
@synesissoftware synesissoftware self-assigned this Sep 21, 2026
Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).
Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.
Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;
- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;
- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;
- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;
- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;
@synesissoftware
synesissoftware merged commit 6d3de0c into dev Oct 9, 2026
26 checks passed
@synesissoftware
synesissoftware deleted the boilerplate branch October 9, 2026 20:39
synesissoftware added a commit that referenced this pull request Oct 9, 2026
* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;
mwsis added a commit that referenced this pull request Oct 17, 2026
* squash-commit of branch 'update'

* chore(xtests): 0.26.5-beta2

Bump `_XTESTS_VER_ALPHABETA` to 0x42 and add `_XTESTS_VER_AB`; record the
release in CHANGES.md, NEWS.md, and Doxyfile:
- hyphen-compact prerelease headings, with 1st September recast as beta1;
- NEWS.md Details column with GitHub links for tagged releases.

* docs(xtests): move Components catalog into COMPONENTS.md

Replace the nested README `<details>` widgets with a short map that links
to **COMPONENTS.md**, listing each public construct with a small example;
include previously omitted terse-API, helpers, and flags.

* feat(xtests): add POINTER_NULL / NOT_NULL and null-expected messages

Add `XTESTS_TEST_POINTER_NULL` / `XTESTS_TEST_POINTER_NOT_NULL` (and terse
aliases) as wrappers of EQUAL/NOT_EQUAL with `NULL`; special-case failure
wording when the expected pointer is null ("is not null as expected" /
"actual pointer is null not as expected"); document in COMPONENTS/CHANGES/
NEWS; illustrate in example.c.tests and the all-failure scratch suite; add
pass-path unit coverage; note the static `fprintf_reporter` capture hazard
on TODO.

* version

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>
synesissoftware added a commit that referenced this pull request Oct 17, 2026
* `nullptr` / `NULL` functions (#91)

* squash-commit of branch 'update'

* chore(xtests): 0.26.5-beta2

Bump `_XTESTS_VER_ALPHABETA` to 0x42 and add `_XTESTS_VER_AB`; record the
release in CHANGES.md, NEWS.md, and Doxyfile:
- hyphen-compact prerelease headings, with 1st September recast as beta1;
- NEWS.md Details column with GitHub links for tagged releases.

* docs(xtests): move Components catalog into COMPONENTS.md

Replace the nested README `<details>` widgets with a short map that links
to **COMPONENTS.md**, listing each public construct with a small example;
include previously omitted terse-API, helpers, and flags.

* feat(xtests): add POINTER_NULL / NOT_NULL and null-expected messages

Add `XTESTS_TEST_POINTER_NULL` / `XTESTS_TEST_POINTER_NOT_NULL` (and terse
aliases) as wrappers of EQUAL/NOT_EQUAL with `NULL`; special-case failure
wording when the expected pointer is null ("is not null as expected" /
"actual pointer is null not as expected"); document in COMPONENTS/CHANGES/
NEWS; illustrate in example.c.tests and the all-failure scratch suite; add
pass-path unit coverage; note the static `fprintf_reporter` capture hazard
on TODO.

* version

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>

* chore: renamed **test/unit/test.unit.pointer_comparisons** => ** test/unit/pointer-comparisons**

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>
synesissoftware added a commit that referenced this pull request Oct 18, 2026
…st name) (#92)

* 0.27.0-alpha1

* `XTESTS_START_RUNNER()` (and related start-runner APIs) now infer a
  runner name from a source path such as `__FILE__`, using the containing
  directory when the file stem is a stock `entry`/`main` and the extension
  is a C/C++ source suffix;
* Demonstrated in **test.component.temp_directory**, which now starts its
  runner with `__FILE__`;

* fix

* fix

* fix

* fix

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

* chore(spelling)

* feat(xtests): infer runner name from __FILE__ in XTESTS_START_RUNNER

Complete infer_name_() so that a C/C++ source path (i.e. __FILE__) given as
the runner name yields a sensible name; any path failing the rules is
passed through unchanged:
- extension must be .c, .cc, .cpp or .cxx;
- stem must be entry or main, or equal the leaf directory (in which case
  the result is the stem);
- for entry/main, a leaf of the form example.<X> or test.<X> is the
  result, otherwise the nearest example/examples/test ancestor is joined
  with the directories below it by '.', with examples becoming example;
- relative and absolute paths, with / or \ separators, are handled;
- replace prefix-matching helper with exact-length comparison and remove
  debugging output.

Document the rules in the XTESTS_START_RUNNER*() Doxygen markup in
xtests.h and in a new README.md Runner Names section. Update CHANGES.md
and NEWS.md for 0.28.0-alpha2, and start the temp_directory component
test's runner with __FILE__.

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>
synesissoftware added a commit that referenced this pull request Oct 22, 2026
* refactor(core): 4-parameter collapsed into `flfe_t` helper struct (#104)

* `START_RUNNER()` can now take `__FILE__` (from which it infers the test name) (#92)

* 0.27.0-alpha1

* `XTESTS_START_RUNNER()` (and related start-runner APIs) now infer a
  runner name from a source path such as `__FILE__`, using the containing
  directory when the file stem is a stock `entry`/`main` and the extension
  is a C/C++ source suffix;
* Demonstrated in **test.component.temp_directory**, which now starts its
  runner with `__FILE__`;

* fix

* fix

* fix

* fix

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

* chore(spelling)

* feat(xtests): infer runner name from __FILE__ in XTESTS_START_RUNNER

Complete infer_name_() so that a C/C++ source path (i.e. __FILE__) given as
the runner name yields a sensible name; any path failing the rules is
passed through unchanged:
- extension must be .c, .cc, .cpp or .cxx;
- stem must be entry or main, or equal the leaf directory (in which case
  the result is the stem);
- for entry/main, a leaf of the form example.<X> or test.<X> is the
  result, otherwise the nearest example/examples/test ancestor is joined
  with the directories below it by '.', with examples becoming example;
- relative and absolute paths, with / or \ separators, are handled;
- replace prefix-matching helper with exact-length comparison and remove
  debugging output.

Document the rules in the XTESTS_START_RUNNER*() Doxygen markup in
xtests.h and in a new README.md Runner Names section. Update CHANGES.md
and NEWS.md for 0.28.0-alpha2, and start the temp_directory component
test's runner with __FILE__.

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>

* Naming (#105)

* tidy

* tidy

* version

* docs(xtests): record 0.28.0-alpha2 for 22nd October 2026

Date the release today and record every change since 0.28.0-alpha1:
- `__FILE__` runner-name inference, its documentation, and the four
  adopting programs;
- the internal `flfe_t` collapse of file, line, function, and expr;
- strike the completed TODO items and note `__FILE__` in **COMPONENTS.md**;

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>
synesissoftware added a commit that referenced this pull request Oct 23, 2026
* refactor(core): 4-parameter collapsed into `flfe_t` helper struct (#104)

* `START_RUNNER()` can now take `__FILE__` (from which it infers the test name) (#92)

* 0.27.0-alpha1

* `XTESTS_START_RUNNER()` (and related start-runner APIs) now infer a
  runner name from a source path such as `__FILE__`, using the containing
  directory when the file stem is a stock `entry`/`main` and the extension
  is a C/C++ source suffix;
* Demonstrated in **test.component.temp_directory**, which now starts its
  runner with `__FILE__`;

* fix

* fix

* fix

* fix

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

* chore(spelling)

* feat(xtests): infer runner name from __FILE__ in XTESTS_START_RUNNER

Complete infer_name_() so that a C/C++ source path (i.e. __FILE__) given as
the runner name yields a sensible name; any path failing the rules is
passed through unchanged:
- extension must be .c, .cc, .cpp or .cxx;
- stem must be entry or main, or equal the leaf directory (in which case
  the result is the stem);
- for entry/main, a leaf of the form example.<X> or test.<X> is the
  result, otherwise the nearest example/examples/test ancestor is joined
  with the directories below it by '.', with examples becoming example;
- relative and absolute paths, with / or \ separators, are handled;
- replace prefix-matching helper with exact-length comparison and remove
  debugging output.

Document the rules in the XTESTS_START_RUNNER*() Doxygen markup in
xtests.h and in a new README.md Runner Names section. Update CHANGES.md
and NEWS.md for 0.28.0-alpha2, and start the temp_directory component
test's runner with __FILE__.

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>

* Naming (#105)

* tidy

* tidy

* version

* feat(xtests): expand terse API aliases for 0.28.0-beta1

Add further short aliases in **terse-api.h** (`TEST_BOOL_*`,
`TEST_*_EQ_EXACT`, `TEST_INT_EQ_ANY_*`, `TEST_MS_SLICE_*` /
`TEST_WS_SLICE_*`, message helpers, `END_RUNNER_UPDATE_EXITCODE`);
bump `_XTESTS_VER_RELSTATUS` to `0x81` and sync **Doxyfile**,
**CHANGES.md**, **NEWS.md**, and **COMPONENTS.md** for **0.28.0-beta1**
(21st October 2026).

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>
synesissoftware added a commit that referenced this pull request Oct 25, 2026
* feat(xtests): expand terse API aliases for 0.28.0-beta1 (#107)

* refactor(core): 4-parameter collapsed into `flfe_t` helper struct (#104)

* `START_RUNNER()` can now take `__FILE__` (from which it infers the test name) (#92)

* 0.27.0-alpha1

* `XTESTS_START_RUNNER()` (and related start-runner APIs) now infer a
  runner name from a source path such as `__FILE__`, using the containing
  directory when the file stem is a stock `entry`/`main` and the extension
  is a C/C++ source suffix;
* Demonstrated in **test.component.temp_directory**, which now starts its
  runner with `__FILE__`;

* fix

* fix

* fix

* fix

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

* chore(spelling)

* feat(xtests): infer runner name from __FILE__ in XTESTS_START_RUNNER

Complete infer_name_() so that a C/C++ source path (i.e. __FILE__) given as
the runner name yields a sensible name; any path failing the rules is
passed through unchanged:
- extension must be .c, .cc, .cpp or .cxx;
- stem must be entry or main, or equal the leaf directory (in which case
  the result is the stem);
- for entry/main, a leaf of the form example.<X> or test.<X> is the
  result, otherwise the nearest example/examples/test ancestor is joined
  with the directories below it by '.', with examples becoming example;
- relative and absolute paths, with / or \ separators, are handled;
- replace prefix-matching helper with exact-length comparison and remove
  debugging output.

Document the rules in the XTESTS_START_RUNNER*() Doxygen markup in
xtests.h and in a new README.md Runner Names section. Update CHANGES.md
and NEWS.md for 0.28.0-alpha2, and start the temp_directory component
test's runner with __FILE__.

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>

* Naming (#105)

* tidy

* tidy

* version

* feat(xtests): expand terse API aliases for 0.28.0-beta1

Add further short aliases in **terse-api.h** (`TEST_BOOL_*`,
`TEST_*_EQ_EXACT`, `TEST_INT_EQ_ANY_*`, `TEST_MS_SLICE_*` /
`TEST_WS_SLICE_*`, message helpers, `END_RUNNER_UPDATE_EXITCODE`);
bump `_XTESTS_VER_RELSTATUS` to `0x81` and sync **Doxyfile**,
**CHANGES.md**, **NEWS.md**, and **COMPONENTS.md** for **0.28.0-beta1**
(21st October 2026).

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>

* docs(xtests): segregate 0.28.0 CHANGES entry by category

Group the 0.28.0 entry into additions, changes, dependencies,
documentation, examples, testing, and version, matching the layout used in
the latest Pantheios and STLSoft releases.

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>
synesissoftware added a commit that referenced this pull request Oct 27, 2026
* feat(xtests): expand terse API aliases for 0.28.0-beta1 (#107)

* refactor(core): 4-parameter collapsed into `flfe_t` helper struct (#104)

* `START_RUNNER()` can now take `__FILE__` (from which it infers the test name) (#92)

* 0.27.0-alpha1

* `XTESTS_START_RUNNER()` (and related start-runner APIs) now infer a
  runner name from a source path such as `__FILE__`, using the containing
  directory when the file stem is a stock `entry`/`main` and the extension
  is a C/C++ source suffix;
* Demonstrated in **test.component.temp_directory**, which now starts its
  runner with `__FILE__`;

* fix

* fix

* fix

* fix

* Boilerplate (#93)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* Boilerplate, CI (#94)

* .vimrc

* chore: align editorconfig and gitattributes with c_cxx gold

Add templates/editorconfig/c_cxx/.editorconfig and replace .gitattributes
with templates/gitattributes/c_cxx/.gitattributes, dropping the Linguist
language-bar overlay so both files match the rest of the C/C++ wave;

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(xTests): adopt SisClr cmake-helpers gold

Bring root CMake helpers to the misc-dev-scripts examining-host dialect;
retain --c-standard, --cxx-standard, --no-shwild, and --stlsoft-root-dir.

* chore(xTests): align runners to gold and rename versions reporter

Finish Phase 4b/4c on boilerplate:
- copy run_all_{component,examples,performance,scratch,unit}_tests.sh
  from misc-dev-scripts gold b92fdfc, dropping the --verbosity fallback
  that gold removed from the non-automated runners;
- retain **prepare_cmake.sh** project-specific --no-shwild,
  --stlsoft-root-dir, --c-standard, and --cxx-standard;
- rename the scratch reporter target to **test.scratch.versions** so
  **run_all_scratch_tests.sh** discovers it, and drop the
  SIS:AUTO_GENERATED marker from its **CMakeLists.txt** because the
  generator derives the target name from the directory;
- record both changes under Unreleased in **CHANGES.md**;

* chore(xtests): prepare 0.26.6-beta1 release

- bump _XTESTS_VER_PATCH to 6 and _XTESTS_VER_ALPHABETA to 0x81;
- sync Doxyfile PROJECT_NUMBER to 0.26.6-beta1;
- retitle Unreleased CHANGES.md section as 0.26.6-beta1;
- add 0.26.6-beta1 release row to NEWS.md;

* chore(xtests): allow examples that demonstrate failure by design

- adopt BDUT run_all_examples.{sh,cmd} with allow-list support;
- add .sis/ci_examples_allowed_to_fail.txt listing example.c.runner
  and example.c.tests;
- record in CHANGES.md under 0.26.6-beta1;

* ci(xtests): allow example.cpp.udt to fail by design

- list example.cpp.udt in .sis/ci_examples_allowed_to_fail.txt;
- update the CHANGES.md bullet to match;

* ci(xtests): run component tests via run_all_component_tests.sh

- replace run_all_unit_tests.sh -M --component-only, which is not an
  accepted option, with run_all_component_tests.sh -M;
- record in CHANGES.md;

* ci(xtests): dogfood native .cmd runners on Windows cells

- split each run_all_* step into a Bash step (non-Windows) and a native cmd
  step (Windows, shell: cmd);
- give the MSYS2 setup step id msys2 for the MinGW PATH prepend;
- record in CHANGES.md;

* chore(spelling)

* feat(xtests): infer runner name from __FILE__ in XTESTS_START_RUNNER

Complete infer_name_() so that a C/C++ source path (i.e. __FILE__) given as
the runner name yields a sensible name; any path failing the rules is
passed through unchanged:
- extension must be .c, .cc, .cpp or .cxx;
- stem must be entry or main, or equal the leaf directory (in which case
  the result is the stem);
- for entry/main, a leaf of the form example.<X> or test.<X> is the
  result, otherwise the nearest example/examples/test ancestor is joined
  with the directories below it by '.', with examples becoming example;
- relative and absolute paths, with / or \ separators, are handled;
- replace prefix-matching helper with exact-length comparison and remove
  debugging output.

Document the rules in the XTESTS_START_RUNNER*() Doxygen markup in
xtests.h and in a new README.md Runner Names section. Update CHANGES.md
and NEWS.md for 0.28.0-alpha2, and start the temp_directory component
test's runner with __FILE__.

---------

Co-authored-by: synesissoftware <matthew@synesis.com.au>

* Naming (#105)

* tidy

* tidy

* version

* feat(xtests): expand terse API aliases for 0.28.0-beta1

Add further short aliases in **terse-api.h** (`TEST_BOOL_*`,
`TEST_*_EQ_EXACT`, `TEST_INT_EQ_ANY_*`, `TEST_MS_SLICE_*` /
`TEST_WS_SLICE_*`, message helpers, `END_RUNNER_UPDATE_EXITCODE`);
bump `_XTESTS_VER_RELSTATUS` to `0x81` and sync **Doxyfile**,
**CHANGES.md**, **NEWS.md**, and **COMPONENTS.md** for **0.28.0-beta1**
(21st October 2026).

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>

* docs(xtests): segregate 0.28.0 CHANGES entry by category

Group the 0.28.0 entry into additions, changes, dependencies,
documentation, examples, testing, and version, matching the layout used in
the latest Pantheios and STLSoft releases.

* build: publish HAS_<Pkg> for detected Synesis packages

After each successful detection of a Synesis package other than STLSoft,
define HAS_<Pkg> and HAS_<PKG>. Dots in package names become underscores.
BDUT and CLASP, already all-caps, get the single macro. Client-prefixed
presence macros were removed where only the client read them. Dependency
switches such as XTESTS_HAS_SHWILD, PANTHEIOS_HAS_SHWILD, and the *_NO_*
contracts stay.

* fix: align versions links and current release symbols

Keep versions target_link_libraries in the signature the project already
uses, link header-only packages by their imported target, and compare
version tests with the current release symbol.

---------

Co-authored-by: Matt Wilson <152443343+mwsis@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants