diff --git a/tests/search/importedby.txt b/tests/search/importedby.txt
index 6b3839d..23b83dd 100644
--- a/tests/search/importedby.txt
+++ b/tests/search/importedby.txt
@@ -6,3 +6,5 @@
 math/big, 88393
 github.com/go-openapi/strfmt, 11101
 gopkg.in/foo.v1, 1
+github.com/julieqiu/api-demo, 0
+github.com/beego/bee/cmd/commands/api, 476
diff --git a/tests/search/main.go b/tests/search/main.go
index 881d6be..72575f4 100755
--- a/tests/search/main.go
+++ b/tests/search/main.go
@@ -53,6 +53,7 @@
 )
 
 var testFiles = []string{
+	"tests/search/scripts/default.txt",
 	"tests/search/scripts/symbolsearch.txt",
 }
 
@@ -122,7 +123,7 @@
 		}
 		if want.symbol != got.SymbolName || want.pkg != got.PackagePath || st.mode != searchPage.SearchMode {
 			output = append(output,
-				fmt.Sprintf("query %s, mismatch result %d:\n\twant: %q %q [%q]\n\t got: %q %q [%q]\n",
+				fmt.Sprintf("query %s, mismatch result %d:\n\twant: %q %q [m=%q]\n\t got: %q %q [m=%q]\n",
 					st.query, i+1,
 					want.pkg, want.symbol, st.mode,
 					got.PackagePath, got.SymbolName, searchPage.SearchMode))
@@ -176,7 +177,7 @@
 			// have passed a test case result, another newline, or a comment,
 			// otherwise this file can't be valid.
 			if curr != posNewline && curr != posResult {
-				return nil, fmt.Errorf("invalid syntax on line %d: %q", num, line)
+				return nil, fmt.Errorf("invalid syntax on line %d (%q): %q", num, filename, line)
 			}
 			if curr == posResult {
 				// This is the first time that we have seen a newline for this
@@ -214,12 +215,18 @@
 				// an expected search result.
 				curr = posResult
 				parts := strings.Split(line, " ")
-				if len(parts) != 2 {
-					return nil, fmt.Errorf("invalid syntax on line %d: %q", num, line)
-				}
-				r := &searchResult{
-					symbol: parts[0],
-					pkg:    parts[1],
+				r := &searchResult{}
+				if test.mode == "symbol" {
+					if len(parts) != 2 {
+						return nil, fmt.Errorf("invalid syntax on line %d (%q): %q (want symbol result)", num, filename, line)
+					}
+					r.symbol = parts[0]
+					r.pkg = parts[1]
+				} else {
+					if len(parts) != 1 {
+						return nil, fmt.Errorf("invalid syntax on line %d (%q): %q (want package result)", num, filename, line)
+					}
+					r.pkg = parts[0]
 				}
 				test.results = append(test.results, r)
 			default:
diff --git a/tests/search/scripts/default.txt b/tests/search/scripts/default.txt
new file mode 100644
index 0000000..8d76491
--- /dev/null
+++ b/tests/search/scripts/default.txt
@@ -0,0 +1,15 @@
+# Copyright 2021 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+#
+# This file contains test scripts for queries and their default search mode.
+
+github.com defaults to package mode
+[package] github.com
+github.com/go-openapi/strfmt
+github.com/beego/bee/cmd/commands/api
+github.com/julieqiu/api-demo/tar
+
+gopkg.in search defaults to package mode
+[package] gopkg.in
+gopkg.in/foo.v1
