xref: /freebsd/crypto/openssh/regress/sftp-glob.sh (revision 064bee341e6c590dedc1d33eb6025e1f446f33a6)
1*ce3adf43SDag-Erling Smørgrav#	$OpenBSD: sftp-glob.sh,v 1.4 2009/08/13 01:11:55 djm Exp $
2*ce3adf43SDag-Erling Smørgrav#	Placed in the Public Domain.
3*ce3adf43SDag-Erling Smørgrav
4*ce3adf43SDag-Erling Smørgravtid="sftp glob"
5*ce3adf43SDag-Erling Smørgrav
6*ce3adf43SDag-Erling Smørgravconfig_defined FILESYSTEM_NO_BACKSLASH && nobs="not supported on this platform"
7*ce3adf43SDag-Erling Smørgrav
8*ce3adf43SDag-Erling Smørgravsftp_ls() {
9*ce3adf43SDag-Erling Smørgrav	target=$1
10*ce3adf43SDag-Erling Smørgrav	errtag=$2
11*ce3adf43SDag-Erling Smørgrav	expected=$3
12*ce3adf43SDag-Erling Smørgrav	unexpected=$4
13*ce3adf43SDag-Erling Smørgrav	skip=$5
14*ce3adf43SDag-Erling Smørgrav	if test "x$skip" != "x" ; then
15*ce3adf43SDag-Erling Smørgrav		verbose "$tid: $errtag (skipped: $skip)"
16*ce3adf43SDag-Erling Smørgrav		return
17*ce3adf43SDag-Erling Smørgrav	fi
18*ce3adf43SDag-Erling Smørgrav	verbose "$tid: $errtag"
19*ce3adf43SDag-Erling Smørgrav	printf "ls -l %s" "${target}" | \
20*ce3adf43SDag-Erling Smørgrav		${SFTP} -b - -D ${SFTPSERVER} 2>/dev/null | \
21*ce3adf43SDag-Erling Smørgrav		grep -v "^sftp>" > ${RESULTS}
22*ce3adf43SDag-Erling Smørgrav	if [ $? -ne 0 ]; then
23*ce3adf43SDag-Erling Smørgrav		fail "$errtag failed"
24*ce3adf43SDag-Erling Smørgrav	fi
25*ce3adf43SDag-Erling Smørgrav	if test "x$expected" != "x" ; then
26*ce3adf43SDag-Erling Smørgrav	    if fgrep "$expected" ${RESULTS} >/dev/null 2>&1 ; then
27*ce3adf43SDag-Erling Smørgrav		:
28*ce3adf43SDag-Erling Smørgrav	    else
29*ce3adf43SDag-Erling Smørgrav		fail "$expected missing from $errtag results"
30*ce3adf43SDag-Erling Smørgrav	    fi
31*ce3adf43SDag-Erling Smørgrav	fi
32*ce3adf43SDag-Erling Smørgrav	if test "x$unexpected" != "x" && \
33*ce3adf43SDag-Erling Smørgrav	   fgrep "$unexpected" ${RESULTS} >/dev/null 2>&1 ; then
34*ce3adf43SDag-Erling Smørgrav		fail "$unexpected present in $errtag results"
35*ce3adf43SDag-Erling Smørgrav	fi
36*ce3adf43SDag-Erling Smørgrav	rm -f ${RESULTS}
37*ce3adf43SDag-Erling Smørgrav}
38*ce3adf43SDag-Erling Smørgrav
39*ce3adf43SDag-Erling SmørgravBASE=${OBJ}/glob
40*ce3adf43SDag-Erling SmørgravRESULTS=${OBJ}/results
41*ce3adf43SDag-Erling SmørgravDIR=${BASE}/dir
42*ce3adf43SDag-Erling SmørgravDATA=${DIR}/file
43*ce3adf43SDag-Erling Smørgrav
44*ce3adf43SDag-Erling SmørgravGLOB1="${DIR}/g-wild*"
45*ce3adf43SDag-Erling SmørgravGLOB2="${DIR}/g-wildx"
46*ce3adf43SDag-Erling SmørgravQUOTE="${DIR}/g-quote\""
47*ce3adf43SDag-Erling SmørgravSLASH="${DIR}/g-sl\\ash"
48*ce3adf43SDag-Erling SmørgravESLASH="${DIR}/g-slash\\"
49*ce3adf43SDag-Erling SmørgravQSLASH="${DIR}/g-qs\\\""
50*ce3adf43SDag-Erling SmørgravSPACE="${DIR}/g-q space"
51*ce3adf43SDag-Erling Smørgrav
52*ce3adf43SDag-Erling Smørgravrm -rf ${BASE}
53*ce3adf43SDag-Erling Smørgravmkdir -p ${DIR}
54*ce3adf43SDag-Erling Smørgravtouch "${DATA}" "${GLOB1}" "${GLOB2}" "${QUOTE}" "${SPACE}"
55*ce3adf43SDag-Erling Smørgravtest "x$nobs" = "x" && touch "${QSLASH}" "${ESLASH}" "${SLASH}"
56*ce3adf43SDag-Erling Smørgrav
57*ce3adf43SDag-Erling Smørgrav#       target                   message                expected     unexpected
58*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/fil*"            "file glob"            "${DATA}"    ""
59*ce3adf43SDag-Erling Smørgravsftp_ls "${BASE}/d*"             "dir glob"             "`basename ${DATA}`" ""
60*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-wild\"*\""     "quoted glob"          "g-wild*"    "g-wildx"
61*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-wild\*"        "escaped glob"         "g-wild*"    "g-wildx"
62*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-quote\\\""     "escaped quote"        "g-quote\""  ""
63*ce3adf43SDag-Erling Smørgravsftp_ls "\"${DIR}/g-quote\\\"\"" "quoted quote"         "g-quote\""  ""
64*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-quote\"'"     "single-quoted quote"  "g-quote\""  ""
65*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-q\\ space"     "escaped space"        "g-q space"  ""
66*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-q space'"     "quoted space"         "g-q space"  ""
67*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-sl\\\\ash"     "escaped slash"        "g-sl\\ash"  "" "$nobs"
68*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-sl\\\\ash'"   "quoted slash"         "g-sl\\ash"  "" "$nobs"
69*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-slash\\\\"     "escaped slash at EOL" "g-slash\\"  "" "$nobs"
70*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-slash\\\\'"   "quoted slash at EOL"  "g-slash\\"  "" "$nobs"
71*ce3adf43SDag-Erling Smørgravsftp_ls "${DIR}/g-qs\\\\\\\""    "escaped slash+quote"  "g-qs\\\""   "" "$nobs"
72*ce3adf43SDag-Erling Smørgravsftp_ls "'${DIR}/g-qs\\\\\"'"    "quoted slash+quote"   "g-qs\\\""   "" "$nobs"
73*ce3adf43SDag-Erling Smørgrav
74*ce3adf43SDag-Erling Smørgravrm -rf ${BASE}
75*ce3adf43SDag-Erling Smørgrav
76