build-tool 0.1.4 → 0.2

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.
Files changed (90) hide show
  1. data.tar.gz.sig +2 -3
  2. data/History.txt +29 -0
  3. data/Manifest.txt +39 -10
  4. data/README.txt +5 -8
  5. data/Rakefile +14 -6
  6. data/bin/build-tool +3 -35
  7. data/db/migrations/001_command_histories.rb +20 -0
  8. data/db/migrations/002_module_events.rb +24 -0
  9. data/db/migrations/003_command_histories_add_logfile.rb +19 -0
  10. data/lib/build-tool.rb +1 -1
  11. data/lib/build-tool/application.rb +103 -30
  12. data/lib/build-tool/build-system/autoconf.rb +69 -6
  13. data/lib/build-tool/build-system/base.rb +2 -25
  14. data/lib/build-tool/build-system/custom.rb +6 -19
  15. data/lib/build-tool/build-system/kdel10n.rb +39 -0
  16. data/lib/build-tool/build-system/none.rb +82 -0
  17. data/lib/build-tool/cfg/lexer.rb +133 -7
  18. data/lib/build-tool/cfg/lexer.rex +58 -6
  19. data/lib/build-tool/cfg/node.rb +13 -1
  20. data/lib/build-tool/cfg/parser.rb +519 -333
  21. data/lib/build-tool/cfg/parser.y +74 -11
  22. data/lib/build-tool/cfg/visitor.rb +182 -20
  23. data/lib/build-tool/command_actions.rb +202 -0
  24. data/lib/build-tool/commands.rb +193 -49
  25. data/lib/build-tool/commands/build.rb +13 -8
  26. data/lib/build-tool/commands/configure.rb +8 -3
  27. data/lib/build-tool/commands/environments.rb +4 -8
  28. data/lib/build-tool/commands/environments/list.rb +8 -0
  29. data/lib/build-tool/commands/fetch.rb +7 -2
  30. data/lib/build-tool/commands/gc.rb +53 -0
  31. data/lib/build-tool/commands/history.rb +111 -0
  32. data/lib/build-tool/commands/install.rb +6 -1
  33. data/lib/build-tool/commands/lsfeatures.rb +73 -0
  34. data/lib/build-tool/commands/modules.rb +3 -7
  35. data/lib/build-tool/commands/modules/info.rb +15 -6
  36. data/lib/build-tool/commands/modules/list.rb +10 -5
  37. data/lib/build-tool/commands/rebase.rb +6 -1
  38. data/lib/build-tool/commands/recipes.rb +3 -7
  39. data/lib/build-tool/configuration.rb +24 -1
  40. data/lib/build-tool/environment.rb +17 -3
  41. data/lib/build-tool/feature.rb +47 -0
  42. data/lib/build-tool/history.rb +173 -0
  43. data/lib/build-tool/module.rb +49 -90
  44. data/lib/build-tool/recipe.rb +5 -0
  45. data/lib/build-tool/vcs/archive.rb +140 -0
  46. data/lib/build-tool/vcs/base.rb +5 -5
  47. data/lib/build-tool/vcs/git-svn.rb +4 -0
  48. data/lib/build-tool/vcs/git.rb +4 -0
  49. data/lib/mj/logging.rb +11 -0
  50. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/compile.sh +0 -0
  51. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/configure.sh +0 -0
  52. data/recipes/{kdeqt4.6 → kde}/custom/qt/qtscriptgenerator/install.sh +0 -0
  53. data/recipes/kde/custom/scripting/pyqt4/compile.sh +10 -0
  54. data/recipes/kde/custom/scripting/pyqt4/configure.sh +14 -0
  55. data/recipes/kde/custom/scripting/pyqt4/install.sh +10 -0
  56. data/recipes/kde/custom/scripting/sip/compile.sh +10 -0
  57. data/recipes/kde/custom/scripting/sip/configure.sh +13 -0
  58. data/recipes/kde/custom/scripting/sip/install.sh +10 -0
  59. data/recipes/kde/files/xsession +8 -4
  60. data/recipes/kde/kde-bindings.recipe +22 -0
  61. data/recipes/kde/kde-core.recipe +104 -0
  62. data/recipes/kde/kde-devel.recipe +38 -0
  63. data/recipes/kde/kde-finance.recipe +17 -0
  64. data/recipes/kde/kde-graphics.recipe +27 -0
  65. data/recipes/kde/kde-kdevelop.recipe +116 -0
  66. data/recipes/kde/kde-l10n.recipe +14 -0
  67. data/recipes/kde/kde-multimedia.recipe +31 -0
  68. data/recipes/kde/kde-network.recipe +55 -0
  69. data/recipes/kde/kde-office.recipe +28 -0
  70. data/recipes/kde/kde-plasma.recipe +117 -0
  71. data/recipes/{kdeqt4.6/recipe → kde/kde-qt.recipe} +25 -57
  72. data/recipes/kde/kde-scripting.recipe +63 -0
  73. data/recipes/kde/kde-support.recipe +73 -0
  74. data/recipes/kde/kde-utils.recipe +22 -0
  75. data/recipes/kde/kde-webdev.recipe +41 -0
  76. data/recipes/kde/recipe +92 -532
  77. data/recipes/kde/recipe-local +58 -2
  78. data/recipes/kde/settings.yaml +17 -0
  79. data/recipes/kde43/recipe-local +58 -2
  80. data/test/test_configuration_parser.rb +76 -21
  81. data/test/test_feature.rb +34 -0
  82. data/test/test_history.rb +149 -0
  83. metadata +185 -30
  84. metadata.gz.sig +0 -0
  85. data/lib/build-tool/pluginbase.rb +0 -43
  86. data/recipes/kdeqt4.6/info.yaml +0 -7
  87. data/recipes/kdeqt4.6/recipe-local +0 -30
  88. data/recipes/kdeqt4.6/settings.yaml +0 -27
  89. data/tasks/rdoc.rake +0 -34
  90. data/test.rb +0 -28
@@ -1,4 +1,5 @@
1
1
  # See http://techbase.kde.org/Contribute/Get_a_SVN_Account
2
+ # vim: textwidth=80
2
3
  #############################################################################
3
4
  # SSH-KEYS
4
5
  #############################################################################
@@ -16,7 +17,7 @@
16
17
  # server "svn.kde.org"
17
18
  # protocol "svn+ssh"
18
19
  # host "svn.kde.org"
19
- # path "home/kde/trunk"
20
+ # path "home/kde"
20
21
  # end
21
22
 
22
23
  #############################################################################
@@ -44,6 +45,36 @@
44
45
  # use ssh-key "user(at)example.com"
45
46
  # end
46
47
 
48
+ #############################################################################
49
+ # FEATURES
50
+ #############################################################################
51
+ # Enable or disable features the recipe provides. Have a look at
52
+ # > lsfeatures
53
+ # > lsfeature [feature]
54
+ # to get more information what each feature provides.
55
+
56
+ # Only disable the support feature if you know what you do. For trunk it's
57
+ # normally recommended to use kdesupport trunk.
58
+ # disable feature "support" # It's recommended to use kdesupport for trunk development
59
+
60
+ disable feature "bindings"
61
+ disable feature "devel"
62
+ disable feature "devel/icecream"
63
+ disable feature "finance"
64
+ disable feature "graphics"
65
+ disable feature "kdeqt"
66
+ disable feature "kdevelop"
67
+ disable feature "kdevelop/plugins"
68
+ disable feature "l10n"
69
+ disable feature "multimedia"
70
+ disable feature "network"
71
+ disable feature "office"
72
+ disable feature "plasma"
73
+ disable feature "scripting/python"
74
+ disable feature "utils"
75
+ disable feature "webdev"
76
+ disable feature "webkit"
77
+
47
78
  #############################################################################
48
79
  # ENVIRONMENTS
49
80
  #############################################################################
@@ -64,7 +95,7 @@
64
95
 
65
96
  # The CMAKE_CXX_FLAGS option is added to the already existing configuration
66
97
  # from the global recipe. As we can't add to it just set the complete value
67
- # module "KDE/kdelibs"
98
+ # module "kde-core"
68
99
  # build-system cmake
69
100
  # option CMAKE_CXXFLAGS "-Wall -pipe -O0 -pedantic -Wno-long-long"
70
101
  # end
@@ -88,3 +119,28 @@
88
119
  # end
89
120
  # end
90
121
 
122
+ #############################################################################
123
+ # GITORIOUS KDEDEVELOPERS
124
+ #############################################################################
125
+ # There is a kdedevelopers group on gitorious. If you belong to it uncomment the
126
+ # following code which changes the server url of all kdedevelopers owned
127
+ # projects so you can push to them.
128
+ # server "kdedevelopers.gitorious.org"
129
+ # host "git@gitorious.org:"
130
+ # end
131
+
132
+ #############################################################################
133
+ # KDE I18N
134
+ #############################################################################
135
+
136
+ # To enable just adapt the following snippet to your needs. You can copy it and add more languages
137
+ # if you like
138
+
139
+ # module "l10n/de" < l10n
140
+ # remote-path "l10n-kde4/de"
141
+ # end
142
+
143
+ # module "l10n/en_GB" < l10n
144
+ # remote-path "l10n-kde4/en_GB"
145
+ # end
146
+
@@ -8,6 +8,14 @@ SETTINGS:
8
8
  # BUILD_DIR/log -> log files
9
9
  BUILD_DIR: "~/kde4/trunk"
10
10
 
11
+ # Install prefix for qt.
12
+ QT_PREFIX: "/kde4/qt/4.6"
13
+
14
+ # The same as QT_PREFIX if you enable the qt/qt module (feature kdeqt). If you want to use a
15
+ # distro provided Qt ypu have to adjust this path if you want to compile qt/qtscriptgenerator.
16
+ # All other modules will find the correct qt without it.
17
+ QTDIR: "/kde4/qt/4.6"
18
+
11
19
  # Install prefix for kdesupport
12
20
  KDESUPPORT_PREFIX: "/kde4/trunk/support"
13
21
 
@@ -50,3 +58,12 @@ SETTINGS:
50
58
  # if not or others along that line.
51
59
  XDG_DATA_DIRS: "/usr/share:/share"
52
60
 
61
+ #
62
+ ### SCRIPTING/PYTHON FEATURE
63
+ #
64
+ # See 'man python'.
65
+ PYTHONPATH: ""
66
+ # See 'python -V'. Skip the third number
67
+ PYTHON_VERSION: "2.6"
68
+ # Additional directories for sip to look for definition files
69
+ SIP_INCLUDES: ""
@@ -1,4 +1,5 @@
1
1
  # See http://techbase.kde.org/Contribute/Get_a_SVN_Account
2
+ # vim: textwidth=80
2
3
  #############################################################################
3
4
  # SSH-KEYS
4
5
  #############################################################################
@@ -16,7 +17,7 @@
16
17
  # server "svn.kde.org"
17
18
  # protocol "svn+ssh"
18
19
  # host "svn.kde.org"
19
- # path "home/kde/trunk"
20
+ # path "home/kde"
20
21
  # end
21
22
 
22
23
  #############################################################################
@@ -44,6 +45,36 @@
44
45
  # use ssh-key "user(at)example.com"
45
46
  # end
46
47
 
48
+ #############################################################################
49
+ # FEATURES
50
+ #############################################################################
51
+ # Enable or disable features the recipe provides. Have a look at
52
+ # > lsfeatures
53
+ # > lsfeature [feature]
54
+ # to get more information what each feature provides.
55
+
56
+ # Only disable the support feature if you know what you do. For trunk it's
57
+ # normally recommended to use kdesupport trunk.
58
+ # disable feature "support" # It's recommended to use kdesupport for trunk development
59
+
60
+ disable feature "bindings"
61
+ disable feature "devel"
62
+ disable feature "devel/icecream"
63
+ disable feature "finance"
64
+ disable feature "graphics"
65
+ disable feature "kdeqt"
66
+ disable feature "kdevelop"
67
+ disable feature "kdevelop/plugins"
68
+ disable feature "l10n"
69
+ disable feature "multimedia"
70
+ disable feature "network"
71
+ disable feature "office"
72
+ disable feature "plasma"
73
+ disable feature "scripting/python"
74
+ disable feature "utils"
75
+ disable feature "webdev"
76
+ disable feature "webkit"
77
+
47
78
  #############################################################################
48
79
  # ENVIRONMENTS
49
80
  #############################################################################
@@ -64,7 +95,7 @@
64
95
 
65
96
  # The CMAKE_CXX_FLAGS option is added to the already existing configuration
66
97
  # from the global recipe. As we can't add to it just set the complete value
67
- # module "KDE/kdelibs"
98
+ # module "kde-core"
68
99
  # build-system cmake
69
100
  # option CMAKE_CXXFLAGS "-Wall -pipe -O0 -pedantic -Wno-long-long"
70
101
  # end
@@ -88,3 +119,28 @@
88
119
  # end
89
120
  # end
90
121
 
122
+ #############################################################################
123
+ # GITORIOUS KDEDEVELOPERS
124
+ #############################################################################
125
+ # There is a kdedevelopers group on gitorious. If you belong to it uncomment the
126
+ # following code which changes the server url of all kdedevelopers owned
127
+ # projects so you can push to them.
128
+ # server "kdedevelopers.gitorious.org"
129
+ # host "git@gitorious.org:"
130
+ # end
131
+
132
+ #############################################################################
133
+ # KDE I18N
134
+ #############################################################################
135
+
136
+ # To enable just adapt the following snippet to your needs. You can copy it and add more languages
137
+ # if you like
138
+
139
+ # module "l10n/de" < l10n
140
+ # remote-path "l10n-kde4/de"
141
+ # end
142
+
143
+ # module "l10n/en_GB" < l10n
144
+ # remote-path "l10n-kde4/en_GB"
145
+ # end
146
+
@@ -90,8 +90,8 @@ class TestConfigurationParser < Test::Unit::TestCase
90
90
  end
91
91
 
92
92
  repository kde
93
- server kde
94
- path "KDE"
93
+ use server kde
94
+ path "KDE"
95
95
  end
96
96
 
97
97
  repository kde
@@ -117,6 +117,61 @@ class TestConfigurationParser < Test::Unit::TestCase
117
117
  assert_equal "svn+ssh://mjansen@svn.kde.org/home/kde/KDE", default.url
118
118
  end
119
119
 
120
+ def test_features
121
+ text = <<-EOS
122
+ feature devel
123
+ short description "KDE Development Tools"
124
+ feature playground
125
+ short description "Playground modules"
126
+ end
127
+ end
128
+
129
+ feature graphics
130
+ short description "KDE Development Tools"
131
+ feature playground
132
+ short description "Playground modules"
133
+ module kdesupport end
134
+ end
135
+ end
136
+
137
+ disable feature graphics
138
+ EOS
139
+ parser = BuildTool::Cfg::Parser.new
140
+ configuration = parser.parse_string(text)
141
+
142
+ # Check devel top level feature ( active )
143
+ devel = configuration.feature("devel")
144
+ assert devel.active?
145
+ assert "KDE Development Tools", devel.description
146
+ assert "devel", devel.path
147
+ assert "devel", devel.name
148
+ assert_nil devel.parent
149
+
150
+ # Check devel/playground feature ( active )
151
+ playground = configuration.feature("devel/playground")
152
+ assert playground.active?
153
+ assert "Playground modules", playground.description
154
+ assert "playground", playground.path
155
+ assert "devel/playground", playground.name
156
+ assert_equal devel, playground.parent
157
+
158
+ # Check graphics top level feature ( not active )
159
+ graphics = configuration.feature("graphics")
160
+ assert !graphics.active?
161
+ assert "KDE Development Tools", graphics.description
162
+ assert "graphics", graphics.path
163
+ assert "graphics", graphics.name
164
+ assert_nil graphics.parent
165
+
166
+ # Check graphics/playground feature ( not active )
167
+ playground = configuration.feature("graphics/playground")
168
+ assert !playground.active?
169
+ assert "Playground modules", playground.description
170
+ assert "playground", playground.path
171
+ assert "graphics/playground", playground.name
172
+ assert_equal graphics, playground.parent
173
+ end
174
+
120
175
  def test_module
121
176
  text = <<-EOS
122
177
  environment kdelibs end
@@ -127,13 +182,13 @@ class TestConfigurationParser < Test::Unit::TestCase
127
182
  end
128
183
 
129
184
  repository kde
130
- server kde
131
- path "/home/kde"
185
+ use server kde
186
+ path "/home/kde"
132
187
  end
133
188
 
134
189
  repository kde-core
135
- server kde
136
- path "/home/kde"
190
+ use server kde
191
+ path "/home/kde"
137
192
  end
138
193
 
139
194
  module kdelibs
@@ -175,9 +230,9 @@ class TestConfigurationParser < Test::Unit::TestCase
175
230
  end
176
231
 
177
232
  repository kde
178
- server kde
179
- path "/home"
180
- user mjansen
233
+ use server kde
234
+ path "/home"
235
+ user mjansen
181
236
  end
182
237
 
183
238
  module kdelibs
@@ -268,9 +323,9 @@ class TestConfigurationParser < Test::Unit::TestCase
268
323
  end
269
324
 
270
325
  repository kde
271
- server kde
272
- path "/home"
273
- user mjansen
326
+ use server kde
327
+ path "/home"
328
+ user mjansen
274
329
  end
275
330
 
276
331
  module kdelibs
@@ -311,9 +366,9 @@ class TestConfigurationParser < Test::Unit::TestCase
311
366
 
312
367
  # Change the kde repository
313
368
  repository kde
314
- server kde
315
- path "/home"
316
- user meier
369
+ use server kde
370
+ path "/home"
371
+ user meier
317
372
  end
318
373
 
319
374
  # test inheritance
@@ -396,9 +451,9 @@ class TestConfigurationParser < Test::Unit::TestCase
396
451
  end
397
452
 
398
453
  repository kde
399
- server kde
400
- path "/home"
401
- user mjansen
454
+ use server kde
455
+ path "/home"
456
+ user mjansen
402
457
  end
403
458
 
404
459
  module kdelibstemplate TEMPLATE
@@ -449,9 +504,9 @@ class TestConfigurationParser < Test::Unit::TestCase
449
504
  end
450
505
 
451
506
  repository kde
452
- server kde
453
- path "/home"
454
- user mjansen
507
+ use server kde
508
+ path "/home"
509
+ user mjansen
455
510
  end
456
511
 
457
512
  environment default
@@ -0,0 +1,34 @@
1
+ require 'pathname'
2
+ require Pathname.new( File.dirname(__FILE__)).join( 'test_helper' ).cleanpath
3
+
4
+ require 'build-tool/feature'
5
+
6
+ class TestFeature < Test::Unit::TestCase
7
+
8
+ def test_simple_creation
9
+ testfeat = BuildTool::Feature.new( "test" )
10
+ assert_equal "test", testfeat.name
11
+ assert testfeat.active?
12
+ assert_nil testfeat.parent
13
+ assert_equal "test", testfeat.path
14
+
15
+ test2feat = BuildTool::Feature.new( "test2", testfeat, false )
16
+ assert_equal "test2", test2feat.name
17
+ assert !test2feat.active?
18
+ assert_equal testfeat, test2feat.parent
19
+ assert_equal "test/test2", test2feat.path
20
+
21
+ test3feat = BuildTool::Feature.new( "test3", testfeat )
22
+ assert_equal "test3", test3feat.name
23
+ assert test3feat.active?
24
+ assert_equal testfeat, test3feat.parent
25
+ assert_equal "test/test3", test3feat.path
26
+
27
+ # Check that disabling the parent feature disables the child feature
28
+ testfeat.active = false
29
+ assert !testfeat.active?
30
+ assert !test3feat.active?
31
+ end
32
+
33
+ end
34
+
@@ -0,0 +1,149 @@
1
+ require 'pathname'
2
+ require Pathname.new( File.dirname(__FILE__)).join( 'test_helper' ).cleanpath
3
+
4
+ require 'sequel'
5
+ require 'sequel/extensions/migration'
6
+
7
+ # Create a memory database
8
+ database = Sequel.sqlite
9
+ Sequel::Migrator.apply( database, 'db/migrations' )
10
+
11
+ require 'build-tool/history'
12
+
13
+ class TestHistory < Test::Unit::TestCase
14
+
15
+ def test_command_log
16
+ cmd = BuildTool::History::CommandLog.new(
17
+ :command => "test" )
18
+ assert_equal cmd.command, "test"
19
+ assert_nil cmd.started_at
20
+ assert_nil cmd.finished_at
21
+ assert_nil cmd.id
22
+ assert_nil cmd.state
23
+
24
+ # #started sets the started_at attribute and saves the object. Nothing else.
25
+ cmd.started
26
+ assert_not_nil cmd.id
27
+ assert_equal cmd.command, "test"
28
+ assert_not_nil cmd.started_at
29
+ assert_nil cmd.finished_at
30
+ assert_equal BuildTool::History::CommandLog::STARTED, cmd.state
31
+
32
+ # Check that the started state will lead to an exception on finished
33
+ assert_raises StandardError do
34
+ cmd.finished( BuildTool::History::CommandLog::STARTED )
35
+ end
36
+
37
+ # #finished sets the finished_at attribute and saves the object. Nothing else.
38
+ cmd.finished( BuildTool::History::CommandLog::FINISHED_SUCCESSFUL )
39
+ assert_not_nil cmd.id
40
+ assert_equal cmd.command, "test"
41
+ assert_not_nil cmd.started_at
42
+ assert_not_nil cmd.finished_at
43
+ assert cmd.finished_at > cmd.started_at
44
+ assert_equal BuildTool::History::CommandLog::FINISHED_SUCCESSFUL, cmd.state
45
+
46
+ # Reload the object from db
47
+ id = cmd.id
48
+ cmd = nil
49
+ cmd = BuildTool::History::CommandLog[id]
50
+ assert_equal id, cmd.id
51
+ assert_equal cmd.command, "test"
52
+ assert_not_nil cmd.started_at
53
+ assert_not_nil cmd.finished_at
54
+ assert cmd.finished_at > cmd.started_at
55
+
56
+ # Create more entried
57
+ for i in 1..50 do
58
+ cmd = BuildTool::History::CommandLog.new(
59
+ :command => "test #{i}" )
60
+ cmd.started
61
+ cmd.finished( BuildTool::History::CommandLog::FINISHED_SUCCESSFUL )
62
+ # Remember the last id
63
+ maxid = cmd.id
64
+ end
65
+
66
+ # Get the latest history entry
67
+ cmd = BuildTool::History::CommandLog::most_recent
68
+ assert_equal maxid, cmd.id
69
+
70
+ # Get the latest ten history entries
71
+ arr = BuildTool::History::CommandLog.last( 10 )
72
+ assert_equal 10, arr.size
73
+ assert_equal maxid, arr[0].id
74
+
75
+ lastid = maxid+1
76
+ while nxt = arr.shift
77
+ assert lastid > nxt.id
78
+ lastid = nxt.id
79
+ end
80
+
81
+ end # test_command_log
82
+
83
+
84
+ def test_module_log
85
+ # Get a command to work with
86
+ cmd = BuildTool::History::CommandLog::most_recent
87
+
88
+ # Create a empty one
89
+ mod = BuildTool::History::ModuleLog.new
90
+ assert_nil mod.id
91
+ assert_nil mod.module
92
+ assert_nil mod.command_log_id
93
+ assert_nil mod.event
94
+ assert_nil mod.logfile
95
+ assert_nil mod.started_at
96
+ assert_nil mod.finished_at
97
+ assert_nil mod.state
98
+
99
+ assert_raises Sequel::DatabaseError do
100
+ mod.save
101
+ end
102
+
103
+ mod.module = "test"
104
+ assert_raises Sequel::DatabaseError do
105
+ mod.save
106
+ end
107
+
108
+ mod.event = "update"
109
+ assert_raises Sequel::DatabaseError do
110
+ mod.save
111
+ end
112
+
113
+ # SQLite3 does not check foreign keys (just to remember
114
+ mod.command_log_id = 45000
115
+ mod.save
116
+
117
+ mod = BuildTool::History::ModuleLog.new(
118
+ :command_log_id => cmd.id,
119
+ :module => "test_module",
120
+ :event => "update",
121
+ :logfile => "/path/to/my/logfile")
122
+ assert_equal mod.command_log_id, cmd.id
123
+ assert_equal "test_module", mod.module
124
+ assert_equal "update", mod.event
125
+ assert_equal "/path/to/my/logfile", mod.logfile
126
+ assert_nil mod.id
127
+
128
+ # Start the event
129
+ mod.started
130
+ assert_not_nil mod.id
131
+ assert_not_nil mod.started_at
132
+ assert_equal mod.state, BuildTool::History::ModuleLog::STARTED
133
+
134
+ # Finish the event
135
+ assert_raises StandardError do
136
+ mod.finished( BuildTool::History::ModuleLog::STARTED )
137
+ end
138
+
139
+ mod.finished( BuildTool::History::ModuleLog::FINISHED_SUCCESSFUL )
140
+ assert_not_nil mod.finished_at
141
+ assert_equal mod.state, BuildTool::History::ModuleLog::FINISHED_SUCCESSFUL
142
+
143
+ cmds = BuildTool::History::CommandLog.last_by_module( "test_module" )
144
+ puts cmds.inspect
145
+ assert_equal 1, cmds.count
146
+ end
147
+
148
+ end # class TestHistory
149
+