aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/read.expect
blob: 3c153f7335e8bdde28c0ab239c1e4329bab9bf8b (plain)
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
75
76
77
# vim: set filetype=expect:

proc expect_read_prompt {} {
    expect -re "\\r\\n?read> $"
}

proc expect_marker {text} {
    expect_prompt -re "\\r\\n@MARKER:$text@\\r\\n" {} unmatched {
        abort "Couldn't find marker line '$text'"
    }
}

spawn $fish

expect_prompt

# read

send_line "read foo"
expect_read_prompt
send_line "text"
expect_prompt
print_var_contents foo

send_line "read foo"
expect_read_prompt
send_line "again\r_marker 1"
expect_prompt
expect_marker 1
print_var_contents foo

send_line "read foo"
expect_read_prompt
send_line -h "bar\r_marker 2"
expect_prompt
expect_marker 2
print_var_contents foo

# read -n

send_line "read -n 3 foo"
expect_read_prompt
send_line -h "123_marker 3"
expect_prompt
expect_marker 3
print_var_contents foo

send_line "read -n 3 foo"
expect_read_prompt
send_line "456_marker 4"
expect_prompt
expect_marker 4
print_var_contents foo

send_line "read -n 12 foo bar"
expect_read_prompt
send_line "hello world!_marker 5"
expect_prompt
expect_marker 5
print_var_contents foo
print_var_contents bar

send_line "bind ` 'commandline -i test'`"
expect_prompt
send_line "read -n 4 foo"
expect_read_prompt
send_line "te`_marker 6"
expect_prompt
expect_marker 6
print_var_contents foo

send_line "read -n 4 foo"
expect_read_prompt
send_line -h "12`_marker 7"
expect_prompt
expect_marker 7
print_var_contents foo