expect.test   [plain text]


# Commands covered:  cat (UNIX), expect
#
# This file contains a collection of tests for one or more of the Tcl
# built-in commands.  Sourcing this file into Tcl runs the tests and
# generates output for errors.  No output means no errors were found.

if {[string compare test [info procs test]] == 1} then {source defs}

catch {unset x}

log_user 0

exp_spawn cat -u
exp_stty -echo < $spawn_out(slave,name)

test expect-1.1 {exact pattern} {
	expect "*"
	exp_send "a\r"
	
	set timeout 10
	set x 0
	expect -ex a {set x 1}
	set x
} {1}

test expect-1.2 {exact pattern buffering} {
	expect "*"
	exp_send "hiahi\r"
	
	set timeout 10
	set x 0
	expect -ex hi
	expect -ex hi {set x 1}
	set x
} {1}

# if only this test fails, then configure has guessed incorrectly and
# stty accesses the control terminal from stdout.  The quick fix is
# to edit expect_cf.h and define STTY_READS_STDOUT to 1.  (It should
# be commented out.)  If you figure out a way to fix the configure test,
# let me know.  Else, let me know a way to test for your particular
# machine and os version so it can be hardwired.
test expect-1.3 {exact pattern failure} {
	expect "*"
	exp_send "hiahi\r"
	
	set timeout 10
	set x 0
	expect -ex hi {set x 1}
	expect -ex hi {set x 2}
	expect -ex hi {set x 3}
	set x
} {2}

test expect-1.4 {glob pattern} {
	expect "*"
	exp_send "a\r"
	
	set timeout 10
	set x 0
	expect "a" {set x 1}
	set x
} {1}

test expect-1.5 {glob pattern buffering} {
	expect "*"
	exp_send "a\r"
	
	set timeout 10
	set x 0
	expect "*" {set x 1}
	set x
} {1}

test expect-1.6 {glob buffer} {
	expect "*"
	exp_send "philosophic\r"
	
	set timeout 10
	set x 0
	expect "hi"
	set x [string match *phi $expect_out(buffer)]
} {1}

test expect-1.7 {glob string} {
	expect "*"
	exp_send "philosophic\r"
	
	set timeout 10
	set x 0
	expect "hi"
	set expect_out(0,string)
} {hi}

close
wait