diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim
index 236ca30..fa9d97b 100644
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -14,6 +14,27 @@
     hide enew
     call assert_equal(3, len(getbufinfo({'bufloaded':1})))
 
+    set tabstop&vim
+    let b:editor = 'vim'
+    let l = getbufinfo('%')
+    call assert_equal(bufnr('%'), l[0].nr)
+    call assert_equal(8, l[0].options.tabstop)
+    call assert_equal('vim', l[0].variables.editor)
+    call assert_notequal(-1, index(l[0].windows, bufwinid('%')))
+
+    if has('signs')
+	call append(0, ['Linux', 'Windows', 'Mac'])
+	sign define Mark text=>> texthl=Search
+	exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%')
+	let l = getbufinfo('%')
+	call assert_equal(2, l[0].signs[0].id)
+	call assert_equal(3, l[0].signs[0].lnum)
+	call assert_equal('Mark', l[0].signs[0].name)
+	sign unplace *
+	sign undefine Mark
+	enew!
+    endif
+
     only
     let w1_id = win_getid()
     new
@@ -21,18 +42,42 @@
     tabnew | let w3_id = win_getid()
     new | let w4_id = win_getid()
     new | let w5_id = win_getid()
+    call setwinvar(0, 'signal', 'green')
     tabfirst
     let winlist = getwininfo()
     call assert_equal(5, len(winlist))
+    call assert_equal(winbufnr(2), winlist[1].bufnum)
+    call assert_equal(winheight(2), winlist[1].height)
+    call assert_equal(1, winlist[2].nr)
+    call assert_equal('auto', winlist[0].options.signcolumn)
     call assert_equal(2, winlist[3].tpnr)
+    call assert_equal('green', winlist[2].variables.signal)
+    call assert_equal(winwidth(1), winlist[0].width)
+    call assert_equal(w4_id, winlist[3].winid)
     let winfo = getwininfo(w5_id)[0]
     call assert_equal(2, winfo.tpnr)
     call assert_equal([], getwininfo(3))
 
+    call settabvar(1, 'space', 'build')
     let tablist = gettabinfo()
     call assert_equal(2, len(tablist))
     call assert_equal(3, len(tablist[1].windows))
+    call assert_equal(2, tablist[1].nr)
+    call assert_equal('build', tablist[0].variables.space)
+    call assert_equal(w2_id, tablist[0].windows[0])
     call assert_equal([], gettabinfo(3))
 
     tabonly | only
+
+    lexpr ''
+    lopen
+    copen
+    let winlist = getwininfo()
+    call assert_false(winlist[0].quickfix)
+    call assert_false(winlist[0].loclist)
+    call assert_true(winlist[1].quickfix)
+    call assert_true(winlist[1].loclist)
+    call assert_true(winlist[2].quickfix)
+    call assert_false(winlist[2].loclist)
+    wincmd t | only
 endfunction
