Introduce a testing suite that is dedicated to aliases.
For now, check only if nested aliases work and if looping
aliases are detected successfully.

The looping aliases check for mixed execution is there but
expected to fail because there is no check in place yet.

Signed-off-by: Tim Schumacher <timsch...@gmx.de>
---

Those are the tests that I've come up with. It consists of tests
for nested aliases and looping aliases, both with internal calls
and external calls.

Unfortunately I don't have a fix for the last one yet, so I
marked it as expect_failure. The problem is that the test suite
is waiting a full minute until it aborts the running command
(which I guess should not take that long, as it blocks the whole
test suite for that span of time).

Should I try to decrease the timeout or should I remove that
test completely until I manage to get external calls fixed?

As a last thing, is there any better way to use single quotes
than to write '"'"'? It isn't that bad, but it is hard to read,
especially for bash newcomers.

 t/t0014-alias.sh | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100755 t/t0014-alias.sh

diff --git a/t/t0014-alias.sh b/t/t0014-alias.sh
new file mode 100755
index 000000000..6c1e34694
--- /dev/null
+++ b/t/t0014-alias.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+test_description='git command aliasing'
+
+. ./test-lib.sh
+
+test_expect_success 'setup environment' '
+       git init
+'
+
+test_expect_success 'nested aliases - internal execution' '
+       git config alias.nested-internal-1 nested-internal-2 &&
+       git config alias.nested-internal-2 status
+'
+
+test_expect_success 'nested aliases - mixed execution' '
+       git config alias.nested-external-1 "!git nested-external-2" &&
+       git config alias.nested-external-2 status
+'
+
+test_expect_success 'looping aliases - internal execution' '
+       git config alias.loop-internal-1 loop-internal-2 &&
+       git config alias.loop-internal-2 loop-internal-3 &&
+       git config alias.loop-internal-3 loop-internal-2 &&
+       test_must_fail git loop-internal-1 2>output &&
+       grep -q "fatal: alias loop detected: expansion of 
'"'"'loop-internal-1'"'"' does not terminate" output &&
+       rm output
+'
+
+test_expect_failure 'looping aliases - mixed execution' '
+       git config alias.loop-mixed-1 loop-mixed-2 &&
+       git config alias.loop-mixed-2 "!git loop-mixed-1" &&
+       test_must_fail git loop-mixed-1 2>output &&
+       grep -q "fatal: alias loop detected: expansion of 
'"'"'loop-mixed-1'"'"' does not terminate" output &&
+       rm output
+'
+
+test_done
-- 
2.19.0.rc2.1.g4c98b8d69.dirty

Reply via email to