summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordtucker <dtucker@openbsd.org>2018-04-06 04:18:35 +0000
committerdtucker <dtucker@openbsd.org>2018-04-06 04:18:35 +0000
commit85d93225d7647ba6b2633a061c6ac89bbd9e78b8 (patch)
treed16bdc692e5b4644429a81cff3509f561fb65625
parentrelax checking of authorized_keys environment="..." options to allow (diff)
downloadwireguard-openbsd-85d93225d7647ba6b2633a061c6ac89bbd9e78b8.tar.xz
wireguard-openbsd-85d93225d7647ba6b2633a061c6ac89bbd9e78b8.zip
Add test for username options parsing order, prompted by bz#2849.
-rw-r--r--regress/usr.bin/ssh/sshcfgparse.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/regress/usr.bin/ssh/sshcfgparse.sh b/regress/usr.bin/ssh/sshcfgparse.sh
index 010e028656c..26d4a6f3cb7 100644
--- a/regress/usr.bin/ssh/sshcfgparse.sh
+++ b/regress/usr.bin/ssh/sshcfgparse.sh
@@ -1,4 +1,4 @@
-# $OpenBSD: sshcfgparse.sh,v 1.2 2016/07/14 01:24:21 dtucker Exp $
+# $OpenBSD: sshcfgparse.sh,v 1.3 2018/04/06 04:18:35 dtucker Exp $
# Placed in the Public Domain.
tid="ssh config parse"
@@ -25,5 +25,16 @@ f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o clearallforwardings=no h | \
awk '/clearallforwardings/{print $2}'`
test "$f" = "no" || fail "clearallforwardings override"
+verbose "user first match"
+user=`awk '$1=="User" {print $2}' $OBJ/ssh_config`
+f=`${SSH} -GF $OBJ/ssh_config host | awk '/^user /{print $2}'`
+test "$f" = "$user" || fail "user from config, expected '$user' got '$f'"
+f=`${SSH} -GF $OBJ/ssh_config -o user=foo -l bar baz@host | awk '/^user /{print $2}'`
+test "$f" = "foo" || fail "user first match -oUser, expected 'foo' got '$f' "
+f=`${SSH} -GF $OBJ/ssh_config -lbar baz@host user=foo baz@host | awk '/^user /{print $2}'`
+test "$f" = "bar" || fail "user first match -l, expected 'bar' got '$f'"
+f=`${SSH} -GF $OBJ/ssh_config baz@host -o user=foo -l bar baz@host | awk '/^user /{print $2}'`
+test "$f" = "baz" || fail "user first match user@host, expected 'baz' got '$f'"
+
# cleanup
rm -f $OBJ/ssh_config.[012]