import of openssh-5.8p1
[openssh.git] / regress / reexec.sh
1 #       $OpenBSD: reexec.sh,v 1.5 2004/10/08 02:01:50 djm Exp $
2 #       Placed in the Public Domain.
3
4 tid="reexec tests"
5
6 DATA=/bin/ls${EXEEXT}
7 COPY=${OBJ}/copy
8 SSHD_ORIG=$SSHD${EXEEXT}
9 SSHD_COPY=$OBJ/sshd${EXEEXT}
10
11 # Start a sshd and then delete it
12 start_sshd_copy ()
13 {
14         cp $SSHD_ORIG $SSHD_COPY
15         SSHD=$SSHD_COPY
16         start_sshd
17         SSHD=$SSHD_ORIG
18 }
19
20 # Do basic copy tests
21 copy_tests ()
22 {
23         rm -f ${COPY}
24         for p in 1 2; do
25                 verbose "$tid: proto $p"
26                 ${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \
27                     cat ${DATA} > ${COPY}
28                 if [ $? -ne 0 ]; then
29                         fail "ssh cat $DATA failed"
30                 fi
31                 cmp ${DATA} ${COPY}             || fail "corrupted copy"
32                 rm -f ${COPY}
33         done
34 }
35
36 verbose "test config passing"
37
38 cp $OBJ/sshd_config $OBJ/sshd_config.orig
39 start_sshd
40 echo "InvalidXXX=no" >> $OBJ/sshd_config
41
42 copy_tests
43
44 $SUDO kill `$SUDO cat $PIDFILE`
45 rm -f $PIDFILE
46
47 cp $OBJ/sshd_config.orig $OBJ/sshd_config
48
49 verbose "test reexec fallback"
50
51 start_sshd_copy
52 rm -f $SSHD_COPY
53
54 copy_tests
55
56 $SUDO kill `$SUDO cat $PIDFILE`
57 rm -f $PIDFILE
58
59 verbose "test reexec fallback without privsep"
60
61 cp $OBJ/sshd_config.orig $OBJ/sshd_config
62 echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config
63
64 start_sshd_copy
65 rm -f $SSHD_COPY
66
67 copy_tests
68
69 $SUDO kill `$SUDO cat $PIDFILE`
70 rm -f $PIDFILE
71
72