-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinput_field_test.exp
executable file
·74 lines (65 loc) · 1.84 KB
/
input_field_test.exp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/expect --
#
# Copyright (C) 2014 SUSE LLC
# This library is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) version 3.0 of the License. This library
# is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
# License for more details. You should have received a copy of the GNU
# Lesser General Public License along with this library; if not, write
# to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
# Floor, Boston, MA 02110-1301 USA
spawn ./input_field_test --ncurses
sleep 1
# enlarge your input buffer now! satisfaction guaranteed! give us your $$$
match_max 100000
set timeout 15
expect_after {
default {
puts "OOPS"
puts "last matched <<$expect_out(buffer)>>"
exit 1
}
}
# The test needs the screen virtual terminal.
# man 1 screen
# Maybe it can be made to work without it but why bother.
set bsp "\177"
set esc "\033"
set del "${esc}\[3~"
set up "${esc}OA"
set down "${esc}OB"
set right "${esc}OC"
set left "${esc}OD"
set home "${esc}\[1~"
set end "${esc}\[4~"
expect "L*abel"
# Hi
send "Hi"
# Hello
send "${bsp}ello"
# Help
send "${left}${left}${del}${del}p"
# Send Help
send "${home}Send ${end}"
# Send Help Quick
send " Quick"
# &OK
send "${esc}o"
interact
set expected "Send Help Quick\n"
# This comparison thing should be factored out.
# Tcl programming should be kept to a minimum.
set f [open output.txt]
set actual [read $f]
close $f
if { $actual == $expected } {
puts stderr "OK"
} else {
puts stderr "Actual '$actual' expected '$expected'"
puts stderr "FAIL"
exit 1
}