RubyPackager 0.1.0.20091021 → 0.1.1.20091105

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/AUTHORS → AUTHORS} +0 -0
  2. data/ChangeLog +67 -0
  3. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/Credits → Credits} +0 -0
  4. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/LICENSE → LICENSE} +0 -0
  5. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/README → README} +0 -0
  6. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/ReleaseInfo → ReleaseInfo} +1 -1
  7. data/TODO +14 -0
  8. data/bin/Release.rb +206 -0
  9. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/Distributors/SourceForge.rb +12 -9
  10. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/Installers/Gem.rb +8 -13
  11. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/ReleaseInfo.rb +1 -11
  12. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/Releaser.rb +130 -102
  13. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/Tools.rb +0 -0
  14. data/lib/RubyPackager/i386-linux/PlatformReleaser.rb +117 -0
  15. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/i386-mswin32/Installers/NSIS.rb +3 -4
  16. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/i386-mswin32/PlatformReleaser.rb +6 -9
  17. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/lib → lib}/RubyPackager/i386-mswin32/edicon/edicon.exe +0 -0
  18. data/test/Common.rb +346 -0
  19. data/test/PlatformIndependent/CommandLine.rb +156 -0
  20. data/test/PlatformIndependent/Executable.rb +31 -0
  21. data/test/PlatformIndependent/Library.rb +31 -0
  22. data/test/PlatformIndependent/Misc.rb +62 -0
  23. data/test/PlatformIndependent/Plugins/Distributors/SourceForge.rb +81 -0
  24. data/test/PlatformIndependent/Plugins/Installers/Gem.rb +142 -0
  25. data/test/Repository/Applications/Basic/Distribution/ReleaseInfo.rb +27 -0
  26. data/test/Repository/Applications/Basic/Distribution/ReleaseInfo_Exe.rb +33 -0
  27. data/test/Repository/Applications/Basic/Distribution/ReleaseInfo_ExeTerm.rb +33 -0
  28. data/test/Repository/Applications/Basic/Distribution/ReleaseInfo_Gem.rb +32 -0
  29. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test → test/Repository}/Applications/Basic/Distribution/i386-mswin32/Icon.ico +0 -0
  30. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test → test/Repository}/Applications/Basic/Distribution/i386-mswin32/Installer/Icon.ico +0 -0
  31. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test → test/Repository}/Applications/Basic/Distribution/i386-mswin32/Installer/InstallLicense.txt +0 -0
  32. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test → test/Repository}/Applications/Basic/Distribution/i386-mswin32/Installer/install.nsi +0 -0
  33. data/{F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test → test/Repository}/Applications/Basic/Main.rb +0 -0
  34. data/test/Repository/Libraries/Basic/Add.rb +6 -0
  35. data/test/Repository/Libraries/Basic/Distribution/Icon.ico +0 -0
  36. data/test/Repository/Libraries/Basic/Distribution/InstallLicense.txt +31 -0
  37. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo.rb +24 -0
  38. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_Additional.rb +27 -0
  39. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_Gem.rb +29 -0
  40. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_GemDep.rb +32 -0
  41. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_NSIS.rb +28 -0
  42. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_SF.rb +28 -0
  43. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_Test.rb +27 -0
  44. data/test/Repository/Libraries/Basic/Distribution/ReleaseInfo_TestGem.rb +33 -0
  45. data/test/Repository/Libraries/Basic/Distribution/install.nsi +53 -0
  46. data/test/Repository/Libraries/Basic/MainLib.rb +6 -0
  47. data/test/Repository/Libraries/Basic/Test.rb +6 -0
  48. data/test/i386-linux/Executable.rb +86 -0
  49. data/test/i386-mswin32/Executable.rb +90 -0
  50. data/test/i386-mswin32/Plugins/Installers/NSIS.rb +39 -0
  51. data/test/run.rb +6 -2
  52. metadata +56 -29
  53. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/ChangeLog +0 -17
  54. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/TODO +0 -11
  55. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test/Applications/Basic/Distribution/ReleaseInfo.rb +0 -16
  56. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test/Common.rb +0 -50
  57. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test/i386-mswin32/run.rb +0 -19
  58. data/F:/RR/Source/rubypackager/svn/rubypackager/Releases/i386-mswin32/0.1.0.20091021/Normal/2009_10_21_19_10_02/Release/test/run.rb +0 -19
data/test/Common.rb ADDED
@@ -0,0 +1,346 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ require 'fileutils'
7
+ # Require rUtilAnts and RubyPackager now because we will redefine methods and classes in them.
8
+ require 'rUtilAnts/Plugins'
9
+ require 'RubyPackager/Tools'
10
+ # Mute everything except errors
11
+ RUtilAnts::Logging::initializeLogging(File.dirname(__FILE__), 'http://sourceforge.net/tracker/?group_id=274236&atid=1165400', true)
12
+
13
+ # Bypass the creation of any PluginsManager to include our dummy plugins automatically
14
+ module RUtilAnts
15
+
16
+ module Plugins
17
+
18
+ PluginsManager_ORG = PluginsManager
19
+ remove_const :PluginsManager
20
+
21
+ class PluginsManager < PluginsManager_ORG
22
+
23
+ # Constructor
24
+ def initialize
25
+ super
26
+ # Add dummy Installers and Distributors
27
+ registerNewPlugin('Installers', 'DummyInstaller1', nil, nil, 'RubyPackager::Test::Common::DummyInstaller1', nil)
28
+ registerNewPlugin('Installers', 'DummyInstaller2', nil, nil, 'RubyPackager::Test::Common::DummyInstaller2', nil)
29
+ registerNewPlugin('Distributors', 'DummyDistributor1', nil, nil, 'RubyPackager::Test::Common::DummyDistributor1', nil)
30
+ registerNewPlugin('Distributors', 'DummyDistributor2', nil, nil, 'RubyPackager::Test::Common::DummyDistributor2', nil)
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ module RubyPackager
40
+
41
+ # Redefine some functions used to communicate with external sites
42
+ module Tools
43
+
44
+ remove_method :sshWithPassword
45
+
46
+ # Execute some SSH command on a remote host protected with password
47
+ #
48
+ # Parameters:
49
+ # * *iSSHHost* (_String_): The SSH host
50
+ # * *iSSHLogin* (_String_): The SSH login
51
+ # * *iCmd* (_String_): The command to execute
52
+ def sshWithPassword(iSSHHost, iSSHLogin, iCmd)
53
+ $SSHCommands << [ 'SSH', {
54
+ :Host => iSSHHost,
55
+ :Login => iSSHLogin,
56
+ :Cmd => iCmd
57
+ } ]
58
+ end
59
+
60
+ remove_method :scpWithPassword
61
+
62
+ # Copy files through SCP.
63
+ #
64
+ # Parameters:
65
+ # * *iSCPHost* (_String_): Host
66
+ # * *iSCPLogin* (_String_): Login
67
+ # * *iFileSrc* (_String_): Path to local file to copy from
68
+ # * *iFileDst* (_String_): Path to remote file to copy to
69
+ def scpWithPassword(iSCPHost, iSCPLogin, iFileSrc, iFileDst)
70
+ $SSHCommands << [ 'SCP', {
71
+ :Host => iSCPHost,
72
+ :Login => iSCPLogin,
73
+ :FileSrc => iFileSrc,
74
+ :FileDst => iFileDst
75
+ } ]
76
+ end
77
+
78
+ end
79
+
80
+ module Test
81
+
82
+ module Common
83
+
84
+ class DummyInstaller1
85
+ # Create the installer with everything in the release directory.
86
+ #
87
+ # Parameters:
88
+ # * *iRootDir* (_String_): The Root directory
89
+ # * *iReleaseDir* (_String_): The release directory (all files to put in the installer are there)
90
+ # * *iInstallerDir* (_String_): The directory where the installer has to be put
91
+ # * *iVersion* (_String_): Release version
92
+ # * *iReleaseInfo* (_ReleaseInfo_): Release info
93
+ # Return:
94
+ # * _String_: File name to distribute, or nil in case of failure
95
+ def createInstaller(iRootDir, iReleaseDir, iInstallerDir, iVersion, iReleaseInfo)
96
+ rFileName = nil
97
+
98
+ Dir.glob("#{iReleaseDir}/*").each do |iFileName|
99
+ rFileName = "#{File.basename(iFileName)}.Installer1"
100
+ require 'fileutils'
101
+ FileUtils::cp(iFileName, "#{iInstallerDir}/#{rFileName}")
102
+ break
103
+ end
104
+
105
+ return rFileName
106
+ end
107
+
108
+ end
109
+
110
+ class DummyInstaller2
111
+ # Create the installer with everything in the release directory.
112
+ #
113
+ # Parameters:
114
+ # * *iRootDir* (_String_): The Root directory
115
+ # * *iReleaseDir* (_String_): The release directory (all files to put in the installer are there)
116
+ # * *iInstallerDir* (_String_): The directory where the installer has to be put
117
+ # * *iVersion* (_String_): Release version
118
+ # * *iReleaseInfo* (_ReleaseInfo_): Release info
119
+ # Return:
120
+ # * _String_: File name to distribute, or nil in case of failure
121
+ def createInstaller(iRootDir, iReleaseDir, iInstallerDir, iVersion, iReleaseInfo)
122
+ rFileName = nil
123
+
124
+ Dir.glob("#{iReleaseDir}/*").each do |iFileName|
125
+ rFileName = "#{File.basename(iFileName)}.Installer2"
126
+ require 'fileutils'
127
+ FileUtils::cp(iFileName, "#{iInstallerDir}/#{rFileName}")
128
+ break
129
+ end
130
+
131
+ return rFileName
132
+ end
133
+
134
+ end
135
+
136
+ class DummyDistributor1
137
+
138
+ def initialize
139
+ $Distributed1 = {}
140
+ end
141
+
142
+ # Distribute what has been generated
143
+ #
144
+ # Parameters:
145
+ # * *iInstallerDir* (_String_): Directory where installers are generated
146
+ # * *iReleaseVersion* (_String_): Release version
147
+ # * *iReleaseInfo* (_ReleaseInfo_): Release info
148
+ # * *iGeneratedFileNames* (<em>list<String></em>): List of files to distribute
149
+ # * *iDocDir* (_String_): Directory where the documentation has been generated
150
+ # Return:
151
+ # * _Boolean_: Success ?
152
+ def distribute(iInstallerDir, iReleaseVersion, iReleaseInfo, iGeneratedFileNames, iDocDir)
153
+ rSuccess = true
154
+
155
+ iGeneratedFileNames.each do |iFileName|
156
+ $Distributed1[File.basename(iFileName)] = nil
157
+ end
158
+
159
+ return rSuccess
160
+ end
161
+
162
+ end
163
+
164
+ class DummyDistributor2
165
+
166
+ def initialize
167
+ $Distributed2 = {}
168
+ end
169
+
170
+ # Distribute what has been generated
171
+ #
172
+ # Parameters:
173
+ # * *iInstallerDir* (_String_): Directory where installers are generated
174
+ # * *iReleaseVersion* (_String_): Release version
175
+ # * *iReleaseInfo* (_ReleaseInfo_): Release info
176
+ # * *iGeneratedFileNames* (<em>list<String></em>): List of files to distribute
177
+ # * *iDocDir* (_String_): Directory where the documentation has been generated
178
+ # Return:
179
+ # * _Boolean_: Success ?
180
+ def distribute(iInstallerDir, iReleaseVersion, iReleaseInfo, iGeneratedFileNames, iDocDir)
181
+ rSuccess = true
182
+
183
+ iGeneratedFileNames.each do |iFileName|
184
+ $Distributed2[File.basename(iFileName)] = nil
185
+ end
186
+
187
+ return rSuccess
188
+ end
189
+
190
+ end
191
+
192
+ # Execute a test
193
+ #
194
+ # Parameters:
195
+ # * *iRepositoryName* (_String_): Name of the repository for the test
196
+ # * *iArguments* (<em>list<String></em>): List of arguments to give to RubyPackager (except the release file)
197
+ # * *iReleaseFileName* (_String_): Name of the release file, relatively to the Distribution directory of the application
198
+ # * *iParams* (<em>map<Symbol,Object></em>): Additional parameters [optional = {}]
199
+ # ** *:IncludeRDoc* (_Boolean_): Do we generate RDoc ? [optional = false]
200
+ # * _CodeBlock_: The code called once the released has been made
201
+ # ** *iReleaseDir* (_String_): The directory in which the release has been made
202
+ # ** *iReleaseInfo* (<em>RubyPackager::ReleaseInfo</em>): The release info read
203
+ def execTest(iRepositoryName, iArguments, iReleaseInfoFileName, iParams = {})
204
+ lIncludeRDoc = iParams[:IncludeRDoc]
205
+ if (lIncludeRDoc == nil)
206
+ lIncludeRDoc = false
207
+ end
208
+ # Reset variables that will be used by dummy Distributors
209
+ # The list of commands SSH/SCP issued, along with their parameters
210
+ # list< [ String, map< Symbol, Object > ] >
211
+ # list< [ CommandName, map< AttributeName, Value > ] >
212
+ $SSHCommands = []
213
+ # Go to the application directory
214
+ lOldDir = Dir.getwd
215
+ lAppDir = File.expand_path("#{File.dirname(__FILE__)}/Repository/#{iRepositoryName}")
216
+ Dir.chdir(lAppDir)
217
+ # Clean the Releases dir if it exists already
218
+ FileUtils::rm_rf("#{lAppDir}/Releases")
219
+ # Launch everything
220
+ lRealReleaseInfoFileName = "Distribution/#{iReleaseInfoFileName}"
221
+ lSuccess = nil
222
+ if (lIncludeRDoc)
223
+ lSuccess = RubyPackager::Launcher.new.run(iArguments + [ lRealReleaseInfoFileName ])
224
+ else
225
+ lSuccess = RubyPackager::Launcher.new.run(iArguments + [ '--no-rdoc', lRealReleaseInfoFileName ])
226
+ end
227
+ Dir.chdir(lOldDir)
228
+ # Check if everything is ok
229
+ assert(lSuccess)
230
+ # Get the name of the directory
231
+ lDirs = Dir.glob("#{lAppDir}/Releases/#{RUBY_PLATFORM}/*/*/*")
232
+ assert_equal(1, lDirs.size)
233
+ lReleaseDir = lDirs[0]
234
+ # Read the release info
235
+ lReleaseInfo = nil
236
+ File.open("#{lAppDir}/#{lRealReleaseInfoFileName}", 'r') do |iFile|
237
+ lReleaseInfo = eval(iFile.read)
238
+ end
239
+ assert(lReleaseInfo.kind_of?(RubyPackager::ReleaseInfo))
240
+ yield(lReleaseDir, lReleaseInfo)
241
+ # Clean the Releases dir
242
+ FileUtils::rm_rf("#{lAppDir}/Releases")
243
+ end
244
+
245
+ # Check content of a released ReleaseInfo file
246
+ #
247
+ # Parameters:
248
+ # * *iReleaseDir* (_String_): The directory of the release
249
+ # * *iReleaseInfo* (<em>RubyPackager::ReleaseInfo</em>): The release info used by the release
250
+ # * *iParams* (<em>map<Symbol,Object></em>): Additional parameters:
251
+ # ** *:Version* (_String_): The version [optional = 'UnnamedVersion']
252
+ # ** *:Tags* (<em>list<String></em>): List of Tags [optional = []]
253
+ def checkReleaseInfo(iReleaseDir, iReleaseInfo, iParams = {})
254
+ lVersion = iParams[:Version]
255
+ if (lVersion == nil)
256
+ lVersion = 'UnnamedVersion'
257
+ end
258
+ lTags = iParams[:Tags]
259
+ if (lTags == nil)
260
+ lTags = []
261
+ end
262
+ assert(File.exists?("#{iReleaseDir}/Release/ReleaseInfo"))
263
+ lReleasedInfo = nil
264
+ File.open("#{iReleaseDir}/Release/ReleaseInfo", 'r') do |iFile|
265
+ lReleasedInfo = eval(iFile.read)
266
+ end
267
+ assert(lReleasedInfo.kind_of?(Hash))
268
+ assert_equal(lVersion, lReleasedInfo[:Version])
269
+ assert_equal(lTags, lReleasedInfo[:Tags])
270
+ assert_equal('Project:DevStatus', lReleasedInfo[:DevStatus])
271
+ end
272
+
273
+ # Check generated RDoc
274
+ #
275
+ # Parameters:
276
+ # * *iReleaseDir* (_String_): The directory of the release
277
+ # * *iReleaseInfo* (<em>RubyPackager::ReleaseInfo</em>): The release info used by the release
278
+ def checkRDoc(iReleaseDir, iReleaseInfo)
279
+ assert(File.exists?("#{iReleaseDir}/Documentation/rdoc/index.html"))
280
+ end
281
+
282
+ # Check generated release notes
283
+ #
284
+ # Parameters:
285
+ # * *iReleaseDir* (_String_): The directory of the release
286
+ # * *iReleaseInfo* (<em>RubyPackager::ReleaseInfo</em>): The release info used by the release
287
+ def checkReleaseNotes(iReleaseDir, iReleaseInfo)
288
+ assert(File.exists?("#{iReleaseDir}/Documentation/ReleaseNote.html"))
289
+ assert(File.exists?("#{iReleaseDir}/Documentation/ReleaseNote.txt"))
290
+ end
291
+
292
+ # Run a generated executable and get its output
293
+ #
294
+ # Parameters:
295
+ # * *iFileName* (_String_): The file name to execute
296
+ # Return:
297
+ # * _String_: The output
298
+ def runExe(lExeFileName)
299
+ rOutput = nil
300
+
301
+ lOldDir = Dir.getwd
302
+ Dir.chdir(File.dirname(lExeFileName))
303
+ begin
304
+ begin
305
+ # TODO: Bug ???: On Linux, we need to "cd ." before, otherwise the executable is not found. Understand why and remove it.
306
+ rOutput = `cd .;#{File.basename(lExeFileName)}`
307
+ rescue Exception
308
+ assert(false)
309
+ end
310
+ rescue Exception
311
+ Dir.chdir(lOldDir)
312
+ raise
313
+ end
314
+ Dir.chdir(lOldDir)
315
+
316
+ return rOutput
317
+ end
318
+
319
+ # Get the gem specification corresponding to a given gem file
320
+ #
321
+ # Parameters:
322
+ # * *iGemFileName* (_String_): Name of the Gem file
323
+ # Return:
324
+ # * <em>Gem::Specification</em>: The corresponding Gem specification
325
+ def getGemSpec(iGemFileName)
326
+ rGemSpec = nil
327
+
328
+ lOldDir = Dir.getwd
329
+ Dir.chdir(File.dirname(iGemFileName))
330
+ require 'rubygems'
331
+ # TODO: Bug (Ruby): Remove this test when Ruby will be able to deal .bat files correctly.
332
+ if (RUBY_PLATFORM == 'i386-mswin32')
333
+ rGemSpec = eval(`gem.bat specification #{File.basename(iGemFileName)} --ruby`.gsub(/Gem::/,'::Gem::'))
334
+ else
335
+ rGemSpec = eval(`gem specification #{File.basename(iGemFileName)} --ruby`.gsub(/Gem::/,'::Gem::'))
336
+ end
337
+ Dir.chdir(lOldDir)
338
+
339
+ return rGemSpec
340
+ end
341
+
342
+ end
343
+
344
+ end
345
+
346
+ end
@@ -0,0 +1,156 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RubyPackager
7
+
8
+ module Test
9
+
10
+ module PlatformIndependent
11
+
12
+ class CommandLine < ::Test::Unit::TestCase
13
+
14
+ include RubyPackager::Test::Common
15
+
16
+ # Test release a specific version
17
+ def testVersion
18
+ execTest('Libraries/Basic', [ '-v', '0.0.1.20091030' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
19
+ checkReleaseInfo(iReleaseDir, iReleaseInfo, :Version => '0.0.1.20091030')
20
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
21
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
22
+ end
23
+ end
24
+
25
+ # Test release a specific version (long version)
26
+ def testVersionLong
27
+ execTest('Libraries/Basic', [ '--version=0.0.1.20091030' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
28
+ checkReleaseInfo(iReleaseDir, iReleaseInfo, :Version => '0.0.1.20091030')
29
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
30
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
31
+ end
32
+ end
33
+
34
+ # Test release with Tags
35
+ def testTags
36
+ execTest('Libraries/Basic', [ '-t', 'Tag1', '-t', 'Tag2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
37
+ checkReleaseInfo(iReleaseDir, iReleaseInfo, :Tags => ['Tag1', 'Tag2'] )
38
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
39
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
40
+ end
41
+ end
42
+
43
+ # Test release with Tags (long version)
44
+ def testTagsLong
45
+ execTest('Libraries/Basic', [ '--tag=Tag1', '--tag=Tag2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
46
+ checkReleaseInfo(iReleaseDir, iReleaseInfo, :Tags => ['Tag1', 'Tag2'] )
47
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
48
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
49
+ end
50
+ end
51
+
52
+ # Test release with Comments
53
+ def testComment
54
+ execTest('Libraries/Basic', [ '-c', 'Comment' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
55
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
56
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
57
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
58
+ end
59
+ end
60
+
61
+ # Test release with Comments (long version)
62
+ def testCommentLong
63
+ execTest('Libraries/Basic', [ '--comment=Comment' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
64
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
65
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
66
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
67
+ end
68
+ end
69
+
70
+ # Test release with Test files
71
+ def testTest
72
+ execTest('Libraries/Basic', [ '-n' ], 'ReleaseInfo_Test.rb') do |iReleaseDir, iReleaseInfo|
73
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
74
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
75
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
76
+ assert(File.exists?("#{iReleaseDir}/Release/Test.rb"))
77
+ end
78
+ end
79
+
80
+ # Test release with Test files (long version)
81
+ def testTestLong
82
+ execTest('Libraries/Basic', [ '--includeTest' ], 'ReleaseInfo_Test.rb') do |iReleaseDir, iReleaseInfo|
83
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
84
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
85
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
86
+ assert(File.exists?("#{iReleaseDir}/Release/Test.rb"))
87
+ end
88
+ end
89
+
90
+ # Test release with Installers
91
+ def testInstallers
92
+ execTest('Libraries/Basic', [ '-i', 'DummyInstaller1', '-i', 'DummyInstaller2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
93
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
94
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
95
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
96
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer1"))
97
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer2"))
98
+ end
99
+ end
100
+
101
+ # Test release with Installers (long version)
102
+ def testInstallersLong
103
+ execTest('Libraries/Basic', [ '--installer=DummyInstaller1', '--installer=DummyInstaller2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
104
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
105
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
106
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
107
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer1"))
108
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer2"))
109
+ end
110
+ end
111
+
112
+ # Test release with Distributors
113
+ def testDistributors
114
+ execTest('Libraries/Basic', [ '-i', 'DummyInstaller1', '-i', 'DummyInstaller2', '-d', 'DummyDistributor1', '-d', 'DummyDistributor2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
115
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
116
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
117
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
118
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer1"))
119
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer2"))
120
+ assert($Distributed1 != nil)
121
+ assert_equal(2, $Distributed1.size)
122
+ assert($Distributed1.has_key?('MainLib.rb.Installer1'))
123
+ assert($Distributed1.has_key?('MainLib.rb.Installer2'))
124
+ assert($Distributed2 != nil)
125
+ assert_equal(2, $Distributed2.size)
126
+ assert($Distributed2.has_key?('MainLib.rb.Installer1'))
127
+ assert($Distributed2.has_key?('MainLib.rb.Installer2'))
128
+ end
129
+ end
130
+
131
+ # Test release with Distributors (long version)
132
+ def testDistributorsLong
133
+ execTest('Libraries/Basic', [ '-i', 'DummyInstaller1', '-i', 'DummyInstaller2', '--distributor=DummyDistributor1', '--distributor=DummyDistributor2' ], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
134
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
135
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
136
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
137
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer1"))
138
+ assert(File.exists?("#{iReleaseDir}/Installer/MainLib.rb.Installer2"))
139
+ assert($Distributed1 != nil)
140
+ assert_equal(2, $Distributed1.size)
141
+ assert($Distributed1.has_key?('MainLib.rb.Installer1'))
142
+ assert($Distributed1.has_key?('MainLib.rb.Installer2'))
143
+ assert($Distributed2 != nil)
144
+ assert_equal(2, $Distributed2.size)
145
+ assert($Distributed2.has_key?('MainLib.rb.Installer1'))
146
+ assert($Distributed2.has_key?('MainLib.rb.Installer2'))
147
+ end
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+
154
+ end
155
+
156
+ end
@@ -0,0 +1,31 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RubyPackager
7
+
8
+ module Test
9
+
10
+ module PlatformIndependent
11
+
12
+ class Executable < ::Test::Unit::TestCase
13
+
14
+ include RubyPackager::Test::Common
15
+
16
+ # Test the basic usage
17
+ def testBasicExecutable
18
+ execTest('Applications/Basic', [], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
19
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
20
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
21
+ assert(File.exists?("#{iReleaseDir}/Release/Main.rb"))
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,31 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RubyPackager
7
+
8
+ module Test
9
+
10
+ module PlatformIndependent
11
+
12
+ class Library < ::Test::Unit::TestCase
13
+
14
+ include RubyPackager::Test::Common
15
+
16
+ # Test the basic usage
17
+ def testBasicLib
18
+ execTest('Libraries/Basic', [], 'ReleaseInfo.rb') do |iReleaseDir, iReleaseInfo|
19
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
20
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
21
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,62 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RubyPackager
7
+
8
+ module Test
9
+
10
+ module PlatformIndependent
11
+
12
+ class Misc < ::Test::Unit::TestCase
13
+
14
+ include RubyPackager::Test::Common
15
+
16
+ # Test release without Test files
17
+ def testWithoutTest
18
+ execTest('Libraries/Basic', [], 'ReleaseInfo_Test.rb') do |iReleaseDir, iReleaseInfo|
19
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
20
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
21
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
22
+ assert(!File.exists?("#{iReleaseDir}/Release/Test.rb"))
23
+ end
24
+ end
25
+
26
+ # Test release with Test files
27
+ def testWithTest
28
+ execTest('Libraries/Basic', [ '-n' ], 'ReleaseInfo_Test.rb') do |iReleaseDir, iReleaseInfo|
29
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
30
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
31
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
32
+ assert(File.exists?("#{iReleaseDir}/Release/Test.rb"))
33
+ end
34
+ end
35
+
36
+ # Test release with Additional files
37
+ def testWithAdditional
38
+ execTest('Libraries/Basic', [], 'ReleaseInfo_Additional.rb') do |iReleaseDir, iReleaseInfo|
39
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
40
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
41
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
42
+ assert(File.exists?("#{iReleaseDir}/Release/Add.rb"))
43
+ end
44
+ end
45
+
46
+ # Test release with RDoc
47
+ def testWithRDoc
48
+ execTest('Libraries/Basic', [], 'ReleaseInfo.rb', :IncludeRDoc => true) do |iReleaseDir, iReleaseInfo|
49
+ checkReleaseInfo(iReleaseDir, iReleaseInfo)
50
+ checkReleaseNotes(iReleaseDir, iReleaseInfo)
51
+ checkRDoc(iReleaseDir, iReleaseInfo)
52
+ assert(File.exists?("#{iReleaseDir}/Release/MainLib.rb"))
53
+ end
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
62
+ end