From beea98cec6e56fcff7abc63eda00fecb448a3a8c Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Sun, 27 Feb 2022 18:34:22 -0800 Subject: [PATCH 1/5] Move Eshell variable interpolation tests to their own file * test/lisp/eshell/eshell-tests.el (eshell-test/interp-cmd) (eshell-test/interp-lisp, eshell-test/interp-temp-cmd) (eshell-test/interp-concat, eshell-test/interp-concat-lisp) (eshell-test/interp-concat2, eshell-test/interp-concat-lisp2) (eshell-test/interp-cmd-external) (eshell-test/interp-cmd-external-concat, eshell-test/window-height) (eshell-test/window-width, eshell-test/last-result-var) (eshell-test/last-result-var2, eshell-test/last-arg-var): Move from here... * test/lisp/eshell/esh-var-test.el (esh-var-test/interp-lisp) (esh-var-test/interp-cmd, esh-var-test/interp-cmd-external) (esh-var-test/interp-temp-cmd, esh-var-test/interp-concat-lisp) (esh-var-test/interp-concat-lisp2, esh-var-test/interp-concat-cmd) (esh-var-test/interp-concat-cmd2) (esh-var-test/interp-concat-cmd-external, esh-var-test/window-height) (esh-var-test/window-width, esh-var-test/last-result-var) (esh-var-test/last-result-var2, esh-var-test/last-arg-var): ... to here. --- test/lisp/eshell/esh-var-tests.el | 111 ++++++++++++++++++++++++++++++ test/lisp/eshell/eshell-tests.el | 68 ------------------ 2 files changed, 111 insertions(+), 68 deletions(-) create mode 100644 test/lisp/eshell/esh-var-tests.el diff --git a/test/lisp/eshell/esh-var-tests.el b/test/lisp/eshell/esh-var-tests.el new file mode 100644 index 0000000000..8d803e5ca4 --- /dev/null +++ b/test/lisp/eshell/esh-var-tests.el @@ -0,0 +1,111 @@ +;;; esh-var-tests.el --- esh-var test suite -*- lexical-binding:t -*- + +;; Copyright (C) 2022 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs 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. + +;; GNU Emacs 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 GNU Emacs. If not, see . + +;;; Commentary: + +;; Tests for Eshell's variable handling. + +;;; Code: + +(require 'ert) +(require 'esh-mode) +(require 'eshell) + +(require 'eshell-tests-helpers + (expand-file-name "eshell-tests-helpers" + (file-name-directory (or load-file-name + default-directory)))) + +;;; Tests: + + +;; Variable interpolation + +(ert-deftest esh-var-test/interp-lisp () + "Interpolate Lisp form evaluation" + (should (equal (eshell-test-command-result "+ $(+ 1 2) 3") 6))) + +(ert-deftest esh-var-test/interp-cmd () + "Interpolate command result" + (should (equal (eshell-test-command-result "+ ${+ 1 2} 3") 6))) + +(ert-deftest esh-var-test/interp-cmd-external () + "Interpolate command result from external command" + (skip-unless (executable-find "echo")) + (with-temp-eshell + (eshell-command-result-p "echo ${*echo hi}" + "hi\n"))) + +(ert-deftest esh-var-test/interp-temp-cmd () + "Interpolate command result redirected to temp file" + (should (equal (eshell-test-command-result "cat $") "hi"))) + +(ert-deftest esh-var-test/interp-concat-lisp () + "Interpolate and concat Lisp form" + (should (equal (eshell-test-command-result "+ $(+ 1 2)3 3") 36))) + +(ert-deftest esh-var-test/interp-concat-lisp2 () + "Interpolate and concat two Lisp forms" + (should (equal (eshell-test-command-result "+ $(+ 1 2)$(+ 1 2) 3") 36))) + +(ert-deftest esh-var-test/interp-concat-cmd () + "Interpolate and concat command" + (should (equal (eshell-test-command-result "+ ${+ 1 2}3 3") 36))) + +(ert-deftest esh-var-test/interp-concat-cmd2 () + "Interpolate and concat two commands" + (should (equal (eshell-test-command-result "+ ${+ 1 2}${+ 1 2} 3") 36))) + +(ert-deftest esh-var-test/interp-concat-cmd-external () + "Interpolate command result from external command with concatenation" + (skip-unless (executable-find "echo")) + (with-temp-eshell + (eshell-command-result-p "echo ${echo hi}-${*echo there}" + "hi-there\n"))) + + +;; Built-in variables + +(ert-deftest esh-var-test/window-height () + "$LINES should equal (window-height)" + (should (eshell-test-command-result "= $LINES (window-height)"))) + +(ert-deftest esh-var-test/window-width () + "$COLUMNS should equal (window-width)" + (should (eshell-test-command-result "= $COLUMNS (window-width)"))) + +(ert-deftest esh-var-test/last-result-var () + "Test using the \"last result\" ($$) variable" + (with-temp-eshell + (eshell-command-result-p "+ 1 2; + $$ 2" + "3\n5\n"))) + +(ert-deftest esh-var-test/last-result-var2 () + "Test using the \"last result\" ($$) variable twice" + (with-temp-eshell + (eshell-command-result-p "+ 1 2; + $$ $$" + "3\n6\n"))) + +(ert-deftest esh-var-test/last-arg-var () + "Test using the \"last arg\" ($_) variable" + (with-temp-eshell + (eshell-command-result-p "+ 1 2; + $_ 4" + "3\n6\n"))) + +;; esh-var-tests.el ends here diff --git a/test/lisp/eshell/eshell-tests.el b/test/lisp/eshell/eshell-tests.el index eff4edd62c..e31db07c61 100644 --- a/test/lisp/eshell/eshell-tests.el +++ b/test/lisp/eshell/eshell-tests.el @@ -85,48 +85,6 @@ eshell-test/subcommand-lisp e.g. \"{(+ 1 2)} 3\" => 3" (should (equal (eshell-test-command-result "{(+ 1 2)} 3") 3))) -(ert-deftest eshell-test/interp-cmd () - "Interpolate command result" - (should (equal (eshell-test-command-result "+ ${+ 1 2} 3") 6))) - -(ert-deftest eshell-test/interp-lisp () - "Interpolate Lisp form evaluation" - (should (equal (eshell-test-command-result "+ $(+ 1 2) 3") 6))) - -(ert-deftest eshell-test/interp-temp-cmd () - "Interpolate command result redirected to temp file" - (should (equal (eshell-test-command-result "cat $") "hi"))) - -(ert-deftest eshell-test/interp-concat () - "Interpolate and concat command" - (should (equal (eshell-test-command-result "+ ${+ 1 2}3 3") 36))) - -(ert-deftest eshell-test/interp-concat-lisp () - "Interpolate and concat Lisp form" - (should (equal (eshell-test-command-result "+ $(+ 1 2)3 3") 36))) - -(ert-deftest eshell-test/interp-concat2 () - "Interpolate and concat two commands" - (should (equal (eshell-test-command-result "+ ${+ 1 2}${+ 1 2} 3") 36))) - -(ert-deftest eshell-test/interp-concat-lisp2 () - "Interpolate and concat two Lisp forms" - (should (equal (eshell-test-command-result "+ $(+ 1 2)$(+ 1 2) 3") 36))) - -(ert-deftest eshell-test/interp-cmd-external () - "Interpolate command result from external command" - (skip-unless (executable-find "echo")) - (with-temp-eshell - (eshell-command-result-p "echo ${*echo hi}" - "hi\n"))) - -(ert-deftest eshell-test/interp-cmd-external-concat () - "Interpolate command result from external command with concatenation" - (skip-unless (executable-find "echo")) - (with-temp-eshell - (eshell-command-result-p "echo ${echo hi}-${*echo there}" - "hi-there\n"))) - (ert-deftest eshell-test/pipe-headproc () "Check that piping a non-process to a process command waits for the process" (skip-unless (executable-find "cat")) @@ -152,32 +110,6 @@ eshell-test/pipe-headproc-stdin (eshell-wait-for-subprocess) (eshell-match-result "OLLEH\n"))) -(ert-deftest eshell-test/window-height () - "$LINES should equal (window-height)" - (should (eshell-test-command-result "= $LINES (window-height)"))) - -(ert-deftest eshell-test/window-width () - "$COLUMNS should equal (window-width)" - (should (eshell-test-command-result "= $COLUMNS (window-width)"))) - -(ert-deftest eshell-test/last-result-var () - "Test using the \"last result\" ($$) variable" - (with-temp-eshell - (eshell-command-result-p "+ 1 2; + $$ 2" - "3\n5\n"))) - -(ert-deftest eshell-test/last-result-var2 () - "Test using the \"last result\" ($$) variable twice" - (with-temp-eshell - (eshell-command-result-p "+ 1 2; + $$ $$" - "3\n6\n"))) - -(ert-deftest eshell-test/last-arg-var () - "Test using the \"last arg\" ($_) variable" - (with-temp-eshell - (eshell-command-result-p "+ 1 2; + $_ 4" - "3\n6\n"))) - (ert-deftest eshell-test/inside-emacs-var () "Test presence of \"INSIDE_EMACS\" in subprocesses" (with-temp-eshell -- 2.25.1