upstream commit

Add a test for ssh(1)'s config file parsing.

Upstream-Regress-ID: 558b7f4dc45cc3761cc3d3e889b9f3c5bc91e601
diff --git a/regress/Makefile b/regress/Makefile
index 03661e1..08fd82d 100644
--- a/regress/Makefile
+++ b/regress/Makefile
@@ -1,4 +1,4 @@
-#	$OpenBSD: Makefile,v 1.87 2016/04/15 02:55:53 djm Exp $
+#	$OpenBSD: Makefile,v 1.88 2016/06/03 04:10:41 dtucker Exp $
 
 REGRESS_TARGETS=	unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec
 tests:		prep $(REGRESS_TARGETS)
@@ -54,6 +54,7 @@
 		multiplex \
 		reexec \
 		brokenkeys \
+		sshcfgparse \
 		cfgparse \
 		cfgmatch \
 		addrmatch \
diff --git a/regress/sshcfgparse.sh b/regress/sshcfgparse.sh
new file mode 100644
index 0000000..f8645d6
--- /dev/null
+++ b/regress/sshcfgparse.sh
@@ -0,0 +1,29 @@
+#	$OpenBSD: sshcfgparse.sh,v 1.1 2016/06/03 04:10:41 dtucker Exp $
+#	Placed in the Public Domain.
+
+tid="ssh config parse"
+
+verbose "reparse minimal config"
+(${SSH} -G -F $OBJ/ssh_config somehost >$OBJ/ssh_config.1 &&
+ ${SSH} -G -F $OBJ/ssh_config.1 somehost >$OBJ/ssh_config.2 &&
+ diff $OBJ/ssh_config.1 $OBJ/ssh_config.2) || fail "reparse minimal config"
+
+verbose "ssh -W opts"
+f=`${SSH} -GF $OBJ/ssh_config host | awk '/exitonforwardfailure/{print $2}'`
+test "$f" == "no" || fail "exitonforwardfailure default"
+f=`${SSH} -GF $OBJ/ssh_config -W a:1 h | awk '/exitonforwardfailure/{print $2}'`
+test "$f" == "yes" || fail "exitonforwardfailure enable"
+f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o exitonforwardfailure=no h | \
+    awk '/exitonforwardfailure/{print $2}'`
+test "$f" == "no" || fail "exitonforwardfailure override"
+
+f=`${SSH} -GF $OBJ/ssh_config host | awk '/clearallforwardings/{print $2}'`
+test "$f" == "no" || fail "clearallforwardings default"
+f=`${SSH} -GF $OBJ/ssh_config -W a:1 h | awk '/clearallforwardings/{print $2}'`
+test "$f" == "yes" || fail "clearallforwardings enable"
+f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o clearallforwardings=no h | \
+    awk '/clearallforwardings/{print $2}'`
+test "$f" == "no" || fail "clearallforwardings override"
+
+# cleanup
+rm -f $OBJ/ssh_config.[012]