| |
|
|
|
|
|
|
| |
Re-enabling native-comp surfaced a suite-wide fragility. When a test redefines a C primitive (or a native-compiled function), native-comp routes native callers through a trampoline that calls the mock with the primitive's maximum arity. A fixed-arity mock narrower than the primitive then throws wrong-number-of-arguments, intermittently, as the eln-cache fills.
I swept every arity-narrow subr mock to append &rest _ (188 sites, preserving any named args the body uses), and added tests/test-meta-subr-mock-arity.el, which fails make test on any subr mock too narrow for the primitive's arity. The rule isn't "never mock a subr". The suite mocks message and completing-read freely. It's "a subr mock must accept the primitive's arity."
Background, the three failure modes, and the research are in docs/native-comp-subr-mocking.org.
|
|
|
music-config has a large sibling-test fleet for the pure helpers; the gap was a handful of small dispatchers and assertion guards.
13 new tests, EMMS primitives stubbed throughout:
- `cj/music--assert-m3u-files-exist`: passes a non-empty list through, errors on empty.
- `cj/music--sync-playlist-file`: sets the buffer-local file ref + resets point.
- `cj/music--select-m3u-file`: returns the chosen path, returns nil on Cancel, errors when no files exist.
- `cj/emms--setup`: no-ops when emms already loaded, requires when absent.
- `cj/music-playlist-clear`: stops playback, clears the playlist, nils the file ref.
- `cj/music-add-directory-recursive`: calls `emms-add-directory-tree` for an existing dir, user-errors for non-dirs.
- `cj/music--find-track-in-playlist`: returns the buffer position when present, nil when absent.
|