diff options
author | Kevin Ballard <kevin@sb.org> | 2014-09-07 19:11:34 -0700 |
---|---|---|
committer | Kevin Ballard <kevin@sb.org> | 2014-09-07 23:56:59 -0700 |
commit | 190712d4b0fe97f8437b2f3c9b642dd5c46cf60f (patch) | |
tree | c023bb8866a40e5d278b6ab51256b1429cedf456 /tests/read.expect | |
parent | efb1467e4ec70016204baaa9b88af658debbf973 (diff) |
Add a test harness for interactive behavior
Add a test harness that uses `expect` to drive Fish to test interactive
behavior.
Include some tests for `read`.
Diffstat (limited to 'tests/read.expect')
-rw-r--r-- | tests/read.expect | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/read.expect b/tests/read.expect new file mode 100644 index 00000000..3c153f73 --- /dev/null +++ b/tests/read.expect @@ -0,0 +1,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 |