gonzui 1.2-x86-mswin32-60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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_)
|