rake-delphi 0.0.4 → 0.0.5

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 (60) hide show
  1. data/Gemfile +4 -0
  2. data/Gemfile.lock +19 -0
  3. data/Rakefile.rb +6 -0
  4. data/lib/rake/common/git.rb +3 -2
  5. data/lib/rake/common/logger.rb +26 -0
  6. data/lib/rake/common/sendmailtask.rb +1 -1
  7. data/lib/rake/common/ziptask.rb +3 -3
  8. data/lib/rake/delphi.rb +1 -0
  9. data/lib/rake/delphi/dcc32.rb +63 -13
  10. data/lib/rake/delphi/envvariables.rb +41 -13
  11. data/lib/rake/delphi/project.rb +0 -1
  12. data/lib/rake/delphi/projectinfo.rb +28 -7
  13. data/lib/rake/delphi/resources.rb +3 -2
  14. data/lib/rake/delphi/tool.rb +45 -13
  15. data/lib/rake/delphi/version.rb +1 -1
  16. data/lib/rake/helpers/filelist.rb +1 -0
  17. data/lib/rake/helpers/logger.rb +1 -0
  18. data/lib/rake/helpers/rake.rb +1 -0
  19. data/lib/rake/helpers/raketask.rb +1 -2
  20. data/rake-delphi.gemspec +2 -1
  21. data/test/helpers/verinfo.rb +42 -0
  22. data/test/resources/testproject/Rakefile.rb +5 -2
  23. data/test/resources/testproject/bin/test_compile/testproject.exe +0 -0
  24. data/test/resources/testproject/bin/test_compile_alter_cfg/testproject.exe +0 -0
  25. data/test/resources/testproject/bin/test_compile_consts/testproject.exe +0 -0
  26. data/test/resources/testproject/bin/test_compile_debug_info/testproject.drc +366 -0
  27. data/test/resources/testproject/bin/test_compile_debug_info/testproject.exe +0 -0
  28. data/test/resources/testproject/bin/test_compile_debug_info/testproject.map +1798 -0
  29. data/test/resources/testproject/bin/test_compile_defines/testproject.exe +0 -0
  30. data/test/resources/testproject/bin/test_compile_use_absent_config/testproject.exe +0 -0
  31. data/test/resources/testproject/bin/test_compile_use_config/testproject.exe +0 -0
  32. data/test/resources/testproject/bin/test_compile_use_library_path/testproject.exe +0 -0
  33. data/test/resources/testproject/bin/test_compile_with_explicit_and_implicit_libs/testproject.exe +0 -0
  34. data/test/resources/testproject/bin/test_compile_with_explicit_libs/testproject.exe +0 -0
  35. data/test/resources/testproject/bin/test_compile_with_libs/testproject.exe +0 -0
  36. data/test/resources/testproject/bin/test_compile_with_resources/testproject.exe +0 -0
  37. data/test/resources/testproject/bin/test_compile_with_resources_and_libs/testproject.exe +0 -0
  38. data/test/resources/testproject/dcu/ExplicitLibUnit.dcu +0 -0
  39. data/test/resources/testproject/dcu/LibUnit.dcu +0 -0
  40. data/test/resources/testproject/resources.res +0 -0
  41. data/test/resources/testproject/{testproject.bdsproj → testproject.2006.bdsproj} +0 -0
  42. data/test/resources/testproject/{testproject.dproj → testproject.2007.dproj} +0 -0
  43. data/test/resources/testproject/testproject.2010.dproj +108 -0
  44. data/test/resources/testproject/testproject.cfg.1 +8 -0
  45. data/test/resources/testproject/testproject.dproj.2007 +77 -0
  46. data/test/resources/testproject/testproject.drc +210 -0
  47. data/test/resources/testproject/testproject.exe +0 -0
  48. data/test/resources/testproject/testproject.identcache +0 -0
  49. data/test/resources/testproject/testproject.rc +60 -0
  50. data/test/resources/testproject/testproject.res +0 -0
  51. data/test/resources/testproject/testproject.xe5.dproj +179 -0
  52. data/test/test-delphi.rb +33 -5
  53. data/test/test-envvariables.rb +23 -0
  54. data/test/test-git.rb +2 -2
  55. data/test/test-hashes.rb +0 -1
  56. data/test/test-projectinfo.rb +89 -9
  57. data/test/test-zip.rb +0 -8
  58. metadata +100 -43
  59. data/.gitignore +0 -17
  60. data/test/resources/testproject/.gitignore +0 -8
@@ -0,0 +1,179 @@
1
+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
+ <PropertyGroup>
3
+ <ProjectGuid>{A045E9FA-AB18-4219-936D-16A329020CB9}</ProjectGuid>
4
+ <ProjectVersion>15.1</ProjectVersion>
5
+ <FrameworkType>None</FrameworkType>
6
+ <MainSource>Project1.dpr</MainSource>
7
+ <Base>True</Base>
8
+ <Config Condition="'$(Config)'==''">Debug</Config>
9
+ <Platform Condition="'$(Platform)'==''">Win32</Platform>
10
+ <TargetedPlatforms>1</TargetedPlatforms>
11
+ <AppType>Console</AppType>
12
+ </PropertyGroup>
13
+ <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
14
+ <Base>true</Base>
15
+ </PropertyGroup>
16
+ <PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
17
+ <Base_Android>true</Base_Android>
18
+ <CfgParent>Base</CfgParent>
19
+ <Base>true</Base>
20
+ </PropertyGroup>
21
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
22
+ <Base_Win32>true</Base_Win32>
23
+ <CfgParent>Base</CfgParent>
24
+ <Base>true</Base>
25
+ </PropertyGroup>
26
+ <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
27
+ <Base_Win64>true</Base_Win64>
28
+ <CfgParent>Base</CfgParent>
29
+ <Base>true</Base>
30
+ </PropertyGroup>
31
+ <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
32
+ <Cfg_1>true</Cfg_1>
33
+ <CfgParent>Base</CfgParent>
34
+ <Base>true</Base>
35
+ </PropertyGroup>
36
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
37
+ <Cfg_1_Win32>true</Cfg_1_Win32>
38
+ <CfgParent>Cfg_1</CfgParent>
39
+ <Cfg_1>true</Cfg_1>
40
+ <Base>true</Base>
41
+ </PropertyGroup>
42
+ <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
43
+ <Cfg_2>true</Cfg_2>
44
+ <CfgParent>Base</CfgParent>
45
+ <Base>true</Base>
46
+ </PropertyGroup>
47
+ <PropertyGroup Condition="'$(Base)'!=''">
48
+ <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
49
+ <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
50
+ <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
51
+ <DCC_E>false</DCC_E>
52
+ <DCC_N>false</DCC_N>
53
+ <DCC_S>false</DCC_S>
54
+ <DCC_F>false</DCC_F>
55
+ <DCC_K>false</DCC_K>
56
+ </PropertyGroup>
57
+ <PropertyGroup Condition="'$(Base_Android)'!=''">
58
+ <DCC_UsePackage>FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;ibxpress;DbxCommonDriver;IndyProtocols;dbxcds;FireDACCommonDriver;bindengine;soaprtl;bindcompdbx;FMXTee;fmxFireDAC;CustomIPTransport;FireDAC;dsnap;IndyCore;FireDACDataSnapDriver;IndyIPCommon;CloudService;FireDACIBDriver;inet;FireDACDBXDriver;FmxTeeUI;RESTComponents;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
59
+ <Android_LauncherIcon72>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png</Android_LauncherIcon72>
60
+ <Android_LauncherIcon36>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png</Android_LauncherIcon36>
61
+ <Android_LauncherIcon144>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png</Android_LauncherIcon144>
62
+ <Android_LauncherIcon48>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png</Android_LauncherIcon48>
63
+ <Android_LauncherIcon96>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png</Android_LauncherIcon96>
64
+ </PropertyGroup>
65
+ <PropertyGroup Condition="'$(Base_Win32)'!=''">
66
+ <VerInfo_Locale>1033</VerInfo_Locale>
67
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
68
+ <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
69
+ <DCC_UsePackage>DataSnapIndy10ServerTransport;FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;TeeDB;vclib;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;Tee;vclFireDAC;DataSnapProviderClient;xmlrtl;svnui;ibxpress;DbxCommonDriver;DBXSybaseASEDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;FireDACCommonDriver;MetropolisUILiveTile;bindengine;vclactnband;vcldb;soaprtl;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;vclribbon;VclSmp;FireDACMSSQLDriver;FireDAC;dsnap;Intraweb;fmxase;vcl;IndyCore;FireDACDataSnapDriver;IndyIPServer;IndyIPCommon;VCLRESTComponents;CloudService;dsnapcon;FireDACIBDriver;DBXFirebirdDriver;inet;DBXMSSQLDriver;fmxobj;FireDACDBXDriver;DBXInformixDriver;DataSnapConnectors;FireDACMySQLDriver;FmxTeeUI;vclx;CodeSiteExpressPkg;inetdbxpress;svn;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;FireDACDb2Driver;RESTComponents;bdertl;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
70
+ <DCC_ConsoleTarget>true</DCC_ConsoleTarget>
71
+ </PropertyGroup>
72
+ <PropertyGroup Condition="'$(Base_Win64)'!=''">
73
+ <DCC_ConsoleTarget>true</DCC_ConsoleTarget>
74
+ <DCC_UsePackage>DataSnapIndy10ServerTransport;FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;TeeDB;vclib;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;Tee;vclFireDAC;DataSnapProviderClient;xmlrtl;ibxpress;DbxCommonDriver;DBXSybaseASEDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;FireDACCommonDriver;MetropolisUILiveTile;bindengine;vclactnband;vcldb;soaprtl;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;vclribbon;VclSmp;FireDACMSSQLDriver;FireDAC;dsnap;Intraweb;fmxase;vcl;IndyCore;FireDACDataSnapDriver;IndyIPServer;IndyIPCommon;VCLRESTComponents;CloudService;dsnapcon;FireDACIBDriver;DBXFirebirdDriver;inet;DBXMSSQLDriver;fmxobj;FireDACDBXDriver;DBXInformixDriver;DataSnapConnectors;FireDACMySQLDriver;FmxTeeUI;vclx;inetdbxpress;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;FireDACDb2Driver;RESTComponents;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
75
+ </PropertyGroup>
76
+ <PropertyGroup Condition="'$(Cfg_1)'!=''">
77
+ <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
78
+ <DCC_DebugDCUs>true</DCC_DebugDCUs>
79
+ <DCC_Optimize>false</DCC_Optimize>
80
+ <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
81
+ <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
82
+ <DCC_RemoteDebug>true</DCC_RemoteDebug>
83
+ </PropertyGroup>
84
+ <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
85
+ <DCC_RemoteDebug>false</DCC_RemoteDebug>
86
+ </PropertyGroup>
87
+ <PropertyGroup Condition="'$(Cfg_2)'!=''">
88
+ <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
89
+ <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
90
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
91
+ <DCC_DebugInformation>0</DCC_DebugInformation>
92
+ </PropertyGroup>
93
+ <ItemGroup>
94
+ <DelphiCompile Include="$(MainSource)">
95
+ <MainSource>MainSource</MainSource>
96
+ </DelphiCompile>
97
+ <BuildConfiguration Include="Release">
98
+ <Key>Cfg_2</Key>
99
+ <CfgParent>Base</CfgParent>
100
+ </BuildConfiguration>
101
+ <BuildConfiguration Include="Base">
102
+ <Key>Base</Key>
103
+ </BuildConfiguration>
104
+ <BuildConfiguration Include="Debug">
105
+ <Key>Cfg_1</Key>
106
+ <CfgParent>Base</CfgParent>
107
+ </BuildConfiguration>
108
+ </ItemGroup>
109
+ <ProjectExtensions>
110
+ <Borland.Personality>Delphi.Personality.12</Borland.Personality>
111
+ <Borland.ProjectType/>
112
+ <BorlandProject>
113
+ <Delphi.Personality>
114
+ <VersionInfo>
115
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
116
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
117
+ <VersionInfo Name="MajorVer">1</VersionInfo>
118
+ <VersionInfo Name="MinorVer">0</VersionInfo>
119
+ <VersionInfo Name="Release">0</VersionInfo>
120
+ <VersionInfo Name="Build">0</VersionInfo>
121
+ <VersionInfo Name="Debug">False</VersionInfo>
122
+ <VersionInfo Name="PreRelease">False</VersionInfo>
123
+ <VersionInfo Name="Special">False</VersionInfo>
124
+ <VersionInfo Name="Private">False</VersionInfo>
125
+ <VersionInfo Name="DLL">False</VersionInfo>
126
+ <VersionInfo Name="Locale">1049</VersionInfo>
127
+ <VersionInfo Name="CodePage">1251</VersionInfo>
128
+ </VersionInfo>
129
+ <VersionInfoKeys>
130
+ <VersionInfoKeys Name="CompanyName">Rake</VersionInfoKeys>
131
+ <VersionInfoKeys Name="FileDescription">Test rake-delphi project XE5 description</VersionInfoKeys>
132
+ <VersionInfoKeys Name="FileVersion">4.3.2.1</VersionInfoKeys>
133
+ <VersionInfoKeys Name="InternalName">testproject.exe</VersionInfoKeys>
134
+ <VersionInfoKeys Name="LegalCopyright">Copyright. Копирайт</VersionInfoKeys>
135
+ <VersionInfoKeys Name="LegalTrademarks">Trademark. Торговая марка</VersionInfoKeys>
136
+ <VersionInfoKeys Name="OriginalFilename">testproject.exe</VersionInfoKeys>
137
+ <VersionInfoKeys Name="ProductName">Test rake-delphi project XE5 product name</VersionInfoKeys>
138
+ <VersionInfoKeys Name="ProductVersion">1.2.3.4</VersionInfoKeys>
139
+ <VersionInfoKeys Name="Comments">Test project comment</VersionInfoKeys>
140
+ <VersionInfoKeys Name="CFBundleName"/>
141
+ <VersionInfoKeys Name="CFBundleDisplayName"/>
142
+ <VersionInfoKeys Name="UIDeviceFamily"/>
143
+ <VersionInfoKeys Name="CFBundleIdentifier"/>
144
+ <VersionInfoKeys Name="CFBundleVersion"/>
145
+ <VersionInfoKeys Name="CFBundlePackageType"/>
146
+ <VersionInfoKeys Name="CFBundleSignature"/>
147
+ <VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
148
+ <VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
149
+ <VersionInfoKeys Name="CFBundleExecutable"/>
150
+ <VersionInfoKeys Name="CFBundleResourceSpecification"/>
151
+ <VersionInfoKeys Name="LSRequiresIPhoneOS"/>
152
+ <VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
153
+ <VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
154
+ <VersionInfoKeys Name="package"/>
155
+ <VersionInfoKeys Name="label"/>
156
+ <VersionInfoKeys Name="versionCode"/>
157
+ <VersionInfoKeys Name="versionName"/>
158
+ <VersionInfoKeys Name="persistent"/>
159
+ <VersionInfoKeys Name="restoreAnyVersion"/>
160
+ <VersionInfoKeys Name="installLocation"/>
161
+ <VersionInfoKeys Name="largeHeap"/>
162
+ <VersionInfoKeys Name="theme"/>
163
+ </VersionInfoKeys>
164
+ <Source>
165
+ <Source Name="MainSource">Project1.dpr</Source>
166
+ </Source>
167
+ </Delphi.Personality>
168
+ <Deployment/>
169
+ <Platforms>
170
+ <Platform value="Android">False</Platform>
171
+ <Platform value="Win32">True</Platform>
172
+ <Platform value="Win64">False</Platform>
173
+ </Platforms>
174
+ </BorlandProject>
175
+ <ProjectFileVersion>12</ProjectFileVersion>
176
+ </ProjectExtensions>
177
+ <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
178
+ <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
179
+ </Project>
data/test/test-delphi.rb CHANGED
@@ -8,10 +8,11 @@ require 'rake/delphi/project'
8
8
  require 'rake/delphi/tool'
9
9
  require 'rake/helpers/unittest'
10
10
  require 'helpers/consts'
11
+ require 'helpers/verinfo'
11
12
 
12
13
  module DelphiTests
13
14
 
14
- class TestDelphi < Test::Unit::TestCase
15
+ class TestDelphi < TestVerInfo
15
16
  private
16
17
  def reenable_tasks(task)
17
18
  return unless task.class <= Rake::Task
@@ -52,15 +53,18 @@ private
52
53
  end
53
54
 
54
55
  def exe
55
- exe = PROJECT_EXE % name.gsub(/[():]/, '_')
56
+ return PROJECT_EXE % name.gsub(/[():]/, '_')
56
57
  end
58
+
57
59
  public
58
60
  def setup
61
+ Rake::Delphi::Dcc32Tool.reinit
62
+ ENV['DELPHI_DIR'] = nil
63
+ super
59
64
  ENV['RAKE_DIR'] = PROJECT_PATH
60
65
  File.unlink(exe) if File.exists?(exe)
61
66
  res = PROJECT_PATH + '/resources.res'
62
67
  File.unlink(res) if File.exists?(res)
63
- # assert(! File.exists?(exe), 'File %s exists' % exe)
64
68
  require PROJECT_PATH + '/Rakefile.rb'
65
69
  end
66
70
 
@@ -109,6 +113,18 @@ public
109
113
  'testproject works-=CONFIG=-')
110
114
  end
111
115
 
116
+ def test_compile_use_absent_config
117
+ RakeFileUtils.verbose(Rake::Delphi::Logger.debug?) do
118
+ mv PROJECT_PATH.pathmap('%p%s%f.cfg'), PROJECT_PATH.pathmap('%p%s%f.absent.cfg')
119
+ begin
120
+ _test_compile_and_output({:usecfg => true},
121
+ 'testproject works')
122
+ ensure
123
+ mv PROJECT_PATH.pathmap('%p%s%f.absent.cfg'), PROJECT_PATH.pathmap('%p%s%f.cfg')
124
+ end
125
+ end
126
+ end
127
+
112
128
  def test_compile_use_library_path
113
129
  # usually Indy components are in Delphi library paths
114
130
  _test_compile_and_output({:defines => 'INDY', :uselibrarypath => true},
@@ -146,7 +162,19 @@ public
146
162
  end
147
163
  end
148
164
 
149
- class TestRCResourceCompiler < Test::Unit::TestCase
165
+ # extend Rake::Delphi::RCResourceCompiler with .delphidir method
166
+ # (just for tests)
167
+ module Rake::Delphi
168
+
169
+ class RCResourceCompiler
170
+ def delphidir
171
+ @@delphidir
172
+ end
173
+ end
174
+
175
+ end
176
+
177
+ class TestRCResourceCompiler < Test::Unit::TestCase
150
178
  private
151
179
  public
152
180
  def setup
@@ -163,4 +191,4 @@ public
163
191
  end
164
192
  end
165
193
 
166
- end
194
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rake'
4
+ require 'test/unit'
5
+ require 'rake/delphi/envvariables'
6
+ require 'rake/helpers/unittest'
7
+
8
+ class TestEnvVariables < Test::Unit::TestCase
9
+
10
+ def setup
11
+ ENV['BDS_PLATFORM'] = 'BDS platform'
12
+ ENV['BDS_PLATFORM_CASE'] = 'BDS platform case'
13
+ end
14
+
15
+ def test_expands
16
+ env_vars = Rake::Delphi::EnvVariables.new(nil, 'c:/delphi directory/')
17
+ assert_equal('c:/delphi directory', env_vars['BDS'])
18
+ assert_equal('c:/delphi directory/Lib', env_vars['BDSLIB'])
19
+ assert_equal('Platform: BDS platform', env_vars.expand('Platform: $(BDS_PLATFORM)'))
20
+ assert_equal('Platform: BDS platform case', env_vars.expand('Platform: $(bds_platform_case)'))
21
+ assert_equal('Env: $(BDS_NON_EXISTANT)', env_vars.expand('Env: $(BDS_NON_EXISTANT)'))
22
+ end
23
+ end
data/test/test-git.rb CHANGED
@@ -15,8 +15,8 @@ private
15
15
  Rake::Delphi::ChDir.new(@rake_task, @test_git_dir) do
16
16
  `rm -rf .git *`
17
17
  `git init .`
18
- `git config --global user.email "git@test.ru"`
19
- `git config --global user.name "Git test"`
18
+ `git config user.email "git@test.ru"`
19
+ `git config user.name "Git test"`
20
20
  `echo file content > file.txt`
21
21
  `git add file.txt`
22
22
  `git commit -m "first commit"`
data/test/test-hashes.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'rake'
4
- require 'fileutils'
5
4
  require 'test/unit'
6
5
  require 'rake/common/hashtask'
7
6
  require 'rake/helpers/unittest'
@@ -7,6 +7,7 @@ require 'rake/delphi/projectinfo'
7
7
  require 'rake/delphi/dcc32'
8
8
  require 'rake/helpers/unittest'
9
9
  require 'helpers/consts'
10
+ require 'helpers/verinfo'
10
11
 
11
12
  module Rake
12
13
  module Delphi
@@ -21,27 +22,37 @@ end
21
22
 
22
23
  module DelphiTests
23
24
 
24
- class TestBDSVersionInfo < Test::Unit::TestCase
25
+ class TestBDSVersionInfo < TestVerInfo
25
26
  private
26
27
  def version
27
- 2006
28
+ '2006'
29
+ end
30
+ protected
31
+ def delphi_version
32
+ return '10'
33
+ end
34
+
35
+ def do_getinfo
36
+ @info = Rake::Delphi::BDSVersionInfo.new(@rake_task)
28
37
  end
29
38
  public
30
39
  def setup
40
+ super
31
41
  @rake_task = Rake::Delphi::Dcc32Task.new('some-task-' + name, Rake.application)
32
42
  @rake_task.systempath = PROJECT_PATH + '/testproject.dpr'
33
- @info = Rake::Delphi::BDSVersionInfo.new(@rake_task)
43
+ do_getinfo
34
44
  end
35
45
 
36
46
  def test_info
47
+ return unless prepare_ver_info_file?
37
48
  assert_equal '4.3.2.1', @info['FileVersion']
38
49
  assert_equal 'Rake', @info['CompanyName']
39
- assert_equal 'Test rake-delphi project %d description' % version, @info['FileDescription']
50
+ assert_equal 'Test rake-delphi project %s description' % version, @info['FileDescription']
40
51
  assert_equal 'testproject.exe', @info['InternalName']
41
52
  assert_equal 'Copyright. ��������', @info['LegalCopyright']
42
53
  assert_equal 'Trademark. �������� �����', @info['LegalTrademarks']
43
54
  assert_equal 'testproject.exe', @info['OriginalFilename']
44
- assert_equal 'Test rake-delphi project %d product name' % version, @info['ProductName']
55
+ assert_equal 'Test rake-delphi project %s product name' % version, @info['ProductName']
45
56
  assert_equal '1.2.3.4', @info['ProductVersion']
46
57
  assert_equal 'Test project comment', @info['Comments']
47
58
  end
@@ -50,17 +61,86 @@ end
50
61
  class TestRAD2007VersionInfo < TestBDSVersionInfo
51
62
  private
52
63
  def version
53
- 2007
64
+ '2007'
65
+ end
66
+ protected
67
+ def do_getinfo
68
+ @info = Rake::Delphi::RAD2007VersionInfo.new(@rake_task)
69
+ end
70
+
71
+ def delphi_version
72
+ return '11'
54
73
  end
55
74
  public
56
- def setup
75
+ def test_info
57
76
  super
58
- @info = Rake::Delphi::RAD2007VersionInfo.new(@rake_task)
77
+ end
78
+ end
79
+
80
+ class TestRAD2010VersionInfo < TestBDSVersionInfo
81
+ private
82
+ def version
83
+ '2010'
84
+ end
85
+ protected
86
+ def do_getinfo
87
+ @info = Rake::Delphi::RAD2010VersionInfo.new(@rake_task)
88
+ end
89
+
90
+ def delphi_version
91
+ return '13'
92
+ end
93
+ public
94
+ def test_info
95
+ super
96
+ end
97
+ end
98
+
99
+ class TestXEVersionInfo < TestBDSVersionInfo
100
+ private
101
+ def version
102
+ 'XE5'
103
+ end
104
+ protected
105
+ def delphi_version
106
+ return '18'
59
107
  end
60
108
 
109
+ def do_getinfo
110
+ @info = Rake::Delphi::XEVersionInfo.new(@rake_task)
111
+ end
112
+ public
61
113
  def test_info
62
114
  super
63
115
  end
64
116
  end
65
117
 
66
- end
118
+ class TestBDSVersionInfoAbsent < TestBDSVersionInfo
119
+ protected
120
+ def prepare_ver_info_file?
121
+ return false
122
+ end
123
+ end
124
+
125
+ class TestRAD2007VersionInfoAbsent < TestRAD2007VersionInfo
126
+ protected
127
+ def prepare_ver_info_file?
128
+ return false
129
+ end
130
+ end
131
+
132
+ class TestRAD2010VersionInfoAbsent < TestRAD2010VersionInfo
133
+ protected
134
+ def prepare_ver_info_file?
135
+ return false
136
+ end
137
+ end
138
+
139
+ class TestXEVersionInfoAbsent < TestBDSVersionInfo
140
+ protected
141
+ def prepare_ver_info_file?
142
+ return false
143
+ end
144
+ end
145
+
146
+ end
data/test/test-zip.rb CHANGED
@@ -14,14 +14,6 @@ public
14
14
  File.unlink(@zip) if File.exists?(@zip)
15
15
  end
16
16
 
17
- def test_zip_no_task
18
- assert_raise NoMethodError do
19
- # first argument must be a Rake::Task
20
- # "undefined method `application' for nil:NilClass" must be raised
21
- Rake::Delphi::ZipTask.new(nil, nil, nil)
22
- end
23
- end
24
-
25
17
  def test_zip_no_filename
26
18
  assert_raise RuntimeError do
27
19
  # second argument must be non-empty