Skip to content

Add -o= output folder for test artifacts - #45

Merged
ermig1979 merged 1 commit into
devfrom
cursor/test-output-dir-3970
Aug 31, 2026
Merged

Add -o= output folder for test artifacts#45
ermig1979 merged 1 commit into
devfrom
cursor/test-output-dir-3970

Conversation

@ermig1979

@ermig1979 ermig1979 commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Problem

Test execution left many artifact files (XML, YAML, HTML, logs) in the current working directory.

Changes

  • Add Test::Options::output parsed from -o= with default value out.
  • Create the output folder before tests run (Cpl::CreatePath).
  • Route all test artifact writes (param/prop/yaml/table/log/file-tree fixtures) through options.OutputPath(...).
  • Document -o=out in the test help text.

Usage

./Test
./Test -o=out
./Test -o=artifacts

Default run writes artifacts to ./out instead of the current directory.

Testing

  • Rebuilt Test from this branch and ran the full suite: all tests finished successfully.
  • Default ./Test created ./out and wrote XML/YAML/HTML/log/file-tree artifacts there. The working directory had no leftover *.xml/*.yml/*.html files.
  • ./Test -o=artifacts wrote artifacts into ./artifacts instead of ./out.
  • ./Test -h lists -o=out.
Open in Web Open in Cursor 

Tests wrote XML, YAML, HTML, and log files into the current directory.
Add Test::Options::output (-o=, default "out"), create that folder before
tests run, and write all artifacts there.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>
@ermig1979
ermig1979 marked this pull request as ready for review August 31, 2026 14:34
@ermig1979
ermig1979 merged commit df51b10 into dev Aug 31, 2026
10 checks passed
ermig1979 added a commit that referenced this pull request Sep 1, 2026
* Add Doxygen documentation for Cpl::Log (#27)

* Add Doxygen documentation for Cpl::Log types and functions.

Document Log, Level, Flags, writer callbacks, public methods,
internal Writer helpers, and logging macros in src/Cpl/Log.h.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Avoid Doxygen auto-linking Callback briefs to Log::Writer.

Rephrase callback summaries so "Writer" is not treated as a type
reference in the generated documentation.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* +add generation of help by Doxygen.

* Add Doxygen documentation for Cpl::ArgsParser (#28)

* Add Doxygen documentation for Cpl::ArgsParser.

Document ArgsParser types and functions in the same style as Cpl::Log,
register the cpp_args group, and include Args.h in the Doxygen input.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Clarify ArgsParser GetArg exit parameter documentation.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* *fix bugs in help generation.

* Remove Doxygen comments from private members. (#29)

Drop private-member documentation in Cpl::ArgsParser and Cpl::Log
so generated help covers only public and protected API.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl::Console (#30)

* Add Doxygen documentation for Cpl::Console.

Document the Console namespace, Format/Foreground/Background/Reset
enumerations, and Stylized. Register the cpl_console group and include
Console.h in the Doxygen input list.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Clarify Stylized Linux note for Doxygen.

Avoid __linux__ in the Doxygen note so Markdown does not turn it into bold text.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl performance types and macros. (#31)

Document public classes, methods, typedefs and CPL_PERF_* macros in
Performance.h. Private members are left undocumented. Register the
cpl_performance group and include Performance.h in the Doxygen input.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl::Html (#32)

* Add Doxygen documentation for Cpl::Html.

Document public types and functions in src/Cpl/Html.h. Private members
are left undocumented. Register the cpl_html group and include Html.h
in the Doxygen input.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Avoid Doxygen auto-linking Attribute field briefs.

Rephrase Html::Attribute summaries so "Attribute" is not treated as a
type reference in the generated documentation.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl::Table. (#33)

Document public types and methods in Table.h, register the cpl_table
group, and include Table.h in the Doxygen input list. Private members
are left undocumented.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* *time functions refactoring.

* Add Doxygen documentation for Cpl time functions (#34)

* Add Doxygen documentation for Cpl time functions.

Document TimeCounter, TimeFrequency, Seconds, Miliseconds and Time.
Register the cpl_time group and include Time.h in the Doxygen input list.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Attach Time.h Doxygen comments to namespace functions.

Drop \fn commands so Doxygen binds the comments to Cpl::TimeCounter
and the related converters and places them in the cpl_time group.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* *update help.

* *refactoring of Cpl::CurrentDateTimeString.

* +add UpdateCopyrights.sh.

* Add Doxygen documentation for Cpl string functions (#35)

* Add Doxygen documentation for Cpl string functions.

Document the public string conversion and manipulation helpers in String.h,
register the cpl_string group, and include String.h in the Doxygen input list.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Include cstdint in String.h for MinGW.

CurrentDateTimeString uses uint64_t on Windows. MinGW does not pull that
type in through windows.h, so the header fails to compile without cstdint.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl utility functions (#36)

* Add Doxygen documentation for Cpl utility functions.

Document AlignHi, AlignLo, Round, Random, and StubWork in Utils.h,
register the cpl_utils group, and include Utils.h in the Doxygen input list.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Make Utils.h self-contained and fix AlignHi/AlignLo alignment wording.

Include cstdint for uint64_t used by StubWork, and describe align as a
generic power-of-two value rather than a byte count.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* *refactoring of File.h.

* Add Doxygen documentation for Cpl file functions. (#37)

Document the public file and directory helpers in File.h, update the
existing comments to the project Doxygen style, register the cpl_file
group, and include File.h in the Doxygen input list. Private FileData
members are left undocumented.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl geometry types and functions. (#38)

Document public types and functions in GeometryUtils.h and register
the cpl_geometry group in the Doxygen config.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl parameter types and functions (#39)

* Add Doxygen documentation for Cpl parameter types and functions.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Fix Doxygen markup warnings in Param.h comments.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl ParamV2 types and macros. (#40)

Document ParamVectorV2, ParamMapV2, CPL_PARAM_VECTOR_V2 and
CPL_PARAM_MAP_V2, and include ParamV2.h in the Doxygen input list.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl property types and functions. (#41)

Document ParamProp, ParamStorage, and the CPL_PROP* macros in Prop.h,
add a cpl_prop group, and include Prop.h in the Doxygen input list.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl XML types and functions (#42)

* Add Doxygen documentation for Cpl XML types and functions.

Document the public Cpl::Xml API in Xml.h and register the cpl_xml
group so the parser, printer and file loader appear in generated help.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Fix Xml.h Doxygen warnings for NodeType and XML tag examples.

Drop the standalone \\enum command and describe node kinds without
raw angle-bracket markup so Doxygen 1.9.8 reports no Xml.h warnings.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add Doxygen documentation for Cpl YAML types and functions (#43)

* Add Doxygen documentation for Cpl YAML types and functions.

Document the public Cpl::Yaml API in Yaml.h and register the cpl_yaml
group so Doxygen includes the parser, node tree and serializer.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Attach Parse and Serialize Doxygen comments to their definitions.

Doxygen was ignoring free-function docs that used \fn and only
appeared on the prototypes. Document the inline definitions as well
so the cpl_yaml group lists Parse and Serialize.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Move Test::Options to TestOptions.h and pass options to tests (#44)

* Move Test::Options to TestOptions.h and pass options into tests.

Extract the test runner Options type so individual tests can receive
the parsed command-line options via a const Options& parameter.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Include Test.h in TestFile and TestXml so Options is visible.

These translation units did not include Test.h, so the new
const Options& parameter failed to compile.

Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* Add -o= output folder option for test artifacts. (#45)

Tests wrote XML, YAML, HTML, and log files into the current directory.
Add Test::Options::output (-o=, default "out"), create that folder before
tests run, and write all artifacts there.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>

* *update help.

* *+add version macro.

* *Set version 1.0.1.

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: igor.ermolaev <igor.ermolaev@altezza.org>
@ermig1979
ermig1979 deleted the cursor/test-output-dir-3970 branch September 3, 2026 13:44
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