patch 7.4.2162
Problem:    Result of getcompletion('', 'sign') depends on previous
            completion.
Solution:   Call set_context_in_sign_cmd(). (Dominique Pelle)
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 12194cd..e2c1876 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -138,6 +138,19 @@
     call assert_equal(keys, l)
   endif
 
+  if has('signs')
+    sign define Testing linehl=Comment
+    let l = getcompletion('', 'sign')
+    let cmds = ['define', 'jump', 'list', 'place', 'undefine', 'unplace']
+    call assert_equal(cmds, l)
+    " using cmdline completion must not change the result
+    call feedkeys(":sign list \<c-d>\<c-c>", 'xt')
+    let l = getcompletion('', 'sign')
+    call assert_equal(cmds, l)
+    let l = getcompletion('list ', 'sign')
+    call assert_equal(['Testing'], l)
+  endif
+
   " For others test if the name is recognized.
   let names = ['buffer', 'environment', 'file_in_path',
 	\ 'mapping', 'shellcmd', 'tag', 'tag_listfiles', 'user']
@@ -150,9 +163,6 @@
   if has('profile')
     call add(names, 'syntime')
   endif
-  if has('signs')
-    call add(names, 'sign')
-  endif
 
   set tags=Xtags
   call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//", "word\tfile\tcmd"], 'Xtags')