diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/append.lua | 7 | ||||
| -rw-r--r-- | lua/basic_cursor.in (renamed from lua/basic.in) | 0 | ||||
| -rw-r--r-- | lua/basic_cursor.lua | 32 | ||||
| -rw-r--r-- | lua/basic_file.in | 9 | ||||
| -rw-r--r-- | lua/basic_file.lua | 15 | ||||
| -rw-r--r-- | lua/delete.lua | 8 | ||||
| -rw-r--r-- | lua/getline.lua | 17 | ||||
| -rw-r--r-- | lua/setline.lua | 7 | ||||
| -rw-r--r-- | lua/test.sh | 53 | ||||
| -rw-r--r-- | lua/visrc.lua | 130 |
10 files changed, 133 insertions, 145 deletions
diff --git a/lua/append.lua b/lua/append.lua new file mode 100644 index 0000000..3039919 --- /dev/null +++ b/lua/append.lua @@ -0,0 +1,7 @@ +local win = vis.win +append(win, 1, {'inserted line 1', 'inserted line 2'}) +append(win, 4, 'inserted line 3') +win.cursor:to(7, 0) +append(win, '.', 'inserted line 4') +append(win, '$', 'inserted line 5') +vis:command('w! append.out') diff --git a/lua/basic.in b/lua/basic_cursor.in index f24e0a2..f24e0a2 100644 --- a/lua/basic.in +++ b/lua/basic_cursor.in diff --git a/lua/basic_cursor.lua b/lua/basic_cursor.lua new file mode 100644 index 0000000..5e45395 --- /dev/null +++ b/lua/basic_cursor.lua @@ -0,0 +1,32 @@ +local win = vis.win +local results = {} +-- At start cursor is on first line at start +results[1] = win.cursor.line == 1 +results[2] = win.cursor.col == 1 +results[3] = win.cursor.pos == 0 +-- Place cursor within text +win.cursor:to(5, 3) +results[4] = win.cursor.line == 5 +results[5] = win.cursor.col == 4 +results[6] = win.cursor.pos == 31 +-- Invalid location +win.cursor:to(0, 0) +results[7] = win.cursor.line == 1 +results[8] = win.cursor.col == 1 +results[9] = win.cursor.pos == 0 +-- Invalid location, negative (TODO these two seem flaky) +win.cursor:to(-20, -20) +results[10] = win.cursor.line == 7 or 'true' +results[11] = win.cursor.col == 1 +results[12] = win.cursor.pos == 0 or 'true' +-- Invalid location, after end of text, cursor ends up on last char +win.cursor:to(1000, 1000) +results[13] = win.cursor.line == 7 or 'true' +results[14] = win.cursor.col == 1 +results[15] = win.cursor.pos == 63 or 'true' + +delete(win, '%') +for i, res in pairs(results) do + append(win, i-1, tostring(res)) +end +vis:command('w! basic_cursor.true') diff --git a/lua/basic_file.in b/lua/basic_file.in new file mode 100644 index 0000000..f24e0a2 --- /dev/null +++ b/lua/basic_file.in @@ -0,0 +1,9 @@ +1: abc +2: def +3: ghi +4: jkl +5: mno +6: pqr +7: stu +8: vwx +9: yz_ diff --git a/lua/basic_file.lua b/lua/basic_file.lua new file mode 100644 index 0000000..bba3f78 --- /dev/null +++ b/lua/basic_file.lua @@ -0,0 +1,15 @@ +local win = vis.win +local results = {} +results[1] = win.file.name == 'basic_file.in' +results[2] = #win.file.lines == 9 +results[3] = win.file.newlines == 'nl' +results[4] = win.file.size == 63 +results[5] = win.file.lines[0] == '1: abc' +results[6] = win.file.lines[6] == '6: pqr' +results[7] = win.file.syntax or 'true' + +delete(win, '%') +for i = 1, #results do + append(win, i-1, tostring(results[i])) +end +vis:command('w! basic_file.true') diff --git a/lua/delete.lua b/lua/delete.lua new file mode 100644 index 0000000..9cb5a96 --- /dev/null +++ b/lua/delete.lua @@ -0,0 +1,8 @@ +local win = vis.win +delete(win, 2, 2) +delete(win, 3) +-- delete(win, '%') +win.cursor:to(5, 0) +delete(win, '.') +delete(win, '$') +vis:command('w! delete.out') diff --git a/lua/getline.lua b/lua/getline.lua new file mode 100644 index 0000000..dfe1c82 --- /dev/null +++ b/lua/getline.lua @@ -0,0 +1,17 @@ +local win = vis.win +local results = {} +local l = getline(win, 1) +results[1] = l == '1: abc' + +results[2] = table_cmp(getline(win, 1, 3), {'1: abc', '2: def', '3: ghi'}) +win.cursor:to(4, 0) +results[3] = getline(win, '.') == '4: jkl' +results[4] = getline(win, '$') == '9: yz_' +win.cursor:to(4, 0) +results[5] = table_cmp(getline(win, '.', 3), {'4: jkl', '5: mno', '6: pqr'}) + +delete(win, '%') +for i = 1, #results do + append(win, i-1, tostring(results[i])) +end +vis:command('w getline.true') diff --git a/lua/setline.lua b/lua/setline.lua new file mode 100644 index 0000000..f37a33f --- /dev/null +++ b/lua/setline.lua @@ -0,0 +1,7 @@ +local win = vis.win +setline(win, 1, 'setline 1') +setline(win, 3, {'setline 2', 'setline 3'}) +win.cursor:to(6, 0) +setline(win, '.', 'setline 4') +setline(win, '$', 'setline 5') +vis:command('w! setline.out') diff --git a/lua/test.sh b/lua/test.sh index bfc686e..f7c6fd4 100644 --- a/lua/test.sh +++ b/lua/test.sh @@ -1,38 +1,43 @@ #!/bin/bash -export VIS_PATH=. -export VIS_THEME=theme -printf "<Escape>Q:q<Enter>" | ../util/keys | vis - TESTS_OK=0 TESTS_RUN=0 -ref_files=$(find . -type f -name "*.ref") - -for ref in $ref_files; do - TESTS_RUN=$((TESTS_RUN + 1)) - out=${ref%.ref}.out - printf "%-30s" "$ref" - if cmp $ref $out 2> /dev/null; then - printf "PASS\n" - TESTS_OK=$((TESTS_OK + 1)) - else - printf "FAIL\n" - diff -u $ref $out - fi -done +export VIS_PATH=. +export VIS_THEME=theme -true_files=$(find . -type f -name "*.true") +if [ $# -gt 0 ]; then + test_files=$@ +else + test_files=$(find . -type f -name "*.in") +fi -for t in $true_files; do +for t in $test_files; do TESTS_RUN=$((TESTS_RUN + 1)) + t=${t%.in} + t=${t#./} +# vis $t.in + printf "<Escape>Q:q<Enter>" | ../util/keys | vis $t.in + printf "%-30s" "$t" - if ! grep -v true $t > /dev/null; then - printf "PASS\n" - TESTS_OK=$((TESTS_OK + 1)) + if [ -e $t.out ]; then + if cmp $t.ref $t.out 2> /dev/null; then + printf "PASS\n" + TESTS_OK=$((TESTS_OK + 1)) + else + printf "FAIL\n" + diff -u $t.ref $t.out + fi + elif [ -e $t.true ]; then + if ! grep -v true $t.true > /dev/null; then + printf "PASS\n" + TESTS_OK=$((TESTS_OK + 1)) + else + printf "FAIL\n" + grep -vn true $t.true + fi else printf "FAIL\n" - grep -vn true $t fi done diff --git a/lua/visrc.lua b/lua/visrc.lua index 96babde..dcd4d8e 100644 --- a/lua/visrc.lua +++ b/lua/visrc.lua @@ -2,125 +2,13 @@ require("utils") vis.events = {} vis.events.win_open = function(win) - -- Run tests when invoked by keybinding - -- TODO Could be possible to run with startup event, but this caused - -- loop with file open commands re-running the event. - vis:map(vis.MODE_NORMAL, "Q", function() - test_append() - test_delete() - test_setline() - test_getline() - test_basic_file() - test_basic_cursor() - end) -end - -test_basic_file = function() - vis:command('e basic.in') - local win = vis.win - local results = {} - results[1] = win.file.name == 'basic.in' - results[2] = #win.file.lines == 9 - results[3] = win.file.newlines == 'nl' - results[4] = win.file.size == 63 - results[5] = win.file.lines[0] == '1: abc' - results[6] = win.file.lines[6] == '6: pqr' - results[7] = win.file.syntax or 'true' - - delete(win, '%') - for i = 1, #results do - append(win, i-1, tostring(results[i])) - end - vis:command('w basic_file.true') -end - -test_basic_cursor = function() - vis:command('e basic.in') - local win = vis.win - local results = {} - -- At start cursor is on first line at start - results[1] = win.cursor.line == 1 - results[2] = win.cursor.col == 1 - results[3] = win.cursor.pos == 0 - -- Place cursor within text - win.cursor:to(5, 3) - results[4] = win.cursor.line == 5 - results[5] = win.cursor.col == 4 - results[6] = win.cursor.pos == 23 - -- Invalid location - win.cursor:to(0, 0) - results[7] = win.cursor.line == 1 - results[8] = win.cursor.col == 1 - results[9] = win.cursor.pos == 0 - -- Invalid location, negative (TODO these two seem flaky) - win.cursor:to(-20, -20) - results[10] = win.cursor.line == 7 or 'true' - results[11] = win.cursor.col == 1 - results[12] = win.cursor.pos == 0 or 'true' - -- Invalid location, after end of text, cursor ends up on last char - win.cursor:to(1000, 1000) - results[13] = win.cursor.line == 7 or 'true' - results[14] = win.cursor.col == 1 - results[15] = win.cursor.pos == 63 or 'true' - - delete(win, '%') - for i, res in pairs(results) do - append(win, i-1, tostring(res)) - end - vis:command('w basic_cursor.true') -end - -test_append = function() - vis:command('e append.in') - local win = vis.win - append(win, 1, {'inserted line 1', 'inserted line 2'}) - append(win, 4, 'inserted line 3') - win.cursor:to(7, 0) - append(win, '.', 'inserted line 4') - append(win, '$', 'inserted line 5') - vis:command('w append.out') -end - -test_delete = function() - vis:command('e delete.in') - local win = vis.win - delete(win, 2, 2) - delete(win, 3) --- delete(win, '%') - win.cursor:to(5, 0) - delete(win, '.') - delete(win, '$') - vis:command('w delete.out') -end - -test_setline = function() - vis:command('e setline.in') - local win = vis.win - setline(win, 1, 'setline 1') - setline(win, 3, {'setline 2', 'setline 3'}) - win.cursor:to(6, 0) - setline(win, '.', 'setline 4') - setline(win, '$', 'setline 5') - vis:command('w setline.out') -end - -test_getline = function() - vis:command('e getline.in') - local win = vis.win - local results = {} - local l = getline(win, 1) - results[1] = l == '1: abc' - - results[2] = table_cmp(getline(win, 1, 3), {'1: abc', '2: def', '3: ghi'}) - win.cursor:to(4, 0) - results[3] = getline(win, '.') == '4: jkl' - results[4] = getline(win, '$') == '9: yz_' - win.cursor:to(4, 0) - results[5] = table_cmp(getline(win, '.', 3), {'4: jkl', '5: mno', '6: pqr'}) - - delete(win, '%') - for i = 1, #results do - append(win, i-1, tostring(results[i])) - end - vis:command('w getline.true') + in_file = win.file.name + lua_file = string.gsub(in_file, '%.in$', '') + require(lua_file) +-- These both seem to cause crashes at the moment. +-- vis:command('q!') +-- +-- vis:map(vis.MODE_NORMAL, "Q", function() +-- vis:command('q!') +-- end) end |
