From 95dbb5abdbb746cf5da9f7926740d17205ac8d55 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 6 Jun 2026 10:31:30 -0500 Subject: build: add Eask, test harness, and dev tooling I brought the skeleton up to a working package baseline (Phase 0 in the design spec). Eask defines the package and its dev deps. A root Makefile delegates test targets to tests/Makefile and adds compile, coverage, lint, doctor, and clean, matching the layout the other packages use. deps installs both halves DUET needs: the Emacs Lisp deps via eask, and the transport CLIs (rsync, rclone, lftp, unison) via the system package manager, so a contributor's environment is ready before the code that shells out to them. make complexity runs a small homegrown McCabe branch counter (scripts/duet-complexity.el). No off-the-shelf tool measures Emacs Lisp: lizard doesn't support it and codemetrics is an interactive overlay, so DUET owns one. The counting is pure and covered by Normal/Boundary/Error tests. The budget is soft and the target is advisory. The ERT harness (bootstrap, check-deps, per-file undercover coverage) and a smoke test prove the loop works end to end. --- tests/test-duet-smoke.el | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/test-duet-smoke.el (limited to 'tests/test-duet-smoke.el') diff --git a/tests/test-duet-smoke.el b/tests/test-duet-smoke.el new file mode 100644 index 0000000..a101dd2 --- /dev/null +++ b/tests/test-duet-smoke.el @@ -0,0 +1,36 @@ +;;; test-duet-smoke.el --- Harness smoke test for duet -*- lexical-binding: t; -*- + +;; Copyright (C) 2026 Craig Jennings + +;; Author: Craig Jennings + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; Plumbing-proof smoke test: confirms the harness loads the package and the +;; entry command is defined. Behavior coverage lives in the per-area test +;; files added by later phases. + +;;; Code: + +(require 'test-bootstrap (expand-file-name "test-bootstrap.el")) + +(ert-deftest test-duet-smoke-feature-loaded () + "The package source loads and defines its entry command." + (should (featurep 'duet)) + (should (commandp 'duet))) + +(provide 'test-duet-smoke) +;;; test-duet-smoke.el ends here -- cgit v1.2.3