about summary refs log tree commit diff stats
path: root/tests/unittests/test_keyhandlers.h
blob: 4be429a91d591417adbf35092238eafe993c3bdf (plain) (blame)
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
void append_to_empty(void **state);
void append_wide_to_empty(void **state);
void append_to_single(void **state);
void append_wide_to_single_non_wide(void **state);
void append_non_wide_to_single_wide(void **state);
void append_wide_to_single_wide(void **state);
void append_non_wide_when_overrun(void **state);

void insert_non_wide_to_non_wide(void **state);
void insert_single_non_wide_when_pad_scrolled(void **state);
void insert_many_non_wide_when_pad_scrolled(void **state);
void insert_single_non_wide_last_column(void **state);
void insert_many_non_wide_last_column(void **state);

void ctrl_left_when_no_input(void **state);
void ctrl_left_when_at_start(void **state);
void ctrl_left_when_in_first_word(void **state);
void ctrl_left_when_in_first_space(void **state);
void ctrl_left_when_at_start_of_second_word(void **state);
void ctrl_left_when_in_second_word(void **state);
void ctrl_left_when_at_end_of_second_word(void **state);
void ctrl_left_when_in_second_space(void **state);
void ctrl_left_when_at_start_of_third_word(void **state);
void ctrl_left_when_in_third_word(void **state);
void ctrl_left_when_at_end_of_third_word(void **state);
void ctrl_left_when_in_third_space(void **state);
void ctrl_left_when_at_end(void **state);
void ctrl_left_when_in_only_whitespace(void **state);
void ctrl_left_when_start_whitespace_start_of_word(void **state);
void ctrl_left_when_start_whitespace_middle_of_word(void **state);
void ctrl_left_in_whitespace_between_words(void **state);
void ctrl_left_in_whitespace_between_words_start_of_word(void **state);
void ctrl_left_in_whitespace_between_words_middle_of_word(void **state);
void ctrl_left_when_word_overrun_to_left(void **state);

void ctrl_right_when_no_input(void **state);
void ctrl_right_when_at_end(void **state);
void ctrl_right_one_word_at_start(void **state);
void ctrl_right_one_word_in_middle(void **state);
void ctrl_right_one_word_at_end(void **state);
void ctrl_right_two_words_from_middle_first(void **state);
void ctrl_right_two_words_from_end_first(void **state);
void ctrl_right_two_words_from_space(void **state);
void ctrl_right_two_words_from_start_second(void **state);
void ctrl_right_one_word_leading_whitespace(void **state);
void ctrl_right_two_words_in_whitespace(void **state);
void ctrl_right_trailing_whitespace_from_middle(void **state);
pan>it back # step 1: initialize var s: (stream int 4) var s2/ecx: (addr stream int) <- address s var tmp/eax: boolean <- stream-empty? s2 check-true tmp, "F - test-stream/empty?/0" tmp <- stream-full? s2 check-false tmp, "F - test-stream/full?/0" # step 2: write to stream var x: int copy-to x, 0x34 var x2/edx: (addr int) <- address x write-to-stream s2, x2 tmp <- stream-empty? s2 check-false tmp, "F - test-stream/empty?/1" tmp <- stream-full? s2 check-false tmp, "F - test-stream/full?/1" # step 3: modify the value written (should make no difference) copy-to x, 0 # step 4: read back var y: int var y2/ebx: (addr int) <- address y read-from-stream s2, y2 tmp <- stream-empty? s2 check-true tmp, "F - test-stream/empty?/2" tmp <- stream-full? s2 check-false tmp, "F - test-stream/full?/2" # we read back what was written check-ints-equal y, 0x34, "F - test-stream" } fn test-stream-full { # write an int to a stream of capacity 1 var s: (stream int 1) var s2/ecx: (addr stream int) <- address s var tmp/eax: boolean <- stream-full? s2 check-false tmp, "F - test-stream-full?/pre" var x: int var x2/edx: (addr int) <- address x write-to-stream s2, x2 tmp <- stream-full? s2 check-true tmp, "F - test-stream-full?" } fn test-fake-input-buffered-file { var foo: (handle buffered-file) var foo-ah/eax: (addr handle buffered-file) <- address foo populate-buffered-file-containing "abc", foo-ah var foo-addr/eax: (addr buffered-file) <- lookup foo var s: (stream byte 0x100) var result/ecx: (addr stream byte) <- address s read-line-buffered foo-addr, result check-stream-equal result, "abc", "F - test-fake-input-buffered-file" } fn test-fake-output-buffered-file { var foo: (handle buffered-file) var foo-ah/eax: (addr handle buffered-file) <- address foo new-buffered-file foo-ah var foo-addr/eax: (addr buffered-file) <- lookup foo write-buffered foo-addr, "abc" var s: (stream byte 0x100) var result/ecx: (addr stream byte) <- address s read-line-buffered foo-addr, result check-stream-equal result, "abc", "F - test-fake-output-buffered-file" }