Skip to content

test: add CTest, modular library structure, and Linux CI baseline - #3

Merged
daniyusk merged 3 commits into
mainfrom
chore/project-test-baseline
Aug 27, 2026
Merged

daniyusk merged 3 commits into
mainfrom
chore/project-test-baseline

Conversation

@daniyusk

Copy link
Copy Markdown
Owner

Summary

Prepares the repository for parallel development and automated testing without altering the functional scanner behavior.

Changes

  • Adds .gitattributes to enforce LF endings across source files, build scripts, documentation, and configuration files.
  • Separates CMake targets into JustGiveMyDisk::core (jgmd_core), jgmd_tui, and the JustGiveMyDisk executable.
  • Enables CTest and adds minimal smoke tests (smoke.utf, smoke.parser, smoke.database) that run without initializing the TUI.
  • Sets reproducible dependencies in cmake/Dependencies.cmake with pinned commit hashes for CLI11, fmt, FTXUI, and SHA256 verification for SQLite 3.50.4.
  • Adds strict compiler warning configuration (-Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wshadow -Wformat=2 -Wundef) and addresses warning issues in Tui.cpp and MftRecord.cpp.
  • Configures GitHub Actions CI workflow (.github/workflows/ci.yml) on Ubuntu with Debug and Release build matrix.

Commits

  1. chore: normalize repository line endings
  2. test: add CTest and Linux CI baseline

Verification

  • Built all targets (jgmd_core, jgmd_tui, JustGiveMyDisk, jgmd_smoke_tests) with warnings treated as errors.
  • Executed smoke tests via CTest (smoke.utf, smoke.parser, smoke.database), all passed.

@daniyusk
daniyusk marked this pull request as ready for review August 27, 2026 08:07
@daniyusk
daniyusk merged commit 046a23f into main Aug 27, 2026
4 of 6 checks passed
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.

1 participant