aboutsummaryrefslogtreecommitdiff
path: root/tests/test-host-environment--platform-predicates.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-host-environment--platform-predicates.el')
-rw-r--r--tests/test-host-environment--platform-predicates.el63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test-host-environment--platform-predicates.el b/tests/test-host-environment--platform-predicates.el
new file mode 100644
index 00000000..3430a939
--- /dev/null
+++ b/tests/test-host-environment--platform-predicates.el
@@ -0,0 +1,63 @@
+;;; test-host-environment--platform-predicates.el --- Tests for env-linux/bsd/macos/windows-p -*- lexical-binding: t; -*-
+
+;;; Commentary:
+;; Tests for the platform predicates in host-environment.el. Each is a
+;; thin wrapper around `system-type'. Tests rely on `system-type'
+;; being a special variable (so a `let'-binding shadows the global
+;; value) and walk every supported platform to confirm the right
+;; predicate returns t.
+
+;;; Code:
+
+(require 'ert)
+
+(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
+(require 'host-environment)
+
+(ert-deftest test-host-environment-linux-p-true-on-gnu-linux ()
+ "Normal: env-linux-p returns t when system-type is gnu/linux."
+ (let ((system-type 'gnu/linux))
+ (should (env-linux-p))))
+
+(ert-deftest test-host-environment-linux-p-false-on-other-platforms ()
+ "Boundary: env-linux-p returns nil on every non-Linux platform."
+ (dolist (other '(darwin berkeley-unix windows-nt cygwin ms-dos))
+ (let ((system-type other))
+ (should-not (env-linux-p)))))
+
+(ert-deftest test-host-environment-bsd-p-true-on-berkeley-unix ()
+ "Normal: env-bsd-p returns t when system-type is berkeley-unix."
+ (let ((system-type 'berkeley-unix))
+ (should (env-bsd-p))))
+
+(ert-deftest test-host-environment-bsd-p-false-on-other-platforms ()
+ "Boundary: env-bsd-p returns nil on every non-BSD platform."
+ (dolist (other '(gnu/linux darwin windows-nt cygwin ms-dos))
+ (let ((system-type other))
+ (should-not (env-bsd-p)))))
+
+(ert-deftest test-host-environment-macos-p-true-on-darwin ()
+ "Normal: env-macos-p returns t when system-type is darwin."
+ (let ((system-type 'darwin))
+ (should (env-macos-p))))
+
+(ert-deftest test-host-environment-macos-p-false-on-other-platforms ()
+ "Boundary: env-macos-p returns nil on every non-Darwin platform."
+ (dolist (other '(gnu/linux berkeley-unix windows-nt cygwin ms-dos))
+ (let ((system-type other))
+ (should-not (env-macos-p)))))
+
+(ert-deftest test-host-environment-windows-p-true-on-each-windows-variant ()
+ "Normal: env-windows-p returns t on cygwin, windows-nt, and ms-dos."
+ (dolist (win '(cygwin windows-nt ms-dos))
+ (let ((system-type win))
+ (should (env-windows-p)))))
+
+(ert-deftest test-host-environment-windows-p-false-on-unix-platforms ()
+ "Boundary: env-windows-p returns nil on Unix-family platforms."
+ (dolist (other '(gnu/linux darwin berkeley-unix))
+ (let ((system-type other))
+ (should-not (env-windows-p)))))
+
+(provide 'test-host-environment--platform-predicates)
+;;; test-host-environment--platform-predicates.el ends here