git-ds 0.9.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +795 -0
- data/doc/Examples.rdoc +36 -0
- data/doc/examples/key_value/kv_get.rb +29 -0
- data/doc/examples/key_value/kv_init.rb +20 -0
- data/doc/examples/key_value/kv_list.rb +28 -0
- data/doc/examples/key_value/kv_remove.rb +29 -0
- data/doc/examples/key_value/kv_set.rb +39 -0
- data/doc/examples/key_value/model.rb +156 -0
- data/doc/examples/key_value/test.rb +50 -0
- data/doc/examples/test_suite/model.rb +503 -0
- data/doc/examples/test_suite/test.rb +173 -0
- data/doc/examples/test_suite/ts_add_bug.rb +65 -0
- data/doc/examples/test_suite/ts_add_module.rb +74 -0
- data/doc/examples/test_suite/ts_add_module_to_test.rb +78 -0
- data/doc/examples/test_suite/ts_add_test.rb +77 -0
- data/doc/examples/test_suite/ts_add_test_suite.rb +65 -0
- data/doc/examples/test_suite/ts_add_test_to_bug.rb +76 -0
- data/doc/examples/test_suite/ts_init.rb +20 -0
- data/doc/examples/test_suite/ts_list.rb +118 -0
- data/doc/examples/test_suite/ts_perform_test.rb +104 -0
- data/doc/examples/test_suite/ts_update_bugs.rb +58 -0
- data/doc/examples/user_group/model.rb +265 -0
- data/doc/examples/user_group/test.rb +64 -0
- data/doc/examples/user_group/ug_add_group.rb +39 -0
- data/doc/examples/user_group/ug_add_group_user.rb +36 -0
- data/doc/examples/user_group/ug_add_user.rb +39 -0
- data/doc/examples/user_group/ug_init.rb +20 -0
- data/doc/examples/user_group/ug_list.rb +32 -0
- data/lib/git-ds.rb +14 -0
- data/lib/git-ds/config.rb +53 -0
- data/lib/git-ds/database.rb +289 -0
- data/lib/git-ds/exec_cmd.rb +107 -0
- data/lib/git-ds/index.rb +205 -0
- data/lib/git-ds/model.rb +136 -0
- data/lib/git-ds/model/db_item.rb +42 -0
- data/lib/git-ds/model/fs_item.rb +51 -0
- data/lib/git-ds/model/item.rb +428 -0
- data/lib/git-ds/model/item_list.rb +97 -0
- data/lib/git-ds/model/item_proxy.rb +128 -0
- data/lib/git-ds/model/property.rb +144 -0
- data/lib/git-ds/model/root.rb +46 -0
- data/lib/git-ds/repo.rb +455 -0
- data/lib/git-ds/shared.rb +17 -0
- data/lib/git-ds/transaction.rb +77 -0
- data/tests/ut_database.rb +304 -0
- data/tests/ut_git_grit_equiv.rb +195 -0
- data/tests/ut_index.rb +203 -0
- data/tests/ut_model.rb +360 -0
- data/tests/ut_repo.rb +260 -0
- data/tests/ut_user_group_model.rb +316 -0
- metadata +142 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Add a TestSuite to a TestSuite database repo
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
# Add examples dir and lib/git-ds to ruby path
|
6
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
7
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
8
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
9
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
10
|
+
|
11
|
+
require 'test_suite/model'
|
12
|
+
require 'optparse'
|
13
|
+
require 'ostruct'
|
14
|
+
|
15
|
+
def get_options(args)
|
16
|
+
options = OpenStruct.new
|
17
|
+
|
18
|
+
options.db = nil
|
19
|
+
options.auto = false
|
20
|
+
options.ident = nil
|
21
|
+
options.descr = ''
|
22
|
+
|
23
|
+
opts = OptionParser.new do |opts|
|
24
|
+
opts.banner = "Usage: #{$0} [-p db_path] IDENT [DESCR]"
|
25
|
+
opts.separator 'Add a TestSuite to database'
|
26
|
+
opts.separator 'Options:'
|
27
|
+
|
28
|
+
opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path|
|
29
|
+
options.db = path
|
30
|
+
options.auto = true
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on_tail( '-?', '--help', 'Show this message') do
|
34
|
+
puts opts
|
35
|
+
exit -1
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
opts.parse!(args)
|
40
|
+
|
41
|
+
options.db = GitDS::Database.top_level if not options.db
|
42
|
+
raise "Invalid database" if not options.db
|
43
|
+
|
44
|
+
if args.count >= 1
|
45
|
+
options.ident = args.shift
|
46
|
+
options.descr = args.shift if args.count > 0
|
47
|
+
else
|
48
|
+
puts opts.banner
|
49
|
+
exit -2
|
50
|
+
end
|
51
|
+
|
52
|
+
options
|
53
|
+
end
|
54
|
+
|
55
|
+
# ----------------------------------------------------------------------
|
56
|
+
if __FILE__ == $0
|
57
|
+
options = get_options(ARGV)
|
58
|
+
|
59
|
+
model = TestSuiteModel.new(GitDS::Database.connect(options.db, options.auto))
|
60
|
+
raise "Could not connect to Model!" if not model
|
61
|
+
|
62
|
+
model.add_test_suite(options.ident, options.descr)
|
63
|
+
|
64
|
+
exit 0
|
65
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Add a Test to a Bug in a TestSuite database repo
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
# Add examples dir and lib/git-ds to ruby path
|
6
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
7
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
8
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
9
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
10
|
+
|
11
|
+
require 'test_suite/model'
|
12
|
+
require 'optparse'
|
13
|
+
require 'ostruct'
|
14
|
+
|
15
|
+
def get_options(args)
|
16
|
+
options = OpenStruct.new
|
17
|
+
|
18
|
+
options.db = nil
|
19
|
+
options.auto = false
|
20
|
+
options.bug = nil
|
21
|
+
options.suite = nil
|
22
|
+
options.ident = nil
|
23
|
+
|
24
|
+
opts = OptionParser.new do |opts|
|
25
|
+
opts.banner = "Usage: #{$0} [-p db_path] BUG_IDENT SUITE_IDENT TEST_IDENT"
|
26
|
+
opts.separator 'Add a Test to Bug Report in database'
|
27
|
+
opts.separator 'Options:'
|
28
|
+
|
29
|
+
opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path|
|
30
|
+
options.db = path
|
31
|
+
options.auto = true
|
32
|
+
end
|
33
|
+
|
34
|
+
opts.on_tail( '-?', '--help', 'Show this message') do
|
35
|
+
puts opts
|
36
|
+
exit -1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
opts.parse!(args)
|
41
|
+
|
42
|
+
options.db = GitDS::Database.top_level if not options.db
|
43
|
+
raise "Invalid database" if not options.db
|
44
|
+
|
45
|
+
if args.count == 3
|
46
|
+
options.bug = args.shift
|
47
|
+
options.suite = args.shift
|
48
|
+
options.ident = args.shift
|
49
|
+
else
|
50
|
+
puts opts.banner
|
51
|
+
exit -2
|
52
|
+
end
|
53
|
+
|
54
|
+
options
|
55
|
+
end
|
56
|
+
|
57
|
+
# ----------------------------------------------------------------------
|
58
|
+
if __FILE__ == $0
|
59
|
+
options = get_options(ARGV)
|
60
|
+
|
61
|
+
model = TestSuiteModel.new(GitDS::Database.connect(options.db, options.auto))
|
62
|
+
raise "Could not connect to Model!" if not model
|
63
|
+
|
64
|
+
b = model.bug(options.bug)
|
65
|
+
raise "Could not find Bug #{options.bug}" if not b
|
66
|
+
|
67
|
+
s = model.test_suite(options.suite)
|
68
|
+
raise "Could not find TestSuite #{options.suite}" if not s
|
69
|
+
|
70
|
+
t = s.test(options.ident)
|
71
|
+
raise "Could not find Test #{options.ident}" if not t
|
72
|
+
|
73
|
+
b.add_test(t)
|
74
|
+
|
75
|
+
exit 0
|
76
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Initialize a user/group database repo
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
6
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
7
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
8
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
9
|
+
|
10
|
+
require 'test_suite/model'
|
11
|
+
|
12
|
+
if __FILE__ == $0
|
13
|
+
if ARGV.count != 1
|
14
|
+
puts "Usage : #{$0} FILENAME"
|
15
|
+
exit -1
|
16
|
+
end
|
17
|
+
|
18
|
+
TestSuiteModel.new(GitDS::Database.connect(ARGV.shift, true))
|
19
|
+
exit 0
|
20
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# List contents of a TestSuite database repo
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
# Add examples dir and lib/git-ds to ruby path
|
6
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
7
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
8
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
9
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
10
|
+
|
11
|
+
require 'test_suite/model'
|
12
|
+
require 'optparse'
|
13
|
+
require 'ostruct'
|
14
|
+
|
15
|
+
def get_options(args)
|
16
|
+
options = OpenStruct.new
|
17
|
+
|
18
|
+
options.db = nil
|
19
|
+
options.suites = false
|
20
|
+
options.modules = false
|
21
|
+
options.bugs = false
|
22
|
+
options.details = false
|
23
|
+
|
24
|
+
opts = OptionParser.new do |opts|
|
25
|
+
opts.banner = "Usage: #{$0} [-p db_path] [-bdsm]"
|
26
|
+
opts.separator 'Add a TestSuite to database'
|
27
|
+
opts.separator 'Options:'
|
28
|
+
|
29
|
+
opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path|
|
30
|
+
options.db = path
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on( '-b', '--bugs', 'List bugs' ) { options.bugs = true }
|
34
|
+
opts.on( '-d', '--details', 'Show details' ) { options.details = true }
|
35
|
+
opts.on( '-s', '--suites', 'List test suites' ) { options.suites = true }
|
36
|
+
opts.on( '-m', '--modules', 'List modules' ) { options.modules = true }
|
37
|
+
|
38
|
+
opts.on_tail( '-?', '--help', 'Show this message') do
|
39
|
+
puts opts
|
40
|
+
exit -1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
opts.parse!(args)
|
45
|
+
|
46
|
+
options.db = GitDS::Database.top_level if not options.db
|
47
|
+
raise "Invalid database" if not options.db
|
48
|
+
|
49
|
+
# by default show all
|
50
|
+
if (! options.bugs) && (! options.modules) && (! options.suites)
|
51
|
+
options.bugs = options.modules = options.suites = true
|
52
|
+
end
|
53
|
+
|
54
|
+
options
|
55
|
+
end
|
56
|
+
|
57
|
+
def list_modules(model, details)
|
58
|
+
puts "Modules:"
|
59
|
+
model.modules.each do |ident|
|
60
|
+
puts "\t" + ident
|
61
|
+
if details
|
62
|
+
m = model.module(ident)
|
63
|
+
puts "\t\t" + m.name
|
64
|
+
puts "\t\t" + m.path
|
65
|
+
puts "\t\tContents:"
|
66
|
+
puts "\t\t" + m.data[0,60] + (m.data.length > 60 ? '...' : '')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def list_suites(model, details)
|
72
|
+
puts "Test Suites:"
|
73
|
+
model.test_suites.each do |ident|
|
74
|
+
puts "\t" + ident
|
75
|
+
if details
|
76
|
+
s = model.test_suite(ident)
|
77
|
+
puts "\t\t" + s.description
|
78
|
+
puts "\t\tTests:"
|
79
|
+
s.tests.each do |ident|
|
80
|
+
t = s.test(ident)
|
81
|
+
puts "\t\t\t" + ident
|
82
|
+
puts "\t\t\t" + ((t.pass?) ? 'Passed' : 'Failed')
|
83
|
+
puts "\t\t\t" + t.timestamp.to_s
|
84
|
+
puts "\t\t\tModules:"
|
85
|
+
t.modules.each { |ident| puts "\t\t\t\t" + ident }
|
86
|
+
puts "\t\t\tLog:\n" + t.log
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def list_bugs(model, details)
|
93
|
+
puts "Bugs:"
|
94
|
+
model.bugs.each do |ident|
|
95
|
+
puts "\t" + ident
|
96
|
+
if details
|
97
|
+
b = model.bug(ident)
|
98
|
+
puts "\t\t" + b.description
|
99
|
+
puts "\t\t" + ((b.open?) ? 'Open' : 'Closed')
|
100
|
+
puts "\t\tTests:"
|
101
|
+
b.tests.each { |ident| puts "\t\t\t" + ident }
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# ----------------------------------------------------------------------
|
107
|
+
if __FILE__ == $0
|
108
|
+
options = get_options(ARGV)
|
109
|
+
|
110
|
+
model = TestSuiteModel.new(GitDS::Database.connect(options.db, options.auto))
|
111
|
+
raise "Could not connect to Model!" if not model
|
112
|
+
|
113
|
+
list_modules(model, options.details) if options.modules
|
114
|
+
list_suites(model, options.details) if options.suites
|
115
|
+
list_bugs(model, options.details) if options.bugs
|
116
|
+
|
117
|
+
exit 0
|
118
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Set results for performing a Test in a TestSuite database repo
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
# Add examples dir and lib/git-ds to ruby path
|
6
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
7
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
8
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
9
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
10
|
+
|
11
|
+
require 'test_suite/model'
|
12
|
+
require 'optparse'
|
13
|
+
require 'ostruct'
|
14
|
+
|
15
|
+
def get_options(args)
|
16
|
+
options = OpenStruct.new
|
17
|
+
|
18
|
+
options.db = nil
|
19
|
+
options.auto = false
|
20
|
+
options.user = nil
|
21
|
+
options.email = nil
|
22
|
+
options.ident = nil
|
23
|
+
options.suite = nil
|
24
|
+
options.passed = nil
|
25
|
+
options.log = ''
|
26
|
+
|
27
|
+
opts = OptionParser.new do |opts|
|
28
|
+
opts.banner = "Usage: #{$0} [-tf] [-elpu arg] SUITE_IDENT TEST_IDENT " +
|
29
|
+
"[0|1]"
|
30
|
+
opts.separator 'Set results for performing a Test'
|
31
|
+
opts.separator 'Note: A trailing arg of 0 (success) or nonzero (failure)'
|
32
|
+
opts.separator ' is expected if neither -t nor -f is present.'
|
33
|
+
opts.separator 'Options:'
|
34
|
+
|
35
|
+
opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path|
|
36
|
+
options.db = path
|
37
|
+
options.auto = true
|
38
|
+
end
|
39
|
+
|
40
|
+
opts.on( '-l', '--log str', 'Log entry for test' ) do |str|
|
41
|
+
options.log = str
|
42
|
+
end
|
43
|
+
|
44
|
+
opts.on( '-u', '--user name', 'Name of Git user' ) do |name|
|
45
|
+
options.user = name
|
46
|
+
end
|
47
|
+
|
48
|
+
opts.on( '-e', '--email str', 'Email of Git user' ) do |str|
|
49
|
+
options.email = str
|
50
|
+
end
|
51
|
+
|
52
|
+
opts.on( '-t', '--true', 'Test succeeded') { options.passed = true }
|
53
|
+
opts.on( '-f', '--false', 'Test failed') { options.passed = false }
|
54
|
+
|
55
|
+
opts.on_tail( '-?', '--help', 'Show this message') do
|
56
|
+
puts opts
|
57
|
+
exit -1
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
opts.parse!(args)
|
62
|
+
|
63
|
+
options.db = GitDS::Database.top_level if not options.db
|
64
|
+
raise "Invalid database" if not options.db
|
65
|
+
|
66
|
+
if args.count >= 2
|
67
|
+
options.suite = args.shift
|
68
|
+
options.ident = args.shift
|
69
|
+
|
70
|
+
if options.passed == nil
|
71
|
+
if args.count == 0
|
72
|
+
puts opts.banner
|
73
|
+
exit -3
|
74
|
+
end
|
75
|
+
options.passed = (args.shift.to_i == 0)
|
76
|
+
end
|
77
|
+
else
|
78
|
+
puts opts.banner
|
79
|
+
exit -2
|
80
|
+
end
|
81
|
+
|
82
|
+
options
|
83
|
+
end
|
84
|
+
|
85
|
+
# ----------------------------------------------------------------------
|
86
|
+
if __FILE__ == $0
|
87
|
+
options = get_options(ARGV)
|
88
|
+
|
89
|
+
model = TestSuiteModel.new(GitDS::Database.connect_as(options.db,
|
90
|
+
options.user,
|
91
|
+
options.email,
|
92
|
+
options.auto))
|
93
|
+
raise "Could not connect to Model!" if not model
|
94
|
+
|
95
|
+
s = model.test_suite(options.suite)
|
96
|
+
raise "Could not find TestSuite #{options.suite}" if not s
|
97
|
+
|
98
|
+
t = s.test(options.ident)
|
99
|
+
raise "Could not find Test #{options.ident}" if not t
|
100
|
+
|
101
|
+
t.perform( options.passed, options.log )
|
102
|
+
|
103
|
+
exit 0
|
104
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Update Bugs in a TestSuite database repo based on status of Tests
|
3
|
+
# Copyright 2011 Thoughtgang <http://www.thoughtgang.org>
|
4
|
+
|
5
|
+
# Add examples dir and lib/git-ds to ruby path
|
6
|
+
BASE=File.dirname(File.expand_path(__FILE__)\
|
7
|
+
).split(File::SEPARATOR)[0..-4].join(File::SEPARATOR)
|
8
|
+
$: << BASE + File::SEPARATOR + 'lib'
|
9
|
+
$: << BASE + File::SEPARATOR + 'doc' + File::SEPARATOR + 'examples'
|
10
|
+
|
11
|
+
require 'test_suite/model'
|
12
|
+
require 'optparse'
|
13
|
+
require 'ostruct'
|
14
|
+
|
15
|
+
def get_options(args)
|
16
|
+
options = OpenStruct.new
|
17
|
+
|
18
|
+
options.db = nil
|
19
|
+
|
20
|
+
opts = OptionParser.new do |opts|
|
21
|
+
opts.banner = "Usage: #{$0} [-p db_path]"
|
22
|
+
opts.separator 'Update all bugs in database'
|
23
|
+
opts.separator 'Options:'
|
24
|
+
|
25
|
+
opts.on( '-p', '--db-path PATH', 'Path to TestSuite GitDS' ) do |path|
|
26
|
+
options.db = path
|
27
|
+
end
|
28
|
+
|
29
|
+
opts.on_tail( '-?', '--help', 'Show this message') do
|
30
|
+
puts opts
|
31
|
+
exit -1
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.parse!(args)
|
36
|
+
|
37
|
+
options.db = GitDS::Database.top_level if not options.db
|
38
|
+
raise "Invalid database" if not options.db
|
39
|
+
|
40
|
+
# by default show all
|
41
|
+
if (! options.bugs) && (! options.modules) && (! options.suites)
|
42
|
+
options.bugs = options.modules = options.suites = true
|
43
|
+
end
|
44
|
+
|
45
|
+
options
|
46
|
+
end
|
47
|
+
|
48
|
+
# ----------------------------------------------------------------------
|
49
|
+
if __FILE__ == $0
|
50
|
+
options = get_options(ARGV)
|
51
|
+
|
52
|
+
model = TestSuiteModel.new(GitDS::Database.connect(options.db, options.auto))
|
53
|
+
raise "Could not connect to Model!" if not model
|
54
|
+
|
55
|
+
model.update_bugs
|
56
|
+
|
57
|
+
exit 0
|
58
|
+
end
|