pcloudcc-lneely/.github
Levi Neely 79a4a5620f
Add GitHub Actions CI workflow for unit tests (#379)
* Add unit test for psync_task_free refcount fix (#377)

Adds tests/unit-tests/test_ptask_free.c to verify all code paths of the
psync_task_free fix from #377: single-owner free, last-ref destroy,
non-last-ref decrement, READY task signaling, and lock-before-refcnt
ordering. All 5 tests pass. Also adds compiled binary to .gitignore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add GitHub Actions CI workflow for unit tests

Triggers on push/PR to automated-testing branch. Installs cmake and
build-essential, builds all test targets via cmake, and runs ctest
--output-on-failure. Fails workflow on any test failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Replace cmake CI with make tests/check targets

Adds tests and check targets to Makefile — no cmake required.
Each test binary is built with the correct flags (pthread, -lrt,
--wrap linker flags for prun/ptools_errptr). CI workflow installs
only build-essential, runs make tests then make check; exits non-zero
on any failure. All 8 test suites pass locally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix CI: install libfuse3-dev so Makefile parses on Ubuntu

detect_fuse.sh runs at Makefile parse time; without fuse headers the
$(error) fires before any target runs. Adding libfuse3-dev unblocks
make tests (test binaries themselves don't link fuse).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix makefile

* Add automated testing infrastructure

- Update CI workflow to run unit tests and build verification
- Add Makefile targets for test compilation and execution
- Implement unit tests for pdbg_path, prun, and read_response
- Add test stubs for pCloud API mocking
- Add test binaries for pfs_lock_ordering and signal_safety verification

* Add missing dependencies to CI workflow

Install libfuse-dev and libssl-dev required for build

* Add test job to c-cpp.yml workflow

Include unit test execution in C/C++ workflow

* Add missing stubs to test_stubs.c

Complete stub implementations for all required pCloud API functions

* Fix stub signatures to match headers

Correct function signatures for pCloud API stubs

* Fix psql_* stub signatures

Correct all psql function signatures to match headers

* Fix stub implementations and Makefile

Update stub functions and build configuration

* Link real utility files instead of stubbing

Update Makefile to use actual implementation files for utilities

* Complete test framework with all 41 tests passing

- Makefile: Add test rules with real dependencies
- tests/stubs/test_stubs.c: Minimal stubs for external APIs
- tests/stubs/test_stubs_cpp.c: Stubs for C++ test
- pclsync/putil.c: Add null check in putil_strdup
- pclsync/pdbg.c: Add recursion guard in pdbg_printf

* Remove duplicate ci.yml workflow

Consolidate CI configuration into c-cpp.yml

* Remove compiled test binaries from git

- Remove test_pfs_lock_ordering and test_signal_safety binaries
- Add tests/test_* to .gitignore to prevent future commits

---------

Co-authored-by: Levi Neely <lkn@darkstar.example.net>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 17:48:42 +01:00
..
workflows Add GitHub Actions CI workflow for unit tests (#379) 2026-03-10 17:48:42 +01:00