build-tool 0.1.4 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+