<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gh_mirror/jhunkeler/stasis.git/include/ini.h, branch dynamic-tests</title>
<subtitle>A pipeline delivery generator
</subtitle>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/'/>
<entry>
<title>Restructure project</title>
<updated>2024-12-11T14:45:04+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-12-11T14:30:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=4fd92ec6b203d6b94b9e9f9531fd60a65736e810'/>
<id>4fd92ec6b203d6b94b9e9f9531fd60a65736e810</id>
<content type='text'>
* Move headers to relevant include directories within the target tree(s)
* Adjust doxygen configuration to search correct paths
* Adjust CMake configuration to use new include paths
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move headers to relevant include directories within the target tree(s)
* Adjust doxygen configuration to search correct paths
* Adjust CMake configuration to use new include paths
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix includes</title>
<updated>2024-10-14T13:44:02+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-10-14T13:36:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=a29bca4b79f19e9f04420b545bdec27ddc99150c'/>
<id>a29bca4b79f19e9f04420b545bdec27ddc99150c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>More unit tests (and fixing bugs) (#23)</title>
<updated>2024-08-12T19:11:17+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-12T19:11:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=95672b2e7a6cc0c07306893d5bb0b80ee3570f7a'/>
<id>95672b2e7a6cc0c07306893d5bb0b80ee3570f7a</id>
<content type='text'>
* Add test_artifactory.c to suite

* Add test_ini_getval_wrapper to ini.c

* basic ini_getval_TYPE() conversion checks

* bugfix: use strtof in INIVAL_TYPE_FLOAT case

* Include stdio.h to pull in FILE structure

* bugfix: free data at index during strlist_set operation

* Previous behavior of setting the pointer to NULL introduced a subtle memory leak

* Set strlist error when index it out of range

* Import private delivery functions required for mock context creation

* Remove static declaration

* populate_delivery_cfg()

* Add test_junitxml.c

* Fix duplicate define value for JUNIT_RESULT_STATE_ERROR
* Add static junit test data
* Copy test data to current test directory</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add test_artifactory.c to suite

* Add test_ini_getval_wrapper to ini.c

* basic ini_getval_TYPE() conversion checks

* bugfix: use strtof in INIVAL_TYPE_FLOAT case

* Include stdio.h to pull in FILE structure

* bugfix: free data at index during strlist_set operation

* Previous behavior of setting the pointer to NULL introduced a subtle memory leak

* Set strlist error when index it out of range

* Import private delivery functions required for mock context creation

* Remove static declaration

* populate_delivery_cfg()

* Add test_junitxml.c

* Fix duplicate define value for JUNIT_RESULT_STATE_ERROR
* Add static junit test data
* Copy test data to current test directory</pre>
</div>
</content>
</entry>
<entry>
<title>Return of the INI refactor (#20)</title>
<updated>2024-08-08T16:45:05+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-08T16:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=c9579598c5a1b49f7fe8e353623175bf8f3cc236'/>
<id>c9579598c5a1b49f7fe8e353623175bf8f3cc236</id>
<content type='text'>
* Continuation of #19

* Fixes always_update_base_environment override bug added by PR #19

* Finish type hinting implementation

* ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER
* Created pointers to deeply nested structures to increase readability
* Output from ini_write() is more consistent, with fewer errant spaces and line feeds
* Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array.

* Fix strlist_append_tokenize

* original pointer is no longer modified
* token strings are stripped of leading space before appending to the list

* Use defines instead of magic numbers

* delivery_init: add render_mode argument

* test_conda: Add render mode

* test_ini: Add render mode

* Only add conda packages and wheels to the image

* docker images are saved to the packages directory and will be consumed by the image if present.

* Render template variables after bootstrapping the delivery</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Continuation of #19

* Fixes always_update_base_environment override bug added by PR #19

* Finish type hinting implementation

* ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER
* Created pointers to deeply nested structures to increase readability
* Output from ini_write() is more consistent, with fewer errant spaces and line feeds
* Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array.

* Fix strlist_append_tokenize

* original pointer is no longer modified
* token strings are stripped of leading space before appending to the list

* Use defines instead of magic numbers

* delivery_init: add render_mode argument

* test_conda: Add render mode

* test_ini: Add render mode

* Only add conda packages and wheels to the image

* docker images are saved to the packages directory and will be consumed by the image if present.

* Render template variables after bootstrapping the delivery</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor ini getter and setter usage (#19)</title>
<updated>2024-08-07T17:52:10+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-07T17:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=1d5e5f26014ceefd824382acec732f326d8d6ce2'/>
<id>1d5e5f26014ceefd824382acec732f326d8d6ce2</id>
<content type='text'>
* Add handler for space-delimited lists

* This needs attention, however. The INI writer has no way to know a list with spaces is a list; this happens in the value conversion functions.
* Add type_hint member to INIData structure. At some point support with be added for all INIVAL_TYPE_* defines. Right now it's only used with arrays.
* Zero out line buffer in ini_open after each iteration
* Do not strip raw INI data. Let the conversion functions handle it
* Add spaces to key value pairs in rendered INI output.

* Add ini_getvar_TYPE() functions

* These replace the functionality of static conv_TYPE() functions in delivery.c
* Add support for missing types: U/CHAR, U/SHORT, STRLIST

* ini_getval: expand template variables immediately before processing the output

* Strip leading space to avoid issues with string comparisons against the result

* ini_getval: Return copies, not the original.

* This forces one to use ini_setval to replace/append values to the data array(s). It's safer this way.

* fix_tox_conf(): Use ini_getval and ini_setval instead of modifying the original pointers directly

* Tests: Free resources

* Replace ini_getval(), ini_getval_required() and conv_*() usage

* Now using ini_getval_TYPE() functions and ini_setval()
* Remove unused helper functions and variables

* download() returns long, not int

* actions: update apt cache</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add handler for space-delimited lists

* This needs attention, however. The INI writer has no way to know a list with spaces is a list; this happens in the value conversion functions.
* Add type_hint member to INIData structure. At some point support with be added for all INIVAL_TYPE_* defines. Right now it's only used with arrays.
* Zero out line buffer in ini_open after each iteration
* Do not strip raw INI data. Let the conversion functions handle it
* Add spaces to key value pairs in rendered INI output.

* Add ini_getvar_TYPE() functions

* These replace the functionality of static conv_TYPE() functions in delivery.c
* Add support for missing types: U/CHAR, U/SHORT, STRLIST

* ini_getval: expand template variables immediately before processing the output

* Strip leading space to avoid issues with string comparisons against the result

* ini_getval: Return copies, not the original.

* This forces one to use ini_setval to replace/append values to the data array(s). It's safer this way.

* fix_tox_conf(): Use ini_getval and ini_setval instead of modifying the original pointers directly

* Tests: Free resources

* Replace ini_getval(), ini_getval_required() and conv_*() usage

* Now using ini_getval_TYPE() functions and ini_setval()
* Remove unused helper functions and variables

* download() returns long, not int

* actions: update apt cache</pre>
</div>
</content>
</entry>
<entry>
<title>Unit tests (#12)</title>
<updated>2024-07-15T14:07:25+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-07-15T14:07:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=07dc44efdc5c2fbc2b34c969e623d3b0bc0df15a'/>
<id>07dc44efdc5c2fbc2b34c969e623d3b0bc0df15a</id>
<content type='text'>
* Change return value of conda_setup_headless() from void to int

* Replace exit() with return;

* Return early if unpacking the micromamba binary fails

* Exit program when pointer to INIFILE is NULL.

* Validation function cannot otherwise proceed

* The way the logic is set up I've decided to duplicate the installation code for now until I find time to revise it

* The only meaningful difference between a "fresh start" and reusing the conda installation is a rmtree().

* Exposes STASIS_DOWNLOAD_TIMEOUT environment variable

* Sets the connection timeout for libcurl to 30, instead of 300.

* Export ini_section_create() function

* Add download() tests

* Add conda_*() tests

* Add boilerplate source file for test framework

* Fixes segfault reported by @GeorgeJCleary (#10)

* The key is now an array index. When key is -1, the env variable is not defined.

* Free resources only when continue on error is disabled (#11)

* Fix segfault due to premature shutdown/cleanup

* If conda_setup_headless cannot succeed, die

* Set STASIS_SYSCONFDIR for tests</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Change return value of conda_setup_headless() from void to int

* Replace exit() with return;

* Return early if unpacking the micromamba binary fails

* Exit program when pointer to INIFILE is NULL.

* Validation function cannot otherwise proceed

* The way the logic is set up I've decided to duplicate the installation code for now until I find time to revise it

* The only meaningful difference between a "fresh start" and reusing the conda installation is a rmtree().

* Exposes STASIS_DOWNLOAD_TIMEOUT environment variable

* Sets the connection timeout for libcurl to 30, instead of 300.

* Export ini_section_create() function

* Add download() tests

* Add conda_*() tests

* Add boilerplate source file for test framework

* Fixes segfault reported by @GeorgeJCleary (#10)

* The key is now an array index. When key is -1, the env variable is not defined.

* Free resources only when continue on error is disabled (#11)

* Fix segfault due to premature shutdown/cleanup

* If conda_setup_headless cannot succeed, die

* Set STASIS_SYSCONFDIR for tests</pre>
</div>
</content>
</entry>
<entry>
<title>Rebrand OhMyCal (OMC) as STASIS (#7)</title>
<updated>2024-06-21T16:49:45+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-06-21T16:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=77a0276d9f37bcf828c77f9bcc59ff945116274e'/>
<id>77a0276d9f37bcf828c77f9bcc59ff945116274e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unit tests (#6)</title>
<updated>2024-06-20T19:10:56+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-06-20T19:10:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=931ee28eb9c5b5e3c2b0d3008f5f65d810dc9b0c'/>
<id>931ee28eb9c5b5e3c2b0d3008f5f65d810dc9b0c</id>
<content type='text'>
* Initial commit of unit tests [WIP]

* Address shortcomings and bugs flushed out by unit tests

* Enable unit testing in CI workflow

* Enable verbose ctests

* Handle lack of __FILE_NAME__ define

* Only podman support `run --arch` argument

* Skip docker build testing if CI system cannot pull an image

* Remove errant call to puts()

* Identify local repo user

* Fix missing xmllint

* NULL terminate arrays

* Fix filename assignment in is_url mode

* Break loop when expected lines are exhausted

* strcmp_array expects NULL terminated array. Iterating by size in this case passes NULL to strcmp leading to an invalid read

* Remove debug printf statements

* Disable a few warnings for tests

* Workaround for ctest junit xml truncation

* Update checkout@v4

* Prevent false-positive result

* Return zero on error

* Fix strlist_remove function

* Value argument can be constant

* Fix test to match changes to startswith and endswith

* Add test_ini.c

* Fix redaction code to accept NULL pointers in array

* And let the caller specify the length of the array of strings to redact.

* Redactions now occur directly on authentication strings rather than their command line arguments

* Fix BUILD_TESTING_DEBUG

* Adds missing -D argument</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Initial commit of unit tests [WIP]

* Address shortcomings and bugs flushed out by unit tests

* Enable unit testing in CI workflow

* Enable verbose ctests

* Handle lack of __FILE_NAME__ define

* Only podman support `run --arch` argument

* Skip docker build testing if CI system cannot pull an image

* Remove errant call to puts()

* Identify local repo user

* Fix missing xmllint

* NULL terminate arrays

* Fix filename assignment in is_url mode

* Break loop when expected lines are exhausted

* strcmp_array expects NULL terminated array. Iterating by size in this case passes NULL to strcmp leading to an invalid read

* Remove debug printf statements

* Disable a few warnings for tests

* Workaround for ctest junit xml truncation

* Update checkout@v4

* Prevent false-positive result

* Return zero on error

* Fix strlist_remove function

* Value argument can be constant

* Fix test to match changes to startswith and endswith

* Add test_ini.c

* Fix redaction code to accept NULL pointers in array

* And let the caller specify the length of the array of strings to redact.

* Redactions now occur directly on authentication strings rather than their command line arguments

* Fix BUILD_TESTING_DEBUG

* Adds missing -D argument</pre>
</div>
</content>
</entry>
<entry>
<title>Add ini_has_key() and expose ini_section_search() function</title>
<updated>2024-04-15T05:03:35+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-04-15T04:36:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=7dbbe725e8b59a7ed813342bd5cb47c81bc2cf1c'/>
<id>7dbbe725e8b59a7ed813342bd5cb47c81bc2cf1c</id>
<content type='text'>
* ini_section_search now has three matching modes _EXACT, _BEGINS, and _SUBSTR
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ini_section_search now has three matching modes _EXACT, _BEGINS, and _SUBSTR
</pre>
</div>
</content>
</entry>
<entry>
<title>Add ini_setval() function</title>
<updated>2024-04-15T04:32:05+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-04-15T04:32:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=0db784a48f28a240e2a768d2773ba7cd4833a92d'/>
<id>0db784a48f28a240e2a768d2773ba7cd4833a92d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
