From 0c085f2935418f365f6abd39ce008909dc13ed3c Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 3 May 2026 17:39:10 -0500 Subject: fix(dev-fkeys): F6 elisp runner uses basename, not rel-path I shipped Phase 2a with `cj/--f6-test-runner-cmd-for' building `make test-file FILE=' for elisp test files (e.g., FILE=tests/test-foo.el). The project Makefile prepends `tests/' to FILE itself, so the full invocation expands to `tests/tests/test-foo.el' and emacs reports "Cannot open load file". The bug surfaced on a live-test in step 7 of the Phase 2a smoke plan. Fix: pass `(file-name-nondirectory rel-path)' so the Makefile gets just `test-foo.el' and re-prepends `tests/' itself. Two unit tests in `test-dev-fkeys--f6-test-runner-cmd-for.el' had encoded the wrong expectation (the rel-path form). Two orchestrator tests in `test-dev-fkeys--f6-current-file-tests-impl.el' inherited the same wrong assertion via integration. Updated all four to assert the basename form. Verified: full suite green, including the 4 updated tests. Live re-test on `tests/test-dev-fkeys--f6-language-detect.el' should now produce the working `make test-file FILE=test-dev-fkeys--f6-language-detect.el'. --- tests/test-dev-fkeys--f6-current-file-tests-impl.el | 4 ++-- tests/test-dev-fkeys--f6-test-runner-cmd-for.el | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/test-dev-fkeys--f6-current-file-tests-impl.el b/tests/test-dev-fkeys--f6-current-file-tests-impl.el index ecc7a4f4..318a78db 100644 --- a/tests/test-dev-fkeys--f6-current-file-tests-impl.el +++ b/tests/test-dev-fkeys--f6-current-file-tests-impl.el @@ -45,7 +45,7 @@ Components integrated: (cj/--f6-current-file-tests-impl "/home/u/proj/tests/test-foo.el" "/home/u/proj/") - (should (string= seen-cmd "make test-file FILE=tests/test-foo.el"))))) + (should (string= seen-cmd "make test-file FILE=test-foo.el"))))) (ert-deftest test-dev-fkeys-f6-current-file-tests-impl-python-source () "Normal: a Python source file maps to `pytest tests/test_.py'." @@ -88,7 +88,7 @@ just that file's tests run, not the whole module's prefix." (cj/--f6-current-file-tests-impl "/home/u/proj/tests/test-foo--bar.el" "/home/u/proj/") - (should (string= seen-cmd "make test-file FILE=tests/test-foo--bar.el"))))) + (should (string= seen-cmd "make test-file FILE=test-foo--bar.el"))))) ;;; Error Cases diff --git a/tests/test-dev-fkeys--f6-test-runner-cmd-for.el b/tests/test-dev-fkeys--f6-test-runner-cmd-for.el index d9f8f464..cb242889 100644 --- a/tests/test-dev-fkeys--f6-test-runner-cmd-for.el +++ b/tests/test-dev-fkeys--f6-test-runner-cmd-for.el @@ -24,11 +24,14 @@ ;;; Normal Cases — Elisp (ert-deftest test-dev-fkeys-f6-cmd-for-elisp-test-file () - "Normal: an elisp test file runs via `make test-file FILE='." + "Normal: an elisp test file runs via `make test-file FILE='. +The project Makefile prepends `tests/' to whatever FILE you pass, so the +runner command must use just the basename (not the rel-path) to avoid +`tests/tests/...' double-prefix." (should (string= (cj/--f6-test-runner-cmd-for 'elisp t "tests/test-foo.el" "foo" "tests") - "make test-file FILE=tests/test-foo.el"))) + "make test-file FILE=test-foo.el"))) (ert-deftest test-dev-fkeys-f6-cmd-for-elisp-source-file () "Normal: an elisp source file runs via `make test-name TEST=^test--'. @@ -78,11 +81,12 @@ test files." (ert-deftest test-dev-fkeys-f6-cmd-for-elisp-test-file-with-double-dash () "Boundary: a per-helper test file runs only that file, not the whole test-name prefix. `make test-file FILE=...' is precise; `test-name' -would over-match." +would over-match. Pass just the basename — the Makefile re-prepends +`tests/' itself." (should (string= (cj/--f6-test-runner-cmd-for 'elisp t "tests/test-foo--bar.el" "foo" "tests") - "make test-file FILE=tests/test-foo--bar.el"))) + "make test-file FILE=test-foo--bar.el"))) (ert-deftest test-dev-fkeys-f6-cmd-for-go-source-at-root () "Boundary: a Go source file at project root runs `go test ./'." -- cgit v1.2.3