aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorJosh Wainwright <josh.wainwright@ldra.com>2016-04-20 15:16:25 +0100
committerJosh Wainwright <josh.wainwright@ldra.com>2016-04-20 15:16:25 +0100
commite51d2aa5389e06e9d841a1fad3824cd4ffc7ca9d (patch)
tree6186f675294105cab60ccc3da6f270807dfd55d9 /lua
parent4675c3bf8d386e3af974a82dae823961864ba064 (diff)
downloadvis-e51d2aa5389e06e9d841a1fad3824cd4ffc7ca9d.tar.gz
vis-e51d2aa5389e06e9d841a1fad3824cd4ffc7ca9d.tar.xz
Split test lua code into individual test.lua files
Diffstat (limited to 'lua')
-rw-r--r--lua/append.lua7
-rw-r--r--lua/basic_cursor.in (renamed from lua/basic.in)0
-rw-r--r--lua/basic_cursor.lua32
-rw-r--r--lua/basic_file.in9
-rw-r--r--lua/basic_file.lua15
-rw-r--r--lua/delete.lua8
-rw-r--r--lua/getline.lua17
-rw-r--r--lua/setline.lua7
-rw-r--r--lua/test.sh53
-rw-r--r--lua/visrc.lua130
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