File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / lrzsz / testsuite / lrzsz / command.exp
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Thu Oct 24 15:49:50 2019 UTC (4 years, 8 months ago) by misho
Branches: lrzsz, MAIN
CVS tags: v0_12_20p5, HEAD
lrzsz ver 0.12.20

load_lib "lrzsz.exp"
if $tracelevel then {
    strace $tracelevel
}

# i would really like to throw that code out of zmodem ...
# but then again: somebody might need it, and it's disabled by default.
# so check first: is it _really_ disabled?

#puts RES=[getenv ZMODEM_RESTRICTED]
if {[string compare [getenv ZMODEM_RESTRICTED] ""] != 0} {
	unsetenv ZMODEM_RESTRICTED
}

proc runcommand { name sz szopts rz rzopts expect_fail} {
	global MYTEMP
	global testdir
	set magic XXXYYYZZZ
	verbose "Testing $name" 1
	catch "exec rm -f $testdir/command_tmp"
	set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts"  \
	"\\\"echo $magic \\>$testdir/command_tmp\\\"" "mkdir,rmdir" dummy]
	if {[file exists  $testdir/command_tmp] == 0} {
		set fails 1;
	}
	if {$fails == 0} {
		catch "set dummy [grep $testdir/command_tmp $magic]"
		if [string compare $magic $dummy] {
			incr fails
			send_log "grep fetch not $magic\n";
		}
	} else {
		send_log "call failed\n";
	}
	if [string compare $expect_fail "OK"] {
		if {$fails > 0} {
			set fails 0;
		} else {
			set fails 1;
		}
	}
	if {$fails == 0} {
		pass "$name"
	} else {
		fail "$name"
	}
}

runcommand command-disabled $objdir/../src/lsz "-q -c" \
    "$objdir/../src/lrz" "" FAIL
runcommand command-enabled-restricted $objdir/../src/lsz "-q -c" \
    "$objdir/../src/lrz" "-C" FAIL
runcommand command-enabled-unrestricted $objdir/../src/lsz "-q -c" \
    "$objdir/../src/lrz" "--unrestrict --allow-commands" OK
# same for -i
runcommand i-command-disabled $objdir/../src/lsz "-q -i" \
    "$objdir/../src/lrz" "" FAIL
runcommand i-command-enabled-restricted $objdir/../src/lsz "-q -i" \
    "$objdir/../src/lrz" "-C" FAIL
runcommand i-command-enabled-unrestricted $objdir/../src/lsz "-q -i" \
    "$objdir/../src/lrz" "--unrestrict --allow-commands" OK

# basic tests done

#set and unset ZMODEM_RESTRICTED. Should work.
runcommand command-restricted-by-env "$objdir/../src/lsz" "-q -c" \
    "env ZMODEM_RESTRICTED=1 sh -c '$objdir/../src/lrz -qUC'" "" OK
#    "strace -vfs 128 -o /tmp/o2 env ZMODEM_RESTRICTED=1 sh -c \"$objdir/../src/lrz -qUC\"" "" OK
# must not work.
runcommand command-rbash-receiver "$objdir/../src/lsz" "-q -c" \
    "env SHELL=rbash sh -c '$objdir/../src/lrz -qUC'" "" FAIL
# must not work.
runcommand command-rbash-sender "env SHELL=rbash sh -c '$objdir/../src/lsz -qc'" "" \
    "$objdir/../src/lrz" "-qUC" FAIL


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>