diff options
Diffstat (limited to 'tests/testutil-format-wiring.el')
| -rw-r--r-- | tests/testutil-format-wiring.el | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/testutil-format-wiring.el b/tests/testutil-format-wiring.el new file mode 100644 index 00000000..eba57564 --- /dev/null +++ b/tests/testutil-format-wiring.el @@ -0,0 +1,38 @@ +;;; testutil-format-wiring.el --- Shared helpers for formatter wiring tests -*- lexical-binding: t; -*- + +;;; Commentary: +;; Helpers used by the per-language formatter-wiring tests. Two pieces: +;; +;; - `format-test--ensure-packages-init' bootstraps `package' once per +;; batch run so use-package forms in the prog-* modules can find +;; their packages in elpa. The Makefile's test target invokes Emacs +;; with --no-site-file --no-site-lisp, which skips the implicit +;; `package-initialize' that an interactive session would do at +;; startup. +;; +;; - `format-test--skip-unless-executable' is a thin wrapper around +;; `ert-skip' for the "formatter not installed on this machine" path. +;; Tests that need the underlying binary on PATH call this first. + +;;; Code: + +(require 'ert) +(require 'package) + +(defvar format-test--packages-initialized nil + "Non-nil once `package-initialize' has run in this batch process.") + +(defun format-test--ensure-packages-init () + "Initialise `package' the first time this is called in a batch run." + (unless format-test--packages-initialized + (package-initialize) + (setq format-test--packages-initialized t))) + +(defun format-test--skip-unless-executable (program) + "Skip the current ERT test unless PROGRAM is on PATH." + (unless (executable-find program) + (ert-skip (format "%s not on PATH; skipping installation-dependent assertion" + program)))) + +(provide 'testutil-format-wiring) +;;; testutil-format-wiring.el ends here |
