81.1% test coverage!

This commit is contained in:
Hisham Muhammad 2015-03-31 23:23:40 -03:00
parent 4c24a9b462
commit a7236559a7
1 changed files with 61 additions and 14 deletions

View File

@ -20,7 +20,7 @@ os.execute("killall htop")
os.execute("ps aux | grep '[s]leep 12345' | awk '{print $2}' | xargs kill 2> /dev/null") os.execute("ps aux | grep '[s]leep 12345' | awk '{print $2}' | xargs kill 2> /dev/null")
os.execute("cp ./default.htoprc ./test.htoprc") os.execute("cp ./default.htoprc ./test.htoprc")
rt:forkPty("HTOPRC=./test.htoprc ./htop") rt:forkPty("LC_ALL=C HTOPRC=./test.htoprc ./htop")
local stdscr, term_win local stdscr, term_win
-- Curses initalization needed even when not in visual mode -- Curses initalization needed even when not in visual mode
@ -68,7 +68,7 @@ end
local function send(key, times) local function send(key, times)
if times == 0 then return end if times == 0 then return end
for i = 1, times or 1 do for _ = 1, times or 1 do
delay(0.003) -- 30ms delay to avoid clobbering Esc sequences delay(0.003) -- 30ms delay to avoid clobbering Esc sequences
if type(key) == "string" then if type(key) == "string" then
for c in key:gmatch('.') do for c in key:gmatch('.') do
@ -138,8 +138,9 @@ local attrs = {
red_on_cyan = 22, red_on_cyan = 22,
} }
local function find_selected_y() local function find_selected_y(from)
for y = y_panelhdr + 1, rt:rows() - 1 do rt:update()
for y = from or (y_panelhdr + 1), rt:rows() - 1 do
local attr = rt:cellAttr(y-1, 1) local attr = rt:cellAttr(y-1, 1)
if attr == attrs.black_on_cyan then if attr == attrs.black_on_cyan then
return y return y
@ -161,7 +162,7 @@ describe("htop test suite", function()
running_it("performs incremental filter", function() running_it("performs incremental filter", function()
send("\\") send("\\")
send("busted") send("x\127bux\127sted") -- test backspace
send("\n") send("\n")
delay(0.2) delay(0.2)
rt:update() rt:update()
@ -188,7 +189,6 @@ describe("htop test suite", function()
local attr = rt:cellAttr(rt:rows() - 1, 30) local attr = rt:cellAttr(rt:rows() - 1, 30)
send("\n") send("\n")
delay(0.4) delay(0.4)
rt:update()
local line = find_selected_y() local line = find_selected_y()
local pid = (" "..tostring(unistd.getpid())):sub(-5) local pid = (" "..tostring(unistd.getpid())):sub(-5)
assert.equal(attr, attrs.black_on_cyan) assert.equal(attr, attrs.black_on_cyan)
@ -224,7 +224,6 @@ describe("htop test suite", function()
send("\n") send("\n")
send("s") send("s")
delay(1) delay(1)
delay(1)
send(ESC) send(ESC)
end) end)
@ -235,15 +234,48 @@ describe("htop test suite", function()
send("\n") send("\n")
send("l") send("l")
delay(1) delay(1)
delay(1)
send(ESC) send(ESC)
end) end)
running_it("cycles through meter modes", function() running_it("performs filtering in lsof", function()
send(curses.KEY_HOME)
send("/")
send("htop")
send("\n")
send("l")
send(curses.KEY_F4)
send("pipe")
delay(1)
local pipefd = check_string_at(1, 3, " 3")
send(ESC)
assert.equal(check(pipefd))
end)
running_it("performs search in lsof", function()
send(curses.KEY_HOME)
send("/")
send("htop")
send("\n")
send("l")
send(curses.KEY_F3)
send("pipe")
delay(1)
local line = find_selected_y(3)
local pipefd = check_string_at(1, line, " 3")
send(ESC)
assert.equal(check(pipefd))
end)
running_it("cycles through meter modes in the default meters", function()
send("S") send("S")
for _ = 1, 2 do
send(curses.KEY_RIGHT) send(curses.KEY_RIGHT)
for _ = 1, 3 do
send("\n", 4)
send(curses.KEY_DOWN) send(curses.KEY_DOWN)
send("\n\n\n\n\n") end
end
send(ESC) send(ESC)
end) end)
@ -366,6 +398,7 @@ describe("htop test suite", function()
send(curses.KEY_DOWN, 4) send(curses.KEY_DOWN, 4)
send(curses.KEY_F7, 4) send(curses.KEY_F7, 4)
end end
send(curses.KEY_F4, 4) -- cycle through meter modes
delay(0.15) delay(0.15)
rt:update() rt:update()
local with = check_string_at(x_metercol2, 2, item.string) local with = check_string_at(x_metercol2, 2, item.string)
@ -382,7 +415,7 @@ describe("htop test suite", function()
send(curses.KEY_F2) send(curses.KEY_F2)
send(curses.KEY_DOWN, 2) send(curses.KEY_DOWN, 2)
send(curses.KEY_RIGHT) send(curses.KEY_RIGHT)
for i = 1, 6 do for _ = 1, 6 do
send("\n") send("\n")
send(curses.KEY_DOWN) send(curses.KEY_DOWN)
end end
@ -421,7 +454,21 @@ describe("htop test suite", function()
end) end)
end end
for i = 1, 53 do running_it("shows detailed CPU with guest time", function()
for _ = 1, 2 do
send("S")
send(curses.KEY_DOWN)
send(curses.KEY_RIGHT)
send(curses.KEY_DOWN, 9)
send("\n")
send(curses.KEY_DOWN, 3)
send("\n")
send(curses.KEY_F10)
delay(0.1)
end
end)
for i = 1, 62 do
running_it("show column "..i, function() running_it("show column "..i, function()
send("S") send("S")
send(curses.KEY_END) send(curses.KEY_END)