gonzui 1.2-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS.txt +9 -0
- data/History.txt +5539 -0
- data/Manifest.txt +115 -0
- data/PostInstall.txt +17 -0
- data/README.rdoc +149 -0
- data/Rakefile +28 -0
- data/bin/gonzui-db +167 -0
- data/bin/gonzui-import +177 -0
- data/bin/gonzui-remove +58 -0
- data/bin/gonzui-search +68 -0
- data/bin/gonzui-server +176 -0
- data/bin/gonzui-update +53 -0
- data/data/gonzui/catalog/catalog.ja +80 -0
- data/data/gonzui/doc/favicon.ico +0 -0
- data/data/gonzui/doc/folder.png +0 -0
- data/data/gonzui/doc/gonzui.css +279 -0
- data/data/gonzui/doc/gonzui.js +111 -0
- data/data/gonzui/doc/text.png +0 -0
- data/data/gonzuirc.sample +29 -0
- data/ext/autopack/autopack.c +88 -0
- data/ext/autopack/extconf.rb +3 -0
- data/ext/delta/delta.c +147 -0
- data/ext/delta/extconf.rb +5 -0
- data/ext/texttokenizer/extconf.rb +5 -0
- data/ext/texttokenizer/texttokenizer.c +93 -0
- data/ext/xmlformatter/extconf.rb +5 -0
- data/ext/xmlformatter/xmlformatter.c +207 -0
- data/lib/gonzui.rb +59 -0
- data/lib/gonzui/apt.rb +193 -0
- data/lib/gonzui/autopack.so +0 -0
- data/lib/gonzui/bdbdbm.rb +118 -0
- data/lib/gonzui/cmdapp.rb +14 -0
- data/lib/gonzui/cmdapp/app.rb +175 -0
- data/lib/gonzui/cmdapp/search.rb +134 -0
- data/lib/gonzui/config.rb +117 -0
- data/lib/gonzui/content.rb +19 -0
- data/lib/gonzui/dbm.rb +673 -0
- data/lib/gonzui/deindexer.rb +162 -0
- data/lib/gonzui/delta.rb +49 -0
- data/lib/gonzui/delta.so +0 -0
- data/lib/gonzui/extractor.rb +347 -0
- data/lib/gonzui/fetcher.rb +309 -0
- data/lib/gonzui/gettext.rb +144 -0
- data/lib/gonzui/importer.rb +84 -0
- data/lib/gonzui/indexer.rb +316 -0
- data/lib/gonzui/info.rb +80 -0
- data/lib/gonzui/license.rb +100 -0
- data/lib/gonzui/logger.rb +48 -0
- data/lib/gonzui/monitor.rb +177 -0
- data/lib/gonzui/progressbar.rb +235 -0
- data/lib/gonzui/remover.rb +38 -0
- data/lib/gonzui/searcher.rb +330 -0
- data/lib/gonzui/searchquery.rb +235 -0
- data/lib/gonzui/searchresult.rb +111 -0
- data/lib/gonzui/texttokenizer.so +0 -0
- data/lib/gonzui/updater.rb +254 -0
- data/lib/gonzui/util.rb +415 -0
- data/lib/gonzui/vcs.rb +128 -0
- data/lib/gonzui/webapp.rb +25 -0
- data/lib/gonzui/webapp/advsearch.rb +123 -0
- data/lib/gonzui/webapp/filehandler.rb +24 -0
- data/lib/gonzui/webapp/jsfeed.rb +61 -0
- data/lib/gonzui/webapp/markup.rb +445 -0
- data/lib/gonzui/webapp/search.rb +269 -0
- data/lib/gonzui/webapp/servlet.rb +319 -0
- data/lib/gonzui/webapp/snippet.rb +155 -0
- data/lib/gonzui/webapp/source.rb +37 -0
- data/lib/gonzui/webapp/stat.rb +137 -0
- data/lib/gonzui/webapp/top.rb +63 -0
- data/lib/gonzui/webapp/uri.rb +140 -0
- data/lib/gonzui/webapp/webrick.rb +48 -0
- data/lib/gonzui/webapp/xmlformatter.so +0 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/makemanifest.rb +21 -0
- data/tasks/extconf.rake +13 -0
- data/tasks/extconf/autopack.rake +43 -0
- data/tasks/extconf/delta.rake +43 -0
- data/tasks/extconf/texttokenizer.rake +43 -0
- data/tasks/extconf/xmlformatter.rake +43 -0
- data/test/_external_tools.rb +13 -0
- data/test/_test-util.rb +142 -0
- data/test/foo/Makefile.foo +66 -0
- data/test/foo/bar.c +5 -0
- data/test/foo/bar.h +6 -0
- data/test/foo/foo.c +25 -0
- data/test/foo/foo.spec +33 -0
- data/test/test_apt.rb +42 -0
- data/test/test_autopack_extn.rb +7 -0
- data/test/test_bdbdbm.rb +79 -0
- data/test/test_cmdapp-app.rb +35 -0
- data/test/test_cmdapp-search.rb +99 -0
- data/test/test_config.rb +28 -0
- data/test/test_content.rb +15 -0
- data/test/test_dbm.rb +171 -0
- data/test/test_deindexer.rb +50 -0
- data/test/test_delta.rb +66 -0
- data/test/test_extractor.rb +78 -0
- data/test/test_fetcher.rb +75 -0
- data/test/test_gettext.rb +50 -0
- data/test/test_gonzui.rb +11 -0
- data/test/test_helper.rb +10 -0
- data/test/test_importer.rb +56 -0
- data/test/test_indexer.rb +37 -0
- data/test/test_info.rb +82 -0
- data/test/test_license.rb +49 -0
- data/test/test_logger.rb +60 -0
- data/test/test_monitor.rb +23 -0
- data/test/test_searcher.rb +37 -0
- data/test/test_searchquery.rb +27 -0
- data/test/test_searchresult.rb +43 -0
- data/test/test_texttokenizer.rb +47 -0
- data/test/test_updater.rb +95 -0
- data/test/test_util.rb +149 -0
- data/test/test_vcs.rb +61 -0
- data/test/test_webapp-markup.rb +42 -0
- data/test/test_webapp-util.rb +19 -0
- data/test/test_webapp-xmlformatter.rb +19 -0
- metadata +292 -0
data/test/test_gonzui.rb
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_external_tools.rb'
|
4
|
+
require '_test-util'
|
5
|
+
|
6
|
+
class ImporterTest < Test::Unit::TestCase
|
7
|
+
include TestUtil
|
8
|
+
|
9
|
+
include FileUtils
|
10
|
+
|
11
|
+
def _test_import(url)
|
12
|
+
config = Gonzui::Config.new
|
13
|
+
remove_db(config)
|
14
|
+
make_archives
|
15
|
+
|
16
|
+
importer = Gonzui::Importer.new(config)
|
17
|
+
importer.import(url)
|
18
|
+
begin
|
19
|
+
importer.import(url)
|
20
|
+
assert(false)
|
21
|
+
rescue Gonzui::ImporterError => e
|
22
|
+
assert(true)
|
23
|
+
end
|
24
|
+
summary = importer.summary
|
25
|
+
assert(summary.is_a?(String))
|
26
|
+
assert(/\d+/.match(summary))
|
27
|
+
importer.finish
|
28
|
+
remove_db(config)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_import_archive
|
32
|
+
_test_import(URI.from_path(FOO_TGZ))
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_import_by_apt
|
36
|
+
_test_import(URI.for_apt("portmap"))
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_import_unreadable_file
|
40
|
+
tmp_directory = "tmp.unreadable.#{Process.pid}"
|
41
|
+
mkdir_p(tmp_directory)
|
42
|
+
|
43
|
+
unreadable = File.join(tmp_directory, "unreadable.txt")
|
44
|
+
File.open(unreadable, "w") {|f| f.puts("unreadable") }
|
45
|
+
readable = File.join(tmp_directory, "readable.txt")
|
46
|
+
File.open(readable, "w") {|f| f.puts("readable") }
|
47
|
+
|
48
|
+
File.chmod(0000, unreadable)
|
49
|
+
begin
|
50
|
+
_test_import(URI.from_path(tmp_directory))
|
51
|
+
ensure
|
52
|
+
File.chmod(0600, unreadable)
|
53
|
+
rm_rf(tmp_directory)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end if (APT_ && ARC_)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
|
5
|
+
class IndexerTest < Test::Unit::TestCase
|
6
|
+
include TestUtil
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@dbm = nil
|
10
|
+
@config = Gonzui::Config.new
|
11
|
+
end
|
12
|
+
def teardown
|
13
|
+
unless @dbm.nil?
|
14
|
+
@dbm.close rescue nil
|
15
|
+
end
|
16
|
+
@dbm = nil
|
17
|
+
remove_db(@config)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_index
|
21
|
+
remove_db(@config)
|
22
|
+
dbm = Gonzui::DBM.open(@config)
|
23
|
+
@dbm = dbm
|
24
|
+
path = File.join(File.dirname(__FILE__), "foo", "foo.c")
|
25
|
+
url = URI.from_path(File.expand_path(path))
|
26
|
+
content = Gonzui::Content.new(File.read(path), File.mtime(path))
|
27
|
+
source_url = URI.parse("file:///foo")
|
28
|
+
indexer = Gonzui::Indexer.new(@config, dbm, source_url, path, content)
|
29
|
+
indexer.index
|
30
|
+
dbm.flush_cache
|
31
|
+
assert_equal(1, dbm.get_ncontents)
|
32
|
+
assert(dbm.has_package?("foo"))
|
33
|
+
# assert(dbm.has_package?(File.basename(File.dirname(__FILE__))))
|
34
|
+
assert(dbm.has_word?("main"))
|
35
|
+
assert(dbm.consistent?)
|
36
|
+
end
|
37
|
+
end
|
data/test/test_info.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
|
5
|
+
class InfoTest < Test::Unit::TestCase
|
6
|
+
TYPE_TABLE = [:fundef, :funcall, :fundecl]
|
7
|
+
|
8
|
+
def test_word_info
|
9
|
+
word_id = 0
|
10
|
+
word = "foo"
|
11
|
+
path_id = 100
|
12
|
+
seqno = 0
|
13
|
+
byteno = 300
|
14
|
+
lineno = 200
|
15
|
+
TYPE_TABLE.each_with_index {|type, type_id|
|
16
|
+
values = [word_id, path_id, seqno, byteno, type_id, type, lineno]
|
17
|
+
info = Gonzui::WordInfo.new(*values)
|
18
|
+
assert_equal(word_id, info.word_id)
|
19
|
+
assert_equal(path_id, info.path_id)
|
20
|
+
assert_equal(lineno, info.lineno)
|
21
|
+
assert_equal(byteno, info.byteno)
|
22
|
+
assert_equal(type_id, info.type_id)
|
23
|
+
assert_equal(type, info.type)
|
24
|
+
|
25
|
+
assert_equal(values, info.values)
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_digest_info
|
30
|
+
byteno = 100
|
31
|
+
length = 5
|
32
|
+
TYPE_TABLE.each_with_index {|type, type_id|
|
33
|
+
values = [byteno, length, type_id, type]
|
34
|
+
info = Gonzui::DigestInfo.new(*values)
|
35
|
+
assert_equal(byteno, info.byteno)
|
36
|
+
assert_equal(length, length)
|
37
|
+
assert_equal(type_id, info.type_id)
|
38
|
+
assert_equal(values, info.values)
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_occurrence
|
43
|
+
o = Gonzui::Occurrence.new(10, 1, 5)
|
44
|
+
assert_equal((10...15), o.range)
|
45
|
+
assert_equal(15, o.end_byteno)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_content_info
|
49
|
+
i = {
|
50
|
+
:size => 123,
|
51
|
+
:mtime => Time.at(0),
|
52
|
+
:itime => Time.now,
|
53
|
+
:format_id => 0,
|
54
|
+
:license_id => 1,
|
55
|
+
:nlines => 10,
|
56
|
+
:indexed_p => true,
|
57
|
+
}
|
58
|
+
Gonzui::ContentInfo.members.each {|name|
|
59
|
+
name = name.intern
|
60
|
+
i.include?(name)
|
61
|
+
}
|
62
|
+
info = Gonzui::ContentInfo.new(i[:size], i[:mtime], i[:itime], i[:format_id],
|
63
|
+
i[:license_id], i[:nlines], i[:indexed_p])
|
64
|
+
info.members.each {|name|
|
65
|
+
name = name.intern
|
66
|
+
assert_equal(i[name], info.send(name))
|
67
|
+
}
|
68
|
+
i.each_key {|name|
|
69
|
+
assert_equal(i[name], info.send(name))
|
70
|
+
}
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_minus_mtime
|
74
|
+
size = 100
|
75
|
+
mtime = -1
|
76
|
+
itime = Time.now.to_i
|
77
|
+
format_id = license_id = nlines = indexed_p = 0
|
78
|
+
packed = Gonzui::ContentInfo.dump(size, mtime, itime, format_id,
|
79
|
+
license_id, nlines, indexed_p)
|
80
|
+
assert(packed.is_a?(String))
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
|
5
|
+
class LicenseTest < Test::Unit::TestCase
|
6
|
+
TestCases = [
|
7
|
+
["GPL1", false, "GNU General Public License version 1"],
|
8
|
+
["GPL2", false, "GNU General Public License version 2"],
|
9
|
+
["LGPL1", false, "GNU Library Public License version 1"],
|
10
|
+
["LGPL2", false, "GNU Library Public License version 2"],
|
11
|
+
["LGPL2.1", false, "GNU Lesser Public License version 2.1"],
|
12
|
+
["Other", false, "My own license version 999"],
|
13
|
+
|
14
|
+
["GPL2", false, "GNU GENERAL PUBLIC LICENSE VERSION 2"],
|
15
|
+
["GPL2", false, "GNU GENERAL PUBLIC LICENSE VERSION 2"],
|
16
|
+
["GPL2", false, "GNU/GENERAL/PUBLIC/LICENSE/VERSION/2"],
|
17
|
+
|
18
|
+
["GPL2", false, '
|
19
|
+
# You can redistribute it and/or modify it under the terms of
|
20
|
+
# the GNU General Public License version 2.
|
21
|
+
'
|
22
|
+
],
|
23
|
+
|
24
|
+
["GPL2", false, '
|
25
|
+
# You can redistribute it and/or modify it under the terms of
|
26
|
+
# the GNU General Public License version 2.
|
27
|
+
#
|
28
|
+
# This is foobar version 1. <= confusing!
|
29
|
+
'
|
30
|
+
],
|
31
|
+
|
32
|
+
["GPL2", true, '
|
33
|
+
This program is free software; you can redistribute it and/or modify
|
34
|
+
it under the terms of the GNU General Public License as published by
|
35
|
+
the Free Software Foundation; either version 2, or (at your option)
|
36
|
+
any later version.'
|
37
|
+
],
|
38
|
+
]
|
39
|
+
|
40
|
+
def test_license_detector
|
41
|
+
TestCases.each {|abbrev, allow_later_p, text|
|
42
|
+
detector = Gonzui::LicenseDetector.new(text)
|
43
|
+
license = detector.detect
|
44
|
+
assert_equal(abbrev, license.abbrev)
|
45
|
+
assert_equal(allow_later_p, license.allow_later?)
|
46
|
+
}
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
data/test/test_logger.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
require 'time'
|
5
|
+
|
6
|
+
class LoggerTest < Test::Unit::TestCase
|
7
|
+
def create_test_case
|
8
|
+
format = "foo %s"
|
9
|
+
arguments = ["bar"]
|
10
|
+
message = sprintf(format, arguments)
|
11
|
+
return format, arguments, message
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_log
|
15
|
+
format, arguments, message = create_test_case
|
16
|
+
|
17
|
+
strio = StringIO.new
|
18
|
+
logger = Gonzui::Logger.new(strio)
|
19
|
+
a = Time.now
|
20
|
+
logger.log(format, *arguments)
|
21
|
+
|
22
|
+
log = strio.string
|
23
|
+
m = /^(.*?) (.*)/.match(log)
|
24
|
+
assert(m.is_a?(MatchData))
|
25
|
+
assert_equal(message, m[2])
|
26
|
+
|
27
|
+
time = Time.parse(m[1])
|
28
|
+
assert(time.is_a?(Time))
|
29
|
+
assert((time - a).abs < 1) # within 1 sec
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_vlog
|
33
|
+
format, arguments, message = create_test_case
|
34
|
+
|
35
|
+
strio = StringIO.new
|
36
|
+
logger = Gonzui::Logger.new(strio, false)
|
37
|
+
logger.vlog(format, arguments)
|
38
|
+
assert(strio.string.empty?)
|
39
|
+
|
40
|
+
logger = Gonzui::Logger.new(strio, true)
|
41
|
+
logger.vlog(format, arguments)
|
42
|
+
assert(/^.*? #{message}/.match(strio.string))
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_monitor
|
46
|
+
format, arguments, message = create_test_case
|
47
|
+
strio1 = StringIO.new
|
48
|
+
strio2 = StringIO.new
|
49
|
+
logger = Gonzui::Logger.new(strio1)
|
50
|
+
logger.log(format, arguments)
|
51
|
+
assert_equal(false, strio1.string.empty?)
|
52
|
+
assert(strio2.string.empty?)
|
53
|
+
|
54
|
+
logger.monitor = strio2
|
55
|
+
logger.log(format, arguments)
|
56
|
+
assert_equal(false, strio2.string.empty?)
|
57
|
+
assert(strio1.string.length > strio2.string.length)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
|
5
|
+
class MonitorTest < Test::Unit::TestCase
|
6
|
+
include TestUtil
|
7
|
+
|
8
|
+
def foo
|
9
|
+
1
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_monitor
|
13
|
+
monitor = Gonzui::PerformanceMonitor.new
|
14
|
+
assert(monitor.empty?)
|
15
|
+
assert_equal("", monitor.format([MonitorTest, :foo]))
|
16
|
+
monitor.profile(self, :foo)
|
17
|
+
assert(!monitor.empty?)
|
18
|
+
summary = monitor.format([MonitorTest, :foo],
|
19
|
+
[MonitorTest, :foo])
|
20
|
+
assert(summary.is_a?(String))
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_external_tools'
|
4
|
+
require '_test-util'
|
5
|
+
|
6
|
+
class SearcherTest < Test::Unit::TestCase
|
7
|
+
include TestUtil
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@dbm = nil
|
11
|
+
end
|
12
|
+
def teardown
|
13
|
+
unless @dbm.nil?
|
14
|
+
@dbm.close rescue nil
|
15
|
+
end
|
16
|
+
@dbm = nil
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_searcher
|
20
|
+
config = Gonzui::Config.new
|
21
|
+
make_db(config)
|
22
|
+
dbm = Gonzui::DBM.open(config)
|
23
|
+
@dbm = dbm
|
24
|
+
search_query = Gonzui::SearchQuery.new(config, "foo")
|
25
|
+
searcher = Gonzui::Searcher.new(dbm, search_query, 100)
|
26
|
+
result = searcher.search
|
27
|
+
assert(result.is_a?(Gonzui::SearchResult))
|
28
|
+
assert(result.length > 0)
|
29
|
+
|
30
|
+
search_query = Gonzui::SearchQuery.new(config, "205438967we9tn8we09asf")
|
31
|
+
searcher = Gonzui::Searcher.new(dbm, search_query, 100)
|
32
|
+
result = searcher.search
|
33
|
+
assert_equal(0, result.length)
|
34
|
+
|
35
|
+
dbm.close
|
36
|
+
end
|
37
|
+
end if (ARC_)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_test-util'
|
4
|
+
|
5
|
+
class QueryTest < Test::Unit::TestCase
|
6
|
+
def test_query
|
7
|
+
config = Gonzui::Config.new
|
8
|
+
[
|
9
|
+
['foo bar', [["foo", nil], ["bar", nil]]],
|
10
|
+
['fundef:foo bar', [["foo", :fundef], ["bar", nil]]],
|
11
|
+
['"foo bar" baz', [["foo bar", nil], ["baz", nil]]]
|
12
|
+
].each {|query_string, parts|
|
13
|
+
query = Gonzui::SearchQuery.new(config, query_string)
|
14
|
+
query.each {|item|
|
15
|
+
assert(item.is_a?(Gonzui::QueryItem))
|
16
|
+
part = parts.shift
|
17
|
+
if item.phrase?
|
18
|
+
assert_equal(part.first, item.value.join(" "))
|
19
|
+
else
|
20
|
+
assert_equal(part.first, item.value)
|
21
|
+
end
|
22
|
+
assert_equal(part.last, item.property)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
require '_external_tools'
|
4
|
+
require '_test-util'
|
5
|
+
|
6
|
+
class SearchResultTest < Test::Unit::TestCase
|
7
|
+
include TestUtil
|
8
|
+
|
9
|
+
def _test_basic(result)
|
10
|
+
i = 0
|
11
|
+
result.each {|item| i += 1}
|
12
|
+
assert_equal(result.length, i)
|
13
|
+
result.length.times {|i| assert(result[i].is_a?(Gonzui::WordInfo)) }
|
14
|
+
|
15
|
+
assert_equal(result[0], result.first)
|
16
|
+
assert_equal(result[result.length - 1], result.last)
|
17
|
+
end
|
18
|
+
|
19
|
+
def _test_clear(result)
|
20
|
+
result.clear
|
21
|
+
assert(result.empty?)
|
22
|
+
assert(result.length == 0)
|
23
|
+
end
|
24
|
+
|
25
|
+
def search(config, key)
|
26
|
+
result = Gonzui::SearchResult.new
|
27
|
+
Gonzui::DBM.open(config) {|dbm|
|
28
|
+
dbm.find_all(key).each {|info| result.push(info) }
|
29
|
+
}
|
30
|
+
return result
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_search_result
|
34
|
+
config = Gonzui::Config.new
|
35
|
+
make_db(config)
|
36
|
+
|
37
|
+
result = search(config, "foo")
|
38
|
+
_test_basic(result)
|
39
|
+
_test_clear(result)
|
40
|
+
|
41
|
+
remove_db(config)
|
42
|
+
end
|
43
|
+
end if (ARC_)
|