├── DailyBuild
├── DailyBuild_7z_cmd.bat
├── DailyBuild_FileList.txt
├── DailyBuild_PostDeploy.bat
└── DailyBuild_PreDeploy.bat
├── Doc
├── Screenshot
│ └── DelphiCodeCoverageWizard_0.png
└── pad
│ └── DelphiCodeCoverageWizard.xml
├── Exe
├── CodeCoverage.exe
├── CodeCoverage_x32.exe
├── CodeCoverage_x64.exe
├── MPL-1.1.txt
├── dcov_execute.bat
├── dcov_paths.lst
├── dcov_units.lst
└── delphi-code-coverage-wizard (Google code).url
├── Release
└── template
│ └── DelphiCodeCoverageWizard_v0.x
│ ├── MPL-1.1.txt
│ └── delphi-code-coverage-wizard (Google code).url
├── Source
├── DelphiCodeCoverageWizard.dpr
├── DelphiCodeCoverageWizard.dproj
├── DelphiCodeCoverageWizard.res
├── ModelSupport_DelphiCodeCoverageWizard
│ ├── Class Diagram.txvcls
│ ├── Class Diagram_diagram.tvsconfig
│ ├── Collaboration Diagram1_diagram.tvsconfig
│ ├── DelphiCodeCoverageWizard
│ │ ├── default.txaPackage
│ │ ├── default.txvpck
│ │ └── default_diagram.tvsconfig
│ ├── Use Case Diagram1.txvuse
│ ├── Use Case Diagram1_diagram.tvsconfig
│ ├── default.txaPackage
│ ├── default.txvpck
│ ├── default_diagram.tvsconfig
│ ├── fMain
│ │ ├── default.txaPackage
│ │ ├── default.txvpck
│ │ └── default_diagram.tvsconfig
│ └── uApplicationController
│ │ ├── default.txaPackage
│ │ ├── default.txvpck
│ │ └── default_diagram.tvsconfig
├── fWizard.dfm
├── fWizard.pas
├── images
│ ├── background.png
│ ├── save_64.bmp
│ ├── save_64_h.bmp
│ ├── search_64.bmp
│ ├── search_64_h.bmp
│ ├── wizard google-project logo_small.png
│ └── wizard.ico
├── uApplicationController.pas
├── uProjectSettings.pas
└── uScriptsGenerator.pas
├── Test
├── DUnit_addon
│ └── XmlTestRunner2.pas
├── DelphiCodeCoverageWizardTests.dpr
├── DelphiCodeCoverageWizardTests.dproj
├── DelphiCodeCoverageWizardTests.res
└── Test_uProjectSettings.pas
├── dccw_ProjectAndTests.groupproj
└── readme.md
/DailyBuild/DailyBuild_7z_cmd.bat:
--------------------------------------------------------------------------------
1 | rem Here is the command to compress the dailybuild package
2 | "C:\Program Files\7-Zip\7z.exe" a -tzip delphi-code-coverage-wizard.zip @../DailyBuild_FileList.txt -xr!*.svn -scsWIN
3 |
4 |
--------------------------------------------------------------------------------
/DailyBuild/DailyBuild_FileList.txt:
--------------------------------------------------------------------------------
1 | DelphiCodeCoverageWizard.exe
2 | delphi-code-coverage-wizard (Google code).url
3 | CodeCoverage.exe
4 | MPL-1.1.txt
5 |
--------------------------------------------------------------------------------
/DailyBuild/DailyBuild_PostDeploy.bat:
--------------------------------------------------------------------------------
1 | rem #Delete tmp Dir
2 | rd /Q /S tmp
3 |
--------------------------------------------------------------------------------
/DailyBuild/DailyBuild_PreDeploy.bat:
--------------------------------------------------------------------------------
1 | rem #Create Dir(s)
2 | md tmp
3 | rem #Compress
4 | cd ..\Exe
5 | "C:\Program Files\7-Zip\7z.exe" a -tzip ..\dailybuild\tmp\delphi-code-coverage-wizard.zip @../DailyBuild/DailyBuild_FileList.txt -xr!*.svn -scsWIN
6 |
--------------------------------------------------------------------------------
/Doc/Screenshot/DelphiCodeCoverageWizard_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Doc/Screenshot/DelphiCodeCoverageWizard_0.png
--------------------------------------------------------------------------------
/Doc/pad/DelphiCodeCoverageWizard.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 3.11
5 | PADGen 3.1.1.47 http://www.padgen.org
6 | Portable Application Description, or PAD for short, is a data set that is used by shareware authors to disseminate information to anyone interested in their software products. To find out more go to http://pad.asp-software.org
7 |
8 |
9 | TridenT
10 | N/A
11 | N/A
12 | N/A
13 | N/A
14 | N/A
15 | FRANCE
16 | http://dephicodetodoc.sourceforge.net
17 |
18 | TridenT
19 | TridenT
20 | trident_job@hotmail.com
21 | TridenT
22 | TridenT
23 | trident_job@hotmail.com
24 |
25 |
26 | trident_job@hotmail.com
27 | trident_job@hotmail.com
28 | trident_job@hotmail.com
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | DelphiCodeCoverageWizard
37 | 0.2
38 | 08
39 | 25
40 | 2011
41 | 0
42 |
43 |
44 | Freeware
45 | Beta
46 | No Install Support
47 | Win7 x32,Win7 x64,WinServer,WinVista,WinVista x64,WinXP
48 | English
49 | Fixed bugs
50 | Development Tools
51 | Development::Delphi
52 |
53 |
54 | 3845510
55 | 3755
56 | 3.67
57 |
58 |
59 | N
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | delphi coverage dunit wizard
71 | Simple wizard to execute DelphiCodeCoverage
72 | Simple wizard to setup and build scripts for DelphiCodeCoverage
73 | DelphiCodeCoverageWizard? is a simple wizard to setup and build scripts for DelphiCodeCoverage - a simple Code Coverage command-line tool for Delphi.
74 | DelphiCodeCoverageWizard is a simple wizard to setup and build scripts for DelphiCodeCoverage - a simple Code Coverage command-line tool for Delphi.
75 | DelphiCodeCoverageWizard? is a simple wizard to setup and build scripts for DelphiCodeCoverage - a simple Code Coverage command-line tool for Delphi.
76 |
77 | Preconditions
78 | A Delphi project executable (.exe)
79 | A detailed mapping file for this project (.map).
80 | Note : The wizard has it own copy of DelphiCodeCoverage?.exe
81 |
82 | What help does it provide
83 | DelphiCodeCoverageWizard? will generate the command-line and additional files to run the coverage for this project.
84 |
85 | You can also choose which unit to cover.
86 |
87 | Usage
88 | Download the application. Run it and follow the wizard !
89 |
90 | Output
91 | Script
92 | A batch file (.bat) is created for a easier one-click coverage execution.
93 |
94 | Two listing files (.lst) containing units list and units folder list will be created.
95 |
96 | Coverage output
97 | The coverage report is from DelphiCodeCoverage?. For further information, see the project page.
98 |
99 | Credit
100 | A really big thanks to Christer Fahlgren for his delphi-code-coverage release.
101 |
102 |
103 |
104 |
105 |
106 | http://code.google.com/p/delphi-code-coverage-wizard/
107 | http://code.google.com/p/delphi-code-coverage-wizard/
108 | http://delphi-code-coverage-wizard.googlecode.com/svn/trunk/Doc/Screenshot/DelphiCodeCoverageWizard_0.png
109 | http://delphi-code-coverage-wizard.googlecode.com/svn/trunk/Source/images/wizard%20google-project%20logo_small.png
110 | http://delphi-code-coverage-wizard.googlecode.com/svn/trunk/Doc/pad/DelphiCodeCoverageWizard.xml
111 |
112 |
113 | http://delphi-code-coverage-wizard.googlecode.com/files/DelphiCodeCoverageWizard_v0.2.zip
114 |
115 |
116 |
117 |
118 |
119 |
120 | Code license
121 | Mozilla Public License 1.1
122 |
123 | MOZILLA PUBLIC LICENSE
124 | Version 1.1
125 |
126 | ---------------
127 |
128 | 1. Definitions.
129 |
130 | 1.0.1. "Commercial Use" means distribution or otherwise making the
131 | Covered Code available to a third party.
132 |
133 | 1.1. "Contributor" means each entity that creates or contributes to
134 | the creation of Modifications.
135 |
136 | 1.2. "Contributor Version" means the combination of the Original
137 | Code, prior Modifications used by a Contributor, and the Modifications
138 | made by that particular Contributor.
139 |
140 | 1.3. "Covered Code" means the Original Code or Modifications or the
141 | combination of the Original Code and Modifications, in each case
142 | including portions thereof.
143 |
144 | 1.4. "Electronic Distribution Mechanism" means a mechanism generally
145 | accepted in the software development community for the electronic
146 | transfer of data.
147 |
148 | 1.5. "Executable" means Covered Code in any form other than Source
149 | Code.
150 |
151 | 1.6. "Initial Developer" means the individual or entity identified
152 | as the Initial Developer in the Source Code notice required by Exhibit
153 | A.
154 |
155 | 1.7. "Larger Work" means a work which combines Covered Code or
156 | portions thereof with code not governed by the terms of this License.
157 |
158 | 1.8. "License" means this document.
159 |
160 | 1.8.1. "Licensable" means having the right to grant, to the maximum
161 | extent possible, whether at the time of the initial grant or
162 | subsequently acquired, any and all of the rights conveyed herein.
163 |
164 | 1.9. "Modifications" means any addition to or deletion from the
165 | substance or structure of either the Original Code or any previous
166 | Modifications. When Covered Code is released as a series of files, a
167 | Modification is:
168 | A. Any addition to or deletion from the contents of a file
169 | containing Original Code or previous Modifications.
170 |
171 | B. Any new file that contains any part of the Original Code or
172 | previous Modifications.
173 |
174 | 1.10. "Original Code" means Source Code of computer software code
175 | which is described in the Source Code notice required by Exhibit A as
176 | Original Code, and which, at the time of its release under this
177 | License is not already Covered Code governed by this License.
178 |
179 | 1.10.1. "Patent Claims" means any patent claim(s), now owned or
180 | hereafter acquired, including without limitation, method, process,
181 | and apparatus claims, in any patent Licensable by grantor.
182 |
183 | 1.11. "Source Code" means the preferred form of the Covered Code for
184 | making modifications to it, including all modules it contains, plus
185 | any associated interface definition files, scripts used to control
186 | compilation and installation of an Executable, or source code
187 | differential comparisons against either the Original Code or another
188 | well known, available Covered Code of the Contributor's choice. The
189 | Source Code can be in a compressed or archival form, provided the
190 | appropriate decompression or de-archiving software is widely available
191 | for no charge.
192 |
193 | 1.12. "You" (or "Your") means an individual or a legal entity
194 | exercising rights under, and complying with all of the terms of, this
195 | License or a future version of this License issued under Section 6.1.
196 | For legal entities, "You" includes any entity which controls, is
197 | controlled by, or is under common control with You. For purposes of
198 | this definition, "control" means (a) the power, direct or indirect,
199 | to cause the direction or management of such entity, whether by
200 | contract or otherwise, or (b) ownership of more than fifty percent
201 | (50%) of the outstanding shares or beneficial ownership of such
202 | entity.
203 |
204 | 2. Source Code License.
205 |
206 | 2.1. The Initial Developer Grant.
207 | The Initial Developer hereby grants You a world-wide, royalty-free,
208 | non-exclusive license, subject to third party intellectual property
209 | claims:
210 | (a) under intellectual property rights (other than patent or
211 | trademark) Licensable by Initial Developer to use, reproduce,
212 | modify, display, perform, sublicense and distribute the Original
213 | Code (or portions thereof) with or without Modifications, and/or
214 | as part of a Larger Work; and
215 |
216 | (b) under Patents Claims infringed by the making, using or
217 | selling of Original Code, to make, have made, use, practice,
218 | sell, and offer for sale, and/or otherwise dispose of the
219 | Original Code (or portions thereof).
220 |
221 | (c) the licenses granted in this Section 2.1(a) and (b) are
222 | effective on the date Initial Developer first distributes
223 | Original Code under the terms of this License.
224 |
225 | (d) Notwithstanding Section 2.1(b) above, no patent license is
226 | granted: 1) for code that You delete from the Original Code; 2)
227 | separate from the Original Code; or 3) for infringements caused
228 | by: i) the modification of the Original Code or ii) the
229 | combination of the Original Code with other software or devices.
230 |
231 | 2.2. Contributor Grant.
232 | Subject to third party intellectual property claims, each Contributor
233 | hereby grants You a world-wide, royalty-free, non-exclusive license
234 |
235 | (a) under intellectual property rights (other than patent or
236 | trademark) Licensable by Contributor, to use, reproduce, modify,
237 | display, perform, sublicense and distribute the Modifications
238 | created by such Contributor (or portions thereof) either on an
239 | unmodified basis, with other Modifications, as Covered Code
240 | and/or as part of a Larger Work; and
241 |
242 | (b) under Patent Claims infringed by the making, using, or
243 | selling of Modifications made by that Contributor either alone
244 | and/or in combination with its Contributor Version (or portions
245 | of such combination), to make, use, sell, offer for sale, have
246 | made, and/or otherwise dispose of: 1) Modifications made by that
247 | Contributor (or portions thereof); and 2) the combination of
248 | Modifications made by that Contributor with its Contributor
249 | Version (or portions of such combination).
250 |
251 | (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
252 | effective on the date Contributor first makes Commercial Use of
253 | the Covered Code.
254 |
255 | (d) Notwithstanding Section 2.2(b) above, no patent license is
256 | granted: 1) for any code that Contributor has deleted from the
257 | Contributor Version; 2) separate from the Contributor Version;
258 | 3) for infringements caused by: i) third party modifications of
259 | Contributor Version or ii) the combination of Modifications made
260 | by that Contributor with other software (except as part of the
261 | Contributor Version) or other devices; or 4) under Patent Claims
262 | infringed by Covered Code in the absence of Modifications made by
263 | that Contributor.
264 |
265 | 3. Distribution Obligations.
266 |
267 | 3.1. Application of License.
268 | The Modifications which You create or to which You contribute are
269 | governed by the terms of this License, including without limitation
270 | Section 2.2. The Source Code version of Covered Code may be
271 | distributed only under the terms of this License or a future version
272 | of this License released under Section 6.1, and You must include a
273 | copy of this License with every copy of the Source Code You
274 | distribute. You may not offer or impose any terms on any Source Code
275 | version that alters or restricts the applicable version of this
276 | License or the recipients' rights hereunder. However, You may include
277 | an additional document offering the additional rights described in
278 | Section 3.5.
279 |
280 | 3.2. Availability of Source Code.
281 | Any Modification which You create or to which You contribute must be
282 | made available in Source Code form under the terms of this License
283 | either on the same media as an Executable version or via an accepted
284 | Electronic Distribution Mechanism to anyone to whom you made an
285 | Executable version available; and if made available via Electronic
286 | Distribution Mechanism, must remain available for at least twelve (12)
287 | months after the date it initially became available, or at least six
288 | (6) months after a subsequent version of that particular Modification
289 | has been made available to such recipients. You are responsible for
290 | ensuring that the Source Code version remains available even if the
291 | Electronic Distribution Mechanism is maintained by a third party.
292 |
293 | 3.3. Description of Modifications.
294 | You must cause all Covered Code to which You contribute to contain a
295 | file documenting the changes You made to create that Covered Code and
296 | the date of any change. You must include a prominent statement that
297 | the Modification is derived, directly or indirectly, from Original
298 | Code provided by the Initial Developer and including the name of the
299 | Initial Developer in (a) the Source Code, and (b) in any notice in an
300 | Executable version or related documentation in which You describe the
301 | origin or ownership of the Covered Code.
302 |
303 | 3.4. Intellectual Property Matters
304 | (a) Third Party Claims.
305 | If Contributor has knowledge that a license under a third party's
306 | intellectual property rights is required to exercise the rights
307 | granted by such Contributor under Sections 2.1 or 2.2,
308 | Contributor must include a text file with the Source Code
309 | distribution titled "LEGAL" which describes the claim and the
310 | party making the claim in sufficient detail that a recipient will
311 | know whom to contact. If Contributor obtains such knowledge after
312 | the Modification is made available as described in Section 3.2,
313 | Contributor shall promptly modify the LEGAL file in all copies
314 | Contributor makes available thereafter and shall take other steps
315 | (such as notifying appropriate mailing lists or newsgroups)
316 | reasonably calculated to inform those who received the Covered
317 | Code that new knowledge has been obtained.
318 |
319 | (b) Contributor APIs.
320 | If Contributor's Modifications include an application programming
321 | interface and Contributor has knowledge of patent licenses which
322 | are reasonably necessary to implement that API, Contributor must
323 | also include this information in the LEGAL file.
324 |
325 | (c) Representations.
326 | Contributor represents that, except as disclosed pursuant to
327 | Section 3.4(a) above, Contributor believes that Contributor's
328 | Modifications are Contributor's original creation(s) and/or
329 | Contributor has sufficient rights to grant the rights conveyed by
330 | this License.
331 |
332 | 3.5. Required Notices.
333 | You must duplicate the notice in Exhibit A in each file of the Source
334 | Code. If it is not possible to put such notice in a particular Source
335 | Code file due to its structure, then You must include such notice in a
336 | location (such as a relevant directory) where a user would be likely
337 | to look for such a notice. If You created one or more Modification(s)
338 | You may add your name as a Contributor to the notice described in
339 | Exhibit A. You must also duplicate this License in any documentation
340 | for the Source Code where You describe recipients' rights or ownership
341 | rights relating to Covered Code. You may choose to offer, and to
342 | charge a fee for, warranty, support, indemnity or liability
343 | obligations to one or more recipients of Covered Code. However, You
344 | may do so only on Your own behalf, and not on behalf of the Initial
345 | Developer or any Contributor. You must make it absolutely clear than
346 | any such warranty, support, indemnity or liability obligation is
347 | offered by You alone, and You hereby agree to indemnify the Initial
348 | Developer and every Contributor for any liability incurred by the
349 | Initial Developer or such Contributor as a result of warranty,
350 | support, indemnity or liability terms You offer.
351 |
352 | 3.6. Distribution of Executable Versions.
353 | You may distribute Covered Code in Executable form only if the
354 | requirements of Section 3.1-3.5 have been met for that Covered Code,
355 | and if You include a notice stating that the Source Code version of
356 | the Covered Code is available under the terms of this License,
357 | including a description of how and where You have fulfilled the
358 | obligations of Section 3.2. The notice must be conspicuously included
359 | in any notice in an Executable version, related documentation or
360 | collateral in which You describe recipients' rights relating to the
361 | Covered Code. You may distribute the Executable version of Covered
362 | Code or ownership rights under a license of Your choice, which may
363 | contain terms different from this License, provided that You are in
364 | compliance with the terms of this License and that the license for the
365 | Executable version does not attempt to limit or alter the recipient's
366 | rights in the Source Code version from the rights set forth in this
367 | License. If You distribute the Executable version under a different
368 | license You must make it absolutely clear that any terms which differ
369 | from this License are offered by You alone, not by the Initial
370 | Developer or any Contributor. You hereby agree to indemnify the
371 | Initial Developer and every Contributor for any liability incurred by
372 | the Initial Developer or such Contributor as a result of any such
373 | terms You offer.
374 |
375 | 3.7. Larger Works.
376 | You may create a Larger Work by combining Covered Code with other code
377 | not governed by the terms of this License and distribute the Larger
378 | Work as a single product. In such a case, You must make sure the
379 | requirements of this License are fulfilled for the Covered Code.
380 |
381 | 4. Inability to Comply Due to Statute or Regulation.
382 |
383 | If it is impossible for You to comply with any of the terms of this
384 | License with respect to some or all of the Covered Code due to
385 | statute, judicial order, or regulation then You must: (a) comply with
386 | the terms of this License to the maximum extent possible; and (b)
387 | describe the limitations and the code they affect. Such description
388 | must be included in the LEGAL file described in Section 3.4 and must
389 | be included with all distributions of the Source Code. Except to the
390 | extent prohibited by statute or regulation, such description must be
391 | sufficiently detailed for a recipient of ordinary skill to be able to
392 | understand it.
393 |
394 | 5. Application of this License.
395 |
396 | This License applies to code to which the Initial Developer has
397 | attached the notice in Exhibit A and to related Covered Code.
398 |
399 | 6. Versions of the License.
400 |
401 | 6.1. New Versions.
402 | Netscape Communications Corporation ("Netscape") may publish revised
403 | and/or new versions of the License from time to time. Each version
404 | will be given a distinguishing version number.
405 |
406 | 6.2. Effect of New Versions.
407 | Once Covered Code has been published under a particular version of the
408 | License, You may always continue to use it under the terms of that
409 | version. You may also choose to use such Covered Code under the terms
410 | of any subsequent version of the License published by Netscape. No one
411 | other than Netscape has the right to modify the terms applicable to
412 | Covered Code created under this License.
413 |
414 | 6.3. Derivative Works.
415 | If You create or use a modified version of this License (which you may
416 | only do in order to apply it to code which is not already Covered Code
417 | governed by this License), You must (a) rename Your license so that
418 | the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
419 | "MPL", "NPL" or any confusingly similar phrase do not appear in your
420 | license (except to note that your license differs from this License)
421 | and (b) otherwise make it clear that Your version of the license
422 | contains terms which differ from the Mozilla Public License and
423 | Netscape Public License. (Filling in the name of the Initial
424 | Developer, Original Code or Contributor in the notice described in
425 | Exhibit A shall not of themselves be deemed to be modifications of
426 | this License.)
427 |
428 | 7. DISCLAIMER OF WARRANTY.
429 |
430 | COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
431 | WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
432 | WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
433 | DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
434 | THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
435 | IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
436 | YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
437 | COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
438 | OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
439 | ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
440 |
441 |
442 |
443 | Y
444 | N
445 |
446 |
447 |
448 |
--------------------------------------------------------------------------------
/Exe/CodeCoverage.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Exe/CodeCoverage.exe
--------------------------------------------------------------------------------
/Exe/CodeCoverage_x32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Exe/CodeCoverage_x32.exe
--------------------------------------------------------------------------------
/Exe/CodeCoverage_x64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Exe/CodeCoverage_x64.exe
--------------------------------------------------------------------------------
/Exe/MPL-1.1.txt:
--------------------------------------------------------------------------------
1 | MOZILLA PUBLIC LICENSE
2 | Version 1.1
3 |
4 | ---------------
5 |
6 | 1. Definitions.
7 |
8 | 1.0.1. "Commercial Use" means distribution or otherwise making the
9 | Covered Code available to a third party.
10 |
11 | 1.1. "Contributor" means each entity that creates or contributes to
12 | the creation of Modifications.
13 |
14 | 1.2. "Contributor Version" means the combination of the Original
15 | Code, prior Modifications used by a Contributor, and the Modifications
16 | made by that particular Contributor.
17 |
18 | 1.3. "Covered Code" means the Original Code or Modifications or the
19 | combination of the Original Code and Modifications, in each case
20 | including portions thereof.
21 |
22 | 1.4. "Electronic Distribution Mechanism" means a mechanism generally
23 | accepted in the software development community for the electronic
24 | transfer of data.
25 |
26 | 1.5. "Executable" means Covered Code in any form other than Source
27 | Code.
28 |
29 | 1.6. "Initial Developer" means the individual or entity identified
30 | as the Initial Developer in the Source Code notice required by Exhibit
31 | A.
32 |
33 | 1.7. "Larger Work" means a work which combines Covered Code or
34 | portions thereof with code not governed by the terms of this License.
35 |
36 | 1.8. "License" means this document.
37 |
38 | 1.8.1. "Licensable" means having the right to grant, to the maximum
39 | extent possible, whether at the time of the initial grant or
40 | subsequently acquired, any and all of the rights conveyed herein.
41 |
42 | 1.9. "Modifications" means any addition to or deletion from the
43 | substance or structure of either the Original Code or any previous
44 | Modifications. When Covered Code is released as a series of files, a
45 | Modification is:
46 | A. Any addition to or deletion from the contents of a file
47 | containing Original Code or previous Modifications.
48 |
49 | B. Any new file that contains any part of the Original Code or
50 | previous Modifications.
51 |
52 | 1.10. "Original Code" means Source Code of computer software code
53 | which is described in the Source Code notice required by Exhibit A as
54 | Original Code, and which, at the time of its release under this
55 | License is not already Covered Code governed by this License.
56 |
57 | 1.10.1. "Patent Claims" means any patent claim(s), now owned or
58 | hereafter acquired, including without limitation, method, process,
59 | and apparatus claims, in any patent Licensable by grantor.
60 |
61 | 1.11. "Source Code" means the preferred form of the Covered Code for
62 | making modifications to it, including all modules it contains, plus
63 | any associated interface definition files, scripts used to control
64 | compilation and installation of an Executable, or source code
65 | differential comparisons against either the Original Code or another
66 | well known, available Covered Code of the Contributor's choice. The
67 | Source Code can be in a compressed or archival form, provided the
68 | appropriate decompression or de-archiving software is widely available
69 | for no charge.
70 |
71 | 1.12. "You" (or "Your") means an individual or a legal entity
72 | exercising rights under, and complying with all of the terms of, this
73 | License or a future version of this License issued under Section 6.1.
74 | For legal entities, "You" includes any entity which controls, is
75 | controlled by, or is under common control with You. For purposes of
76 | this definition, "control" means (a) the power, direct or indirect,
77 | to cause the direction or management of such entity, whether by
78 | contract or otherwise, or (b) ownership of more than fifty percent
79 | (50%) of the outstanding shares or beneficial ownership of such
80 | entity.
81 |
82 | 2. Source Code License.
83 |
84 | 2.1. The Initial Developer Grant.
85 | The Initial Developer hereby grants You a world-wide, royalty-free,
86 | non-exclusive license, subject to third party intellectual property
87 | claims:
88 | (a) under intellectual property rights (other than patent or
89 | trademark) Licensable by Initial Developer to use, reproduce,
90 | modify, display, perform, sublicense and distribute the Original
91 | Code (or portions thereof) with or without Modifications, and/or
92 | as part of a Larger Work; and
93 |
94 | (b) under Patents Claims infringed by the making, using or
95 | selling of Original Code, to make, have made, use, practice,
96 | sell, and offer for sale, and/or otherwise dispose of the
97 | Original Code (or portions thereof).
98 |
99 | (c) the licenses granted in this Section 2.1(a) and (b) are
100 | effective on the date Initial Developer first distributes
101 | Original Code under the terms of this License.
102 |
103 | (d) Notwithstanding Section 2.1(b) above, no patent license is
104 | granted: 1) for code that You delete from the Original Code; 2)
105 | separate from the Original Code; or 3) for infringements caused
106 | by: i) the modification of the Original Code or ii) the
107 | combination of the Original Code with other software or devices.
108 |
109 | 2.2. Contributor Grant.
110 | Subject to third party intellectual property claims, each Contributor
111 | hereby grants You a world-wide, royalty-free, non-exclusive license
112 |
113 | (a) under intellectual property rights (other than patent or
114 | trademark) Licensable by Contributor, to use, reproduce, modify,
115 | display, perform, sublicense and distribute the Modifications
116 | created by such Contributor (or portions thereof) either on an
117 | unmodified basis, with other Modifications, as Covered Code
118 | and/or as part of a Larger Work; and
119 |
120 | (b) under Patent Claims infringed by the making, using, or
121 | selling of Modifications made by that Contributor either alone
122 | and/or in combination with its Contributor Version (or portions
123 | of such combination), to make, use, sell, offer for sale, have
124 | made, and/or otherwise dispose of: 1) Modifications made by that
125 | Contributor (or portions thereof); and 2) the combination of
126 | Modifications made by that Contributor with its Contributor
127 | Version (or portions of such combination).
128 |
129 | (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
130 | effective on the date Contributor first makes Commercial Use of
131 | the Covered Code.
132 |
133 | (d) Notwithstanding Section 2.2(b) above, no patent license is
134 | granted: 1) for any code that Contributor has deleted from the
135 | Contributor Version; 2) separate from the Contributor Version;
136 | 3) for infringements caused by: i) third party modifications of
137 | Contributor Version or ii) the combination of Modifications made
138 | by that Contributor with other software (except as part of the
139 | Contributor Version) or other devices; or 4) under Patent Claims
140 | infringed by Covered Code in the absence of Modifications made by
141 | that Contributor.
142 |
143 | 3. Distribution Obligations.
144 |
145 | 3.1. Application of License.
146 | The Modifications which You create or to which You contribute are
147 | governed by the terms of this License, including without limitation
148 | Section 2.2. The Source Code version of Covered Code may be
149 | distributed only under the terms of this License or a future version
150 | of this License released under Section 6.1, and You must include a
151 | copy of this License with every copy of the Source Code You
152 | distribute. You may not offer or impose any terms on any Source Code
153 | version that alters or restricts the applicable version of this
154 | License or the recipients' rights hereunder. However, You may include
155 | an additional document offering the additional rights described in
156 | Section 3.5.
157 |
158 | 3.2. Availability of Source Code.
159 | Any Modification which You create or to which You contribute must be
160 | made available in Source Code form under the terms of this License
161 | either on the same media as an Executable version or via an accepted
162 | Electronic Distribution Mechanism to anyone to whom you made an
163 | Executable version available; and if made available via Electronic
164 | Distribution Mechanism, must remain available for at least twelve (12)
165 | months after the date it initially became available, or at least six
166 | (6) months after a subsequent version of that particular Modification
167 | has been made available to such recipients. You are responsible for
168 | ensuring that the Source Code version remains available even if the
169 | Electronic Distribution Mechanism is maintained by a third party.
170 |
171 | 3.3. Description of Modifications.
172 | You must cause all Covered Code to which You contribute to contain a
173 | file documenting the changes You made to create that Covered Code and
174 | the date of any change. You must include a prominent statement that
175 | the Modification is derived, directly or indirectly, from Original
176 | Code provided by the Initial Developer and including the name of the
177 | Initial Developer in (a) the Source Code, and (b) in any notice in an
178 | Executable version or related documentation in which You describe the
179 | origin or ownership of the Covered Code.
180 |
181 | 3.4. Intellectual Property Matters
182 | (a) Third Party Claims.
183 | If Contributor has knowledge that a license under a third party's
184 | intellectual property rights is required to exercise the rights
185 | granted by such Contributor under Sections 2.1 or 2.2,
186 | Contributor must include a text file with the Source Code
187 | distribution titled "LEGAL" which describes the claim and the
188 | party making the claim in sufficient detail that a recipient will
189 | know whom to contact. If Contributor obtains such knowledge after
190 | the Modification is made available as described in Section 3.2,
191 | Contributor shall promptly modify the LEGAL file in all copies
192 | Contributor makes available thereafter and shall take other steps
193 | (such as notifying appropriate mailing lists or newsgroups)
194 | reasonably calculated to inform those who received the Covered
195 | Code that new knowledge has been obtained.
196 |
197 | (b) Contributor APIs.
198 | If Contributor's Modifications include an application programming
199 | interface and Contributor has knowledge of patent licenses which
200 | are reasonably necessary to implement that API, Contributor must
201 | also include this information in the LEGAL file.
202 |
203 | (c) Representations.
204 | Contributor represents that, except as disclosed pursuant to
205 | Section 3.4(a) above, Contributor believes that Contributor's
206 | Modifications are Contributor's original creation(s) and/or
207 | Contributor has sufficient rights to grant the rights conveyed by
208 | this License.
209 |
210 | 3.5. Required Notices.
211 | You must duplicate the notice in Exhibit A in each file of the Source
212 | Code. If it is not possible to put such notice in a particular Source
213 | Code file due to its structure, then You must include such notice in a
214 | location (such as a relevant directory) where a user would be likely
215 | to look for such a notice. If You created one or more Modification(s)
216 | You may add your name as a Contributor to the notice described in
217 | Exhibit A. You must also duplicate this License in any documentation
218 | for the Source Code where You describe recipients' rights or ownership
219 | rights relating to Covered Code. You may choose to offer, and to
220 | charge a fee for, warranty, support, indemnity or liability
221 | obligations to one or more recipients of Covered Code. However, You
222 | may do so only on Your own behalf, and not on behalf of the Initial
223 | Developer or any Contributor. You must make it absolutely clear than
224 | any such warranty, support, indemnity or liability obligation is
225 | offered by You alone, and You hereby agree to indemnify the Initial
226 | Developer and every Contributor for any liability incurred by the
227 | Initial Developer or such Contributor as a result of warranty,
228 | support, indemnity or liability terms You offer.
229 |
230 | 3.6. Distribution of Executable Versions.
231 | You may distribute Covered Code in Executable form only if the
232 | requirements of Section 3.1-3.5 have been met for that Covered Code,
233 | and if You include a notice stating that the Source Code version of
234 | the Covered Code is available under the terms of this License,
235 | including a description of how and where You have fulfilled the
236 | obligations of Section 3.2. The notice must be conspicuously included
237 | in any notice in an Executable version, related documentation or
238 | collateral in which You describe recipients' rights relating to the
239 | Covered Code. You may distribute the Executable version of Covered
240 | Code or ownership rights under a license of Your choice, which may
241 | contain terms different from this License, provided that You are in
242 | compliance with the terms of this License and that the license for the
243 | Executable version does not attempt to limit or alter the recipient's
244 | rights in the Source Code version from the rights set forth in this
245 | License. If You distribute the Executable version under a different
246 | license You must make it absolutely clear that any terms which differ
247 | from this License are offered by You alone, not by the Initial
248 | Developer or any Contributor. You hereby agree to indemnify the
249 | Initial Developer and every Contributor for any liability incurred by
250 | the Initial Developer or such Contributor as a result of any such
251 | terms You offer.
252 |
253 | 3.7. Larger Works.
254 | You may create a Larger Work by combining Covered Code with other code
255 | not governed by the terms of this License and distribute the Larger
256 | Work as a single product. In such a case, You must make sure the
257 | requirements of this License are fulfilled for the Covered Code.
258 |
259 | 4. Inability to Comply Due to Statute or Regulation.
260 |
261 | If it is impossible for You to comply with any of the terms of this
262 | License with respect to some or all of the Covered Code due to
263 | statute, judicial order, or regulation then You must: (a) comply with
264 | the terms of this License to the maximum extent possible; and (b)
265 | describe the limitations and the code they affect. Such description
266 | must be included in the LEGAL file described in Section 3.4 and must
267 | be included with all distributions of the Source Code. Except to the
268 | extent prohibited by statute or regulation, such description must be
269 | sufficiently detailed for a recipient of ordinary skill to be able to
270 | understand it.
271 |
272 | 5. Application of this License.
273 |
274 | This License applies to code to which the Initial Developer has
275 | attached the notice in Exhibit A and to related Covered Code.
276 |
277 | 6. Versions of the License.
278 |
279 | 6.1. New Versions.
280 | Netscape Communications Corporation ("Netscape") may publish revised
281 | and/or new versions of the License from time to time. Each version
282 | will be given a distinguishing version number.
283 |
284 | 6.2. Effect of New Versions.
285 | Once Covered Code has been published under a particular version of the
286 | License, You may always continue to use it under the terms of that
287 | version. You may also choose to use such Covered Code under the terms
288 | of any subsequent version of the License published by Netscape. No one
289 | other than Netscape has the right to modify the terms applicable to
290 | Covered Code created under this License.
291 |
292 | 6.3. Derivative Works.
293 | If You create or use a modified version of this License (which you may
294 | only do in order to apply it to code which is not already Covered Code
295 | governed by this License), You must (a) rename Your license so that
296 | the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
297 | "MPL", "NPL" or any confusingly similar phrase do not appear in your
298 | license (except to note that your license differs from this License)
299 | and (b) otherwise make it clear that Your version of the license
300 | contains terms which differ from the Mozilla Public License and
301 | Netscape Public License. (Filling in the name of the Initial
302 | Developer, Original Code or Contributor in the notice described in
303 | Exhibit A shall not of themselves be deemed to be modifications of
304 | this License.)
305 |
306 | 7. DISCLAIMER OF WARRANTY.
307 |
308 | COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
309 | WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
310 | WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
311 | DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
312 | THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
313 | IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
314 | YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
315 | COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
316 | OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
317 | ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
318 |
319 | 8. TERMINATION.
320 |
321 | 8.1. This License and the rights granted hereunder will terminate
322 | automatically if You fail to comply with terms herein and fail to cure
323 | such breach within 30 days of becoming aware of the breach. All
324 | sublicenses to the Covered Code which are properly granted shall
325 | survive any termination of this License. Provisions which, by their
326 | nature, must remain in effect beyond the termination of this License
327 | shall survive.
328 |
329 | 8.2. If You initiate litigation by asserting a patent infringement
330 | claim (excluding declatory judgment actions) against Initial Developer
331 | or a Contributor (the Initial Developer or Contributor against whom
332 | You file such action is referred to as "Participant") alleging that:
333 |
334 | (a) such Participant's Contributor Version directly or indirectly
335 | infringes any patent, then any and all rights granted by such
336 | Participant to You under Sections 2.1 and/or 2.2 of this License
337 | shall, upon 60 days notice from Participant terminate prospectively,
338 | unless if within 60 days after receipt of notice You either: (i)
339 | agree in writing to pay Participant a mutually agreeable reasonable
340 | royalty for Your past and future use of Modifications made by such
341 | Participant, or (ii) withdraw Your litigation claim with respect to
342 | the Contributor Version against such Participant. If within 60 days
343 | of notice, a reasonable royalty and payment arrangement are not
344 | mutually agreed upon in writing by the parties or the litigation claim
345 | is not withdrawn, the rights granted by Participant to You under
346 | Sections 2.1 and/or 2.2 automatically terminate at the expiration of
347 | the 60 day notice period specified above.
348 |
349 | (b) any software, hardware, or device, other than such Participant's
350 | Contributor Version, directly or indirectly infringes any patent, then
351 | any rights granted to You by such Participant under Sections 2.1(b)
352 | and 2.2(b) are revoked effective as of the date You first made, used,
353 | sold, distributed, or had made, Modifications made by that
354 | Participant.
355 |
356 | 8.3. If You assert a patent infringement claim against Participant
357 | alleging that such Participant's Contributor Version directly or
358 | indirectly infringes any patent where such claim is resolved (such as
359 | by license or settlement) prior to the initiation of patent
360 | infringement litigation, then the reasonable value of the licenses
361 | granted by such Participant under Sections 2.1 or 2.2 shall be taken
362 | into account in determining the amount or value of any payment or
363 | license.
364 |
365 | 8.4. In the event of termination under Sections 8.1 or 8.2 above,
366 | all end user license agreements (excluding distributors and resellers)
367 | which have been validly granted by You or any distributor hereunder
368 | prior to termination shall survive termination.
369 |
370 | 9. LIMITATION OF LIABILITY.
371 |
372 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
373 | (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
374 | DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
375 | OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
376 | ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
377 | CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
378 | WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
379 | COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
380 | INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
381 | LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
382 | RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
383 | PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
384 | EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
385 | THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
386 |
387 | 10. U.S. GOVERNMENT END USERS.
388 |
389 | The Covered Code is a "commercial item," as that term is defined in
390 | 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
391 | software" and "commercial computer software documentation," as such
392 | terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
393 | C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
394 | all U.S. Government End Users acquire Covered Code with only those
395 | rights set forth herein.
396 |
397 | 11. MISCELLANEOUS.
398 |
399 | This License represents the complete agreement concerning subject
400 | matter hereof. If any provision of this License is held to be
401 | unenforceable, such provision shall be reformed only to the extent
402 | necessary to make it enforceable. This License shall be governed by
403 | California law provisions (except to the extent applicable law, if
404 | any, provides otherwise), excluding its conflict-of-law provisions.
405 | With respect to disputes in which at least one party is a citizen of,
406 | or an entity chartered or registered to do business in the United
407 | States of America, any litigation relating to this License shall be
408 | subject to the jurisdiction of the Federal Courts of the Northern
409 | District of California, with venue lying in Santa Clara County,
410 | California, with the losing party responsible for costs, including
411 | without limitation, court costs and reasonable attorneys' fees and
412 | expenses. The application of the United Nations Convention on
413 | Contracts for the International Sale of Goods is expressly excluded.
414 | Any law or regulation which provides that the language of a contract
415 | shall be construed against the drafter shall not apply to this
416 | License.
417 |
418 | 12. RESPONSIBILITY FOR CLAIMS.
419 |
420 | As between Initial Developer and the Contributors, each party is
421 | responsible for claims and damages arising, directly or indirectly,
422 | out of its utilization of rights under this License and You agree to
423 | work with Initial Developer and Contributors to distribute such
424 | responsibility on an equitable basis. Nothing herein is intended or
425 | shall be deemed to constitute any admission of liability.
426 |
427 | 13. MULTIPLE-LICENSED CODE.
428 |
429 | Initial Developer may designate portions of the Covered Code as
430 | "Multiple-Licensed". "Multiple-Licensed" means that the Initial
431 | Developer permits you to utilize portions of the Covered Code under
432 | Your choice of the NPL or the alternative licenses, if any, specified
433 | by the Initial Developer in the file described in Exhibit A.
434 |
435 | EXHIBIT A -Mozilla Public License.
436 |
437 | ``The contents of this file are subject to the Mozilla Public License
438 | Version 1.1 (the "License"); you may not use this file except in
439 | compliance with the License. You may obtain a copy of the License at
440 | http://www.mozilla.org/MPL/
441 |
442 | Software distributed under the License is distributed on an "AS IS"
443 | basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
444 | License for the specific language governing rights and limitations
445 | under the License.
446 |
447 | The Original Code is ______________________________________.
448 |
449 | The Initial Developer of the Original Code is ________________________.
450 | Portions created by ______________________ are Copyright (C) ______
451 | _______________________. All Rights Reserved.
452 |
453 | Contributor(s): ______________________________________.
454 |
455 | Alternatively, the contents of this file may be used under the terms
456 | of the _____ license (the "[___] License"), in which case the
457 | provisions of [______] License are applicable instead of those
458 | above. If you wish to allow use of your version of this file only
459 | under the terms of the [____] License and not to allow others to use
460 | your version of this file under the MPL, indicate your decision by
461 | deleting the provisions above and replace them with the notice and
462 | other provisions required by the [___] License. If you do not delete
463 | the provisions above, a recipient may use your version of this file
464 | under either the MPL or the [___] License."
465 |
466 | [NOTE: The text of this Exhibit A may differ slightly from the text of
467 | the notices in the Source Code files of the Original Code. You should
468 | use the text of this Exhibit A rather than the text found in the
469 | Original Code Source Code for Your Modifications.]
470 |
471 |
--------------------------------------------------------------------------------
/Exe/dcov_execute.bat:
--------------------------------------------------------------------------------
1 | CodeCoverage.exe -e DelphiCodeCoverageWizardTests.exe -m DelphiCodeCoverageWizardTests.map -uf dcov_units.lst -spf dcov_paths.lst -od report -lt -xml -html
--------------------------------------------------------------------------------
/Exe/dcov_paths.lst:
--------------------------------------------------------------------------------
1 | ..\Source\
2 |
--------------------------------------------------------------------------------
/Exe/dcov_units.lst:
--------------------------------------------------------------------------------
1 | fWizard
2 | uApplicationController
3 | uProjectSettings
4 | uScriptsGenerator
5 |
--------------------------------------------------------------------------------
/Exe/delphi-code-coverage-wizard (Google code).url:
--------------------------------------------------------------------------------
1 | [InternetShortcut]
2 | URL=http://code.google.com/p/delphi-code-coverage-wizard/
3 | IDList=
4 | [{000214A0-0000-0000-C000-000000000046}]
5 | Prop3=19,2
6 |
--------------------------------------------------------------------------------
/Release/template/DelphiCodeCoverageWizard_v0.x/MPL-1.1.txt:
--------------------------------------------------------------------------------
1 | MOZILLA PUBLIC LICENSE
2 | Version 1.1
3 |
4 | ---------------
5 |
6 | 1. Definitions.
7 |
8 | 1.0.1. "Commercial Use" means distribution or otherwise making the
9 | Covered Code available to a third party.
10 |
11 | 1.1. "Contributor" means each entity that creates or contributes to
12 | the creation of Modifications.
13 |
14 | 1.2. "Contributor Version" means the combination of the Original
15 | Code, prior Modifications used by a Contributor, and the Modifications
16 | made by that particular Contributor.
17 |
18 | 1.3. "Covered Code" means the Original Code or Modifications or the
19 | combination of the Original Code and Modifications, in each case
20 | including portions thereof.
21 |
22 | 1.4. "Electronic Distribution Mechanism" means a mechanism generally
23 | accepted in the software development community for the electronic
24 | transfer of data.
25 |
26 | 1.5. "Executable" means Covered Code in any form other than Source
27 | Code.
28 |
29 | 1.6. "Initial Developer" means the individual or entity identified
30 | as the Initial Developer in the Source Code notice required by Exhibit
31 | A.
32 |
33 | 1.7. "Larger Work" means a work which combines Covered Code or
34 | portions thereof with code not governed by the terms of this License.
35 |
36 | 1.8. "License" means this document.
37 |
38 | 1.8.1. "Licensable" means having the right to grant, to the maximum
39 | extent possible, whether at the time of the initial grant or
40 | subsequently acquired, any and all of the rights conveyed herein.
41 |
42 | 1.9. "Modifications" means any addition to or deletion from the
43 | substance or structure of either the Original Code or any previous
44 | Modifications. When Covered Code is released as a series of files, a
45 | Modification is:
46 | A. Any addition to or deletion from the contents of a file
47 | containing Original Code or previous Modifications.
48 |
49 | B. Any new file that contains any part of the Original Code or
50 | previous Modifications.
51 |
52 | 1.10. "Original Code" means Source Code of computer software code
53 | which is described in the Source Code notice required by Exhibit A as
54 | Original Code, and which, at the time of its release under this
55 | License is not already Covered Code governed by this License.
56 |
57 | 1.10.1. "Patent Claims" means any patent claim(s), now owned or
58 | hereafter acquired, including without limitation, method, process,
59 | and apparatus claims, in any patent Licensable by grantor.
60 |
61 | 1.11. "Source Code" means the preferred form of the Covered Code for
62 | making modifications to it, including all modules it contains, plus
63 | any associated interface definition files, scripts used to control
64 | compilation and installation of an Executable, or source code
65 | differential comparisons against either the Original Code or another
66 | well known, available Covered Code of the Contributor's choice. The
67 | Source Code can be in a compressed or archival form, provided the
68 | appropriate decompression or de-archiving software is widely available
69 | for no charge.
70 |
71 | 1.12. "You" (or "Your") means an individual or a legal entity
72 | exercising rights under, and complying with all of the terms of, this
73 | License or a future version of this License issued under Section 6.1.
74 | For legal entities, "You" includes any entity which controls, is
75 | controlled by, or is under common control with You. For purposes of
76 | this definition, "control" means (a) the power, direct or indirect,
77 | to cause the direction or management of such entity, whether by
78 | contract or otherwise, or (b) ownership of more than fifty percent
79 | (50%) of the outstanding shares or beneficial ownership of such
80 | entity.
81 |
82 | 2. Source Code License.
83 |
84 | 2.1. The Initial Developer Grant.
85 | The Initial Developer hereby grants You a world-wide, royalty-free,
86 | non-exclusive license, subject to third party intellectual property
87 | claims:
88 | (a) under intellectual property rights (other than patent or
89 | trademark) Licensable by Initial Developer to use, reproduce,
90 | modify, display, perform, sublicense and distribute the Original
91 | Code (or portions thereof) with or without Modifications, and/or
92 | as part of a Larger Work; and
93 |
94 | (b) under Patents Claims infringed by the making, using or
95 | selling of Original Code, to make, have made, use, practice,
96 | sell, and offer for sale, and/or otherwise dispose of the
97 | Original Code (or portions thereof).
98 |
99 | (c) the licenses granted in this Section 2.1(a) and (b) are
100 | effective on the date Initial Developer first distributes
101 | Original Code under the terms of this License.
102 |
103 | (d) Notwithstanding Section 2.1(b) above, no patent license is
104 | granted: 1) for code that You delete from the Original Code; 2)
105 | separate from the Original Code; or 3) for infringements caused
106 | by: i) the modification of the Original Code or ii) the
107 | combination of the Original Code with other software or devices.
108 |
109 | 2.2. Contributor Grant.
110 | Subject to third party intellectual property claims, each Contributor
111 | hereby grants You a world-wide, royalty-free, non-exclusive license
112 |
113 | (a) under intellectual property rights (other than patent or
114 | trademark) Licensable by Contributor, to use, reproduce, modify,
115 | display, perform, sublicense and distribute the Modifications
116 | created by such Contributor (or portions thereof) either on an
117 | unmodified basis, with other Modifications, as Covered Code
118 | and/or as part of a Larger Work; and
119 |
120 | (b) under Patent Claims infringed by the making, using, or
121 | selling of Modifications made by that Contributor either alone
122 | and/or in combination with its Contributor Version (or portions
123 | of such combination), to make, use, sell, offer for sale, have
124 | made, and/or otherwise dispose of: 1) Modifications made by that
125 | Contributor (or portions thereof); and 2) the combination of
126 | Modifications made by that Contributor with its Contributor
127 | Version (or portions of such combination).
128 |
129 | (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
130 | effective on the date Contributor first makes Commercial Use of
131 | the Covered Code.
132 |
133 | (d) Notwithstanding Section 2.2(b) above, no patent license is
134 | granted: 1) for any code that Contributor has deleted from the
135 | Contributor Version; 2) separate from the Contributor Version;
136 | 3) for infringements caused by: i) third party modifications of
137 | Contributor Version or ii) the combination of Modifications made
138 | by that Contributor with other software (except as part of the
139 | Contributor Version) or other devices; or 4) under Patent Claims
140 | infringed by Covered Code in the absence of Modifications made by
141 | that Contributor.
142 |
143 | 3. Distribution Obligations.
144 |
145 | 3.1. Application of License.
146 | The Modifications which You create or to which You contribute are
147 | governed by the terms of this License, including without limitation
148 | Section 2.2. The Source Code version of Covered Code may be
149 | distributed only under the terms of this License or a future version
150 | of this License released under Section 6.1, and You must include a
151 | copy of this License with every copy of the Source Code You
152 | distribute. You may not offer or impose any terms on any Source Code
153 | version that alters or restricts the applicable version of this
154 | License or the recipients' rights hereunder. However, You may include
155 | an additional document offering the additional rights described in
156 | Section 3.5.
157 |
158 | 3.2. Availability of Source Code.
159 | Any Modification which You create or to which You contribute must be
160 | made available in Source Code form under the terms of this License
161 | either on the same media as an Executable version or via an accepted
162 | Electronic Distribution Mechanism to anyone to whom you made an
163 | Executable version available; and if made available via Electronic
164 | Distribution Mechanism, must remain available for at least twelve (12)
165 | months after the date it initially became available, or at least six
166 | (6) months after a subsequent version of that particular Modification
167 | has been made available to such recipients. You are responsible for
168 | ensuring that the Source Code version remains available even if the
169 | Electronic Distribution Mechanism is maintained by a third party.
170 |
171 | 3.3. Description of Modifications.
172 | You must cause all Covered Code to which You contribute to contain a
173 | file documenting the changes You made to create that Covered Code and
174 | the date of any change. You must include a prominent statement that
175 | the Modification is derived, directly or indirectly, from Original
176 | Code provided by the Initial Developer and including the name of the
177 | Initial Developer in (a) the Source Code, and (b) in any notice in an
178 | Executable version or related documentation in which You describe the
179 | origin or ownership of the Covered Code.
180 |
181 | 3.4. Intellectual Property Matters
182 | (a) Third Party Claims.
183 | If Contributor has knowledge that a license under a third party's
184 | intellectual property rights is required to exercise the rights
185 | granted by such Contributor under Sections 2.1 or 2.2,
186 | Contributor must include a text file with the Source Code
187 | distribution titled "LEGAL" which describes the claim and the
188 | party making the claim in sufficient detail that a recipient will
189 | know whom to contact. If Contributor obtains such knowledge after
190 | the Modification is made available as described in Section 3.2,
191 | Contributor shall promptly modify the LEGAL file in all copies
192 | Contributor makes available thereafter and shall take other steps
193 | (such as notifying appropriate mailing lists or newsgroups)
194 | reasonably calculated to inform those who received the Covered
195 | Code that new knowledge has been obtained.
196 |
197 | (b) Contributor APIs.
198 | If Contributor's Modifications include an application programming
199 | interface and Contributor has knowledge of patent licenses which
200 | are reasonably necessary to implement that API, Contributor must
201 | also include this information in the LEGAL file.
202 |
203 | (c) Representations.
204 | Contributor represents that, except as disclosed pursuant to
205 | Section 3.4(a) above, Contributor believes that Contributor's
206 | Modifications are Contributor's original creation(s) and/or
207 | Contributor has sufficient rights to grant the rights conveyed by
208 | this License.
209 |
210 | 3.5. Required Notices.
211 | You must duplicate the notice in Exhibit A in each file of the Source
212 | Code. If it is not possible to put such notice in a particular Source
213 | Code file due to its structure, then You must include such notice in a
214 | location (such as a relevant directory) where a user would be likely
215 | to look for such a notice. If You created one or more Modification(s)
216 | You may add your name as a Contributor to the notice described in
217 | Exhibit A. You must also duplicate this License in any documentation
218 | for the Source Code where You describe recipients' rights or ownership
219 | rights relating to Covered Code. You may choose to offer, and to
220 | charge a fee for, warranty, support, indemnity or liability
221 | obligations to one or more recipients of Covered Code. However, You
222 | may do so only on Your own behalf, and not on behalf of the Initial
223 | Developer or any Contributor. You must make it absolutely clear than
224 | any such warranty, support, indemnity or liability obligation is
225 | offered by You alone, and You hereby agree to indemnify the Initial
226 | Developer and every Contributor for any liability incurred by the
227 | Initial Developer or such Contributor as a result of warranty,
228 | support, indemnity or liability terms You offer.
229 |
230 | 3.6. Distribution of Executable Versions.
231 | You may distribute Covered Code in Executable form only if the
232 | requirements of Section 3.1-3.5 have been met for that Covered Code,
233 | and if You include a notice stating that the Source Code version of
234 | the Covered Code is available under the terms of this License,
235 | including a description of how and where You have fulfilled the
236 | obligations of Section 3.2. The notice must be conspicuously included
237 | in any notice in an Executable version, related documentation or
238 | collateral in which You describe recipients' rights relating to the
239 | Covered Code. You may distribute the Executable version of Covered
240 | Code or ownership rights under a license of Your choice, which may
241 | contain terms different from this License, provided that You are in
242 | compliance with the terms of this License and that the license for the
243 | Executable version does not attempt to limit or alter the recipient's
244 | rights in the Source Code version from the rights set forth in this
245 | License. If You distribute the Executable version under a different
246 | license You must make it absolutely clear that any terms which differ
247 | from this License are offered by You alone, not by the Initial
248 | Developer or any Contributor. You hereby agree to indemnify the
249 | Initial Developer and every Contributor for any liability incurred by
250 | the Initial Developer or such Contributor as a result of any such
251 | terms You offer.
252 |
253 | 3.7. Larger Works.
254 | You may create a Larger Work by combining Covered Code with other code
255 | not governed by the terms of this License and distribute the Larger
256 | Work as a single product. In such a case, You must make sure the
257 | requirements of this License are fulfilled for the Covered Code.
258 |
259 | 4. Inability to Comply Due to Statute or Regulation.
260 |
261 | If it is impossible for You to comply with any of the terms of this
262 | License with respect to some or all of the Covered Code due to
263 | statute, judicial order, or regulation then You must: (a) comply with
264 | the terms of this License to the maximum extent possible; and (b)
265 | describe the limitations and the code they affect. Such description
266 | must be included in the LEGAL file described in Section 3.4 and must
267 | be included with all distributions of the Source Code. Except to the
268 | extent prohibited by statute or regulation, such description must be
269 | sufficiently detailed for a recipient of ordinary skill to be able to
270 | understand it.
271 |
272 | 5. Application of this License.
273 |
274 | This License applies to code to which the Initial Developer has
275 | attached the notice in Exhibit A and to related Covered Code.
276 |
277 | 6. Versions of the License.
278 |
279 | 6.1. New Versions.
280 | Netscape Communications Corporation ("Netscape") may publish revised
281 | and/or new versions of the License from time to time. Each version
282 | will be given a distinguishing version number.
283 |
284 | 6.2. Effect of New Versions.
285 | Once Covered Code has been published under a particular version of the
286 | License, You may always continue to use it under the terms of that
287 | version. You may also choose to use such Covered Code under the terms
288 | of any subsequent version of the License published by Netscape. No one
289 | other than Netscape has the right to modify the terms applicable to
290 | Covered Code created under this License.
291 |
292 | 6.3. Derivative Works.
293 | If You create or use a modified version of this License (which you may
294 | only do in order to apply it to code which is not already Covered Code
295 | governed by this License), You must (a) rename Your license so that
296 | the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
297 | "MPL", "NPL" or any confusingly similar phrase do not appear in your
298 | license (except to note that your license differs from this License)
299 | and (b) otherwise make it clear that Your version of the license
300 | contains terms which differ from the Mozilla Public License and
301 | Netscape Public License. (Filling in the name of the Initial
302 | Developer, Original Code or Contributor in the notice described in
303 | Exhibit A shall not of themselves be deemed to be modifications of
304 | this License.)
305 |
306 | 7. DISCLAIMER OF WARRANTY.
307 |
308 | COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
309 | WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
310 | WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
311 | DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
312 | THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
313 | IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
314 | YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
315 | COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
316 | OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
317 | ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
318 |
319 | 8. TERMINATION.
320 |
321 | 8.1. This License and the rights granted hereunder will terminate
322 | automatically if You fail to comply with terms herein and fail to cure
323 | such breach within 30 days of becoming aware of the breach. All
324 | sublicenses to the Covered Code which are properly granted shall
325 | survive any termination of this License. Provisions which, by their
326 | nature, must remain in effect beyond the termination of this License
327 | shall survive.
328 |
329 | 8.2. If You initiate litigation by asserting a patent infringement
330 | claim (excluding declatory judgment actions) against Initial Developer
331 | or a Contributor (the Initial Developer or Contributor against whom
332 | You file such action is referred to as "Participant") alleging that:
333 |
334 | (a) such Participant's Contributor Version directly or indirectly
335 | infringes any patent, then any and all rights granted by such
336 | Participant to You under Sections 2.1 and/or 2.2 of this License
337 | shall, upon 60 days notice from Participant terminate prospectively,
338 | unless if within 60 days after receipt of notice You either: (i)
339 | agree in writing to pay Participant a mutually agreeable reasonable
340 | royalty for Your past and future use of Modifications made by such
341 | Participant, or (ii) withdraw Your litigation claim with respect to
342 | the Contributor Version against such Participant. If within 60 days
343 | of notice, a reasonable royalty and payment arrangement are not
344 | mutually agreed upon in writing by the parties or the litigation claim
345 | is not withdrawn, the rights granted by Participant to You under
346 | Sections 2.1 and/or 2.2 automatically terminate at the expiration of
347 | the 60 day notice period specified above.
348 |
349 | (b) any software, hardware, or device, other than such Participant's
350 | Contributor Version, directly or indirectly infringes any patent, then
351 | any rights granted to You by such Participant under Sections 2.1(b)
352 | and 2.2(b) are revoked effective as of the date You first made, used,
353 | sold, distributed, or had made, Modifications made by that
354 | Participant.
355 |
356 | 8.3. If You assert a patent infringement claim against Participant
357 | alleging that such Participant's Contributor Version directly or
358 | indirectly infringes any patent where such claim is resolved (such as
359 | by license or settlement) prior to the initiation of patent
360 | infringement litigation, then the reasonable value of the licenses
361 | granted by such Participant under Sections 2.1 or 2.2 shall be taken
362 | into account in determining the amount or value of any payment or
363 | license.
364 |
365 | 8.4. In the event of termination under Sections 8.1 or 8.2 above,
366 | all end user license agreements (excluding distributors and resellers)
367 | which have been validly granted by You or any distributor hereunder
368 | prior to termination shall survive termination.
369 |
370 | 9. LIMITATION OF LIABILITY.
371 |
372 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
373 | (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
374 | DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
375 | OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
376 | ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
377 | CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
378 | WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
379 | COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
380 | INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
381 | LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
382 | RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
383 | PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
384 | EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
385 | THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
386 |
387 | 10. U.S. GOVERNMENT END USERS.
388 |
389 | The Covered Code is a "commercial item," as that term is defined in
390 | 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
391 | software" and "commercial computer software documentation," as such
392 | terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
393 | C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
394 | all U.S. Government End Users acquire Covered Code with only those
395 | rights set forth herein.
396 |
397 | 11. MISCELLANEOUS.
398 |
399 | This License represents the complete agreement concerning subject
400 | matter hereof. If any provision of this License is held to be
401 | unenforceable, such provision shall be reformed only to the extent
402 | necessary to make it enforceable. This License shall be governed by
403 | California law provisions (except to the extent applicable law, if
404 | any, provides otherwise), excluding its conflict-of-law provisions.
405 | With respect to disputes in which at least one party is a citizen of,
406 | or an entity chartered or registered to do business in the United
407 | States of America, any litigation relating to this License shall be
408 | subject to the jurisdiction of the Federal Courts of the Northern
409 | District of California, with venue lying in Santa Clara County,
410 | California, with the losing party responsible for costs, including
411 | without limitation, court costs and reasonable attorneys' fees and
412 | expenses. The application of the United Nations Convention on
413 | Contracts for the International Sale of Goods is expressly excluded.
414 | Any law or regulation which provides that the language of a contract
415 | shall be construed against the drafter shall not apply to this
416 | License.
417 |
418 | 12. RESPONSIBILITY FOR CLAIMS.
419 |
420 | As between Initial Developer and the Contributors, each party is
421 | responsible for claims and damages arising, directly or indirectly,
422 | out of its utilization of rights under this License and You agree to
423 | work with Initial Developer and Contributors to distribute such
424 | responsibility on an equitable basis. Nothing herein is intended or
425 | shall be deemed to constitute any admission of liability.
426 |
427 | 13. MULTIPLE-LICENSED CODE.
428 |
429 | Initial Developer may designate portions of the Covered Code as
430 | "Multiple-Licensed". "Multiple-Licensed" means that the Initial
431 | Developer permits you to utilize portions of the Covered Code under
432 | Your choice of the NPL or the alternative licenses, if any, specified
433 | by the Initial Developer in the file described in Exhibit A.
434 |
435 | EXHIBIT A -Mozilla Public License.
436 |
437 | ``The contents of this file are subject to the Mozilla Public License
438 | Version 1.1 (the "License"); you may not use this file except in
439 | compliance with the License. You may obtain a copy of the License at
440 | http://www.mozilla.org/MPL/
441 |
442 | Software distributed under the License is distributed on an "AS IS"
443 | basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
444 | License for the specific language governing rights and limitations
445 | under the License.
446 |
447 | The Original Code is ______________________________________.
448 |
449 | The Initial Developer of the Original Code is ________________________.
450 | Portions created by ______________________ are Copyright (C) ______
451 | _______________________. All Rights Reserved.
452 |
453 | Contributor(s): ______________________________________.
454 |
455 | Alternatively, the contents of this file may be used under the terms
456 | of the _____ license (the "[___] License"), in which case the
457 | provisions of [______] License are applicable instead of those
458 | above. If you wish to allow use of your version of this file only
459 | under the terms of the [____] License and not to allow others to use
460 | your version of this file under the MPL, indicate your decision by
461 | deleting the provisions above and replace them with the notice and
462 | other provisions required by the [___] License. If you do not delete
463 | the provisions above, a recipient may use your version of this file
464 | under either the MPL or the [___] License."
465 |
466 | [NOTE: The text of this Exhibit A may differ slightly from the text of
467 | the notices in the Source Code files of the Original Code. You should
468 | use the text of this Exhibit A rather than the text found in the
469 | Original Code Source Code for Your Modifications.]
470 |
471 |
--------------------------------------------------------------------------------
/Release/template/DelphiCodeCoverageWizard_v0.x/delphi-code-coverage-wizard (Google code).url:
--------------------------------------------------------------------------------
1 | [InternetShortcut]
2 | URL=http://code.google.com/p/delphi-code-coverage-wizard/
3 | IDList=
4 | [{000214A0-0000-0000-C000-000000000046}]
5 | Prop3=19,2
6 |
--------------------------------------------------------------------------------
/Source/DelphiCodeCoverageWizard.dpr:
--------------------------------------------------------------------------------
1 | program DelphiCodeCoverageWizard;
2 |
3 | uses
4 | Forms,
5 | fWizard in 'fWizard.pas' {WizardForm},
6 | uApplicationController in 'uApplicationController.pas',
7 | uProjectSettings in 'uProjectSettings.pas',
8 | uScriptsGenerator in 'uScriptsGenerator.pas';
9 |
10 | {$R *.res}
11 |
12 | begin
13 | Application.Initialize;
14 | Application.MainFormOnTaskbar := True;
15 | Application.Title := 'DelphiCodeCoverageWizard';
16 | Application.CreateForm(TWizardForm, WizardForm);
17 | Application.Run;
18 | end.
19 |
--------------------------------------------------------------------------------
/Source/DelphiCodeCoverageWizard.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {3629547A-7FD7-40B0-BB85-86E8CFF7CCC4}
4 | DelphiCodeCoverageWizard.dpr
5 | 15.4
6 | True
7 | Debug
8 | Application
9 | VCL
10 | DCC32
11 | Win32
12 | 1
13 |
14 |
15 | true
16 |
17 |
18 | true
19 | Base
20 | true
21 |
22 |
23 | true
24 | Base
25 | true
26 |
27 |
28 | true
29 | Base
30 | true
31 |
32 |
33 | true
34 | Cfg_1
35 | true
36 | true
37 |
38 |
39 | true
40 | Base
41 | true
42 |
43 |
44 | DelphiCodeCoverageWizard
45 | true
46 | true
47 | CompanyName=;FileDescription=;FileVersion=0.2.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=0.2.0.0;Comments=
48 | Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
49 | 0
50 | 2
51 | 1036
52 | vclimg;vcl;vclx;dbrtl;Rave90VCL;bdertl;VclSmp;rtl;svnui;svn;TeeUI;TeeDB;Tee;vclactnband;vcldb;vcldbx;vcltouch;xmlrtl;dsnap;dsnapcon;vclib;ibxpress;adortl;IndyCore;IndySystem;IndyProtocols;inet;intrawebdb_110_150;Intraweb_110_150;vclie;websnap;webdsnap;inetdb;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DbxClientDriver;DataSnapClient;dbxcds;DataSnapServer;AzureCloud;DBXInterBaseDriver;DBXMySQLDriver;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;JclDeveloperTools;Jcl;JclVcl;JclContainers;JvCore;JvSystem;JvStdCtrls;JvAppFrm;JvBands;JvDB;JvDlgs;JvBDE;JvControls;JvCmp;JvCrypt;JvCustom;JvDocking;JvDotNetCtrls;JvGlobus;JvHMI;JvJans;JvManagedThreads;JvMM;JvNet;JvPageComps;JvPascalInterpreter;JvPluginSystem;JvPrintPreview;JvRuntimeDesign;JvTimeFramework;JvWizards;JvXPCtrls;$(DCC_UsePackage)
53 | 00400000
54 | ..\Tmp
55 | ..\Exe
56 | false
57 | false
58 | false
59 | false
60 | false
61 |
62 |
63 | true
64 | DelphiCodeCoverageWizard_Icon.ico
65 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
66 | 1033
67 | $(BDS)\bin\default_app.manifest
68 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
69 |
70 |
71 | DelphiCodeCoverageWizard_Icon.ico
72 | $(BDS)\bin\default_app.manifest
73 |
74 |
75 | DEBUG;$(DCC_Define)
76 | false
77 | true
78 |
79 |
80 | 3
81 | CompanyName=;FileDescription=;FileVersion=0.3.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=0.3.0.0;Comments=
82 | 1033
83 |
84 |
85 | false
86 | RELEASE;$(DCC_Define)
87 | 0
88 | 0
89 |
90 |
91 |
92 | MainSource
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | Cfg_2
112 | Base
113 |
114 |
115 | Base
116 |
117 |
118 | Cfg_1
119 | Base
120 |
121 |
122 |
123 |
124 |
125 | Delphi.Personality.12
126 |
127 |
128 |
129 |
130 | True
131 | False
132 | 0
133 | 2
134 | 0
135 | 0
136 | False
137 | True
138 | False
139 | False
140 | False
141 | 1036
142 | 1252
143 |
144 |
145 |
146 |
147 | 0.2.0.0
148 |
149 |
150 |
151 |
152 |
153 | 0.2.0.0
154 |
155 |
156 |
157 | DelphiCodeCoverageWizard.dpr
158 |
159 |
160 | Microsoft Office 2000 Sample Automation Server Wrapper Components
161 | Microsoft Office XP Sample Automation Server Wrapper Components
162 |
163 |
164 |
165 | True
166 | False
167 |
168 | True
169 |
170 | D:\Dev\Projects\delphi-code-coverage-wizard\Test\DelphiCodeCoverageWizardTests.dproj
171 |
172 |
173 | 12
174 |
175 |
176 |
--------------------------------------------------------------------------------
/Source/DelphiCodeCoverageWizard.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/DelphiCodeCoverageWizard.res
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/Class Diagram.txvcls:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/Class Diagram_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/Collaboration Diagram1_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/DelphiCodeCoverageWizard/default.txaPackage:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/DelphiCodeCoverageWizard/default.txvpck:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/DelphiCodeCoverageWizard/default_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/Use Case Diagram1.txvuse:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/Use Case Diagram1_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/default.txaPackage:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/default.txvpck:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/default_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/fMain/default.txaPackage:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/fMain/default.txvpck:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/fMain/default_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/uApplicationController/default.txaPackage:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/uApplicationController/default.txvpck:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Source/ModelSupport_DelphiCodeCoverageWizard/uApplicationController/default_diagram.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Source/fWizard.pas:
--------------------------------------------------------------------------------
1 | unit fWizard;
2 |
3 | interface
4 |
5 | uses
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 | Dialogs, JvWizard, JvWizardRouteMapNodes, JvExControls, StdCtrls, Mask,
8 | JvExMask, JvToolEdit, CheckLst, JvExCheckLst, JvCheckListBox, JvLabel,
9 | Buttons, JvExButtons, JvBitBtn, JvExStdCtrls, JvCheckBox, pngimage, ExtCtrls,
10 | JvExExtCtrls, JvImage, JvGroupBox, JvMemo, JvRadioGroup;
11 |
12 | type
13 | TWizardForm = class(TForm)
14 | JvWizard1: TJvWizard;
15 | JvWizardWelcomePage: TJvWizardWelcomePage;
16 | JvWizardSourcePage: TJvWizardInteriorPage;
17 | JvWizardExecutablePage: TJvWizardInteriorPage;
18 | JvWizardRouteMapNodes1: TJvWizardRouteMapNodes;
19 | JvWizardSettingsPage: TJvWizardInteriorPage;
20 | JvWizardGeneratePage: TJvWizardInteriorPage;
21 | JvDirectoryEdit_DelphiSourceFiles: TJvDirectoryEdit;
22 | JvLabel1: TJvLabel;
23 | lbSelectedFilesForCoverage: TJvCheckListBox;
24 | JvLabel2: TJvLabel;
25 | editProgramToAnalyze: TJvFilenameEdit;
26 | JvLabel3: TJvLabel;
27 | JvLabel4: TJvLabel;
28 | editProgramMapping: TJvFilenameEdit;
29 | btnGenerate: TJvBitBtn;
30 | JvWizardOutputPage: TJvWizardInteriorPage;
31 | JvLabel5: TJvLabel;
32 | JvLabel6: TJvLabel;
33 | cbMakeRelativeToScriptPath: TJvCheckBox;
34 | labelScriptPathReminder: TJvLabel;
35 | editScriptOutput: TJvDirectoryEdit;
36 | editCoverageReport: TJvDirectoryEdit;
37 | btnRunCoverage: TJvBitBtn;
38 | imageWelcome: TJvImage;
39 | JvGroupBox1: TJvGroupBox;
40 | cbOutputFormat_EMMA: TJvCheckBox;
41 | cbOutputFormat_META: TJvCheckBox;
42 | cbOutputFormat_XML: TJvCheckBox;
43 | cbOutputFormat_HTML: TJvCheckBox;
44 | memoPreview: TJvMemo;
45 | JvLabel7: TJvLabel;
46 | JvLabel8: TJvLabel;
47 | procedure JvDirectoryEdit_DelphiSourceFilesAfterDialog(Sender: TObject; var AName: string;
48 | var AAction: Boolean);
49 | procedure editProgramToAnalyzeAfterDialog(Sender: TObject; var AName: string;
50 | var AAction: Boolean);
51 | procedure btnGenerateClick(Sender: TObject);
52 | procedure JvWizardExecutablePageNextButtonClick(Sender: TObject;
53 | var Stop: Boolean);
54 | procedure editScriptOutputAfterDialog(Sender: TObject; var AName: string;
55 | var AAction: Boolean);
56 | procedure btnRunCoverageClick(Sender: TObject);
57 | procedure FormShow(Sender: TObject);
58 | procedure JvWizardOutputPageNextButtonClick(Sender: TObject;
59 | var Stop: Boolean);
60 | procedure JvWizard1HelpButtonClick(Sender: TObject);
61 | procedure imageWelcomeDblClick(Sender: TObject);
62 | procedure JvWizard1CancelButtonClick(Sender: TObject);
63 | procedure lbSelectedFilesForCoverageClickCheck(Sender: TObject);
64 | procedure editCoverageReportAfterDialog(Sender: TObject; var AName: string;
65 | var AAction: Boolean);
66 | procedure cbOutputFormat_EMMAClick(Sender: TObject);
67 | procedure JvWizardSettingsPageNextButtonClick(Sender: TObject; var Stop: Boolean);
68 | procedure cbMakeRelativeToScriptPathClick(Sender: TObject);
69 | private
70 | { Private declarations }
71 | procedure NewSourceFile(Sender: TObject; const AFilename : string);
72 | function FGetRelativePath(const APath: string): string;
73 | public
74 | { Public declarations }
75 | end;
76 |
77 | var
78 | WizardForm: TWizardForm;
79 |
80 | implementation
81 |
82 | {$R *.dfm}
83 |
84 | uses
85 | JclFileUtils, ShellApi, System.UITypes,
86 | uApplicationController, uProjectSettings;
87 |
88 |
89 | procedure TWizardForm.JvDirectoryEdit_DelphiSourceFilesAfterDialog(Sender: TObject;
90 | var AName: string; var AAction: Boolean);
91 | begin
92 | // Exit is user cancel dialog
93 | if(AAction = False) then exit;
94 | // If list is not empty, ask confirmation to clear the list
95 | if(lbSelectedFilesForCoverage.Count <> 0) then
96 | begin
97 | if(MessageDlg('File list selected for coverage is not empty.'+#13+#10
98 | +'Changing delphi source file directory will clear the list.'
99 | +#13+#10+'Press OK to continue.', mtWarning, [mbOK, mbCancel], 0) = mrCancel) then exit
100 | else lbSelectedFilesForCoverage.Clear;
101 | end;
102 | // Fill the list with '*.pas' files found
103 |
104 | ApplicationController.OnNewSourceFile := NewSourceFile;
105 | lbSelectedFilesForCoverage.Items.BeginUpdate;
106 | ApplicationController.BuildSourceList(AName);
107 | lbSelectedFilesForCoverage.CheckAll;
108 | lbSelectedFilesForCoverage.Items.EndUpdate();
109 | end;
110 |
111 | procedure TWizardForm.JvWizard1CancelButtonClick(Sender: TObject);
112 | begin
113 | // Ask to close application
114 | if(MessageDlg('Are you sure you want to quit the application ?', mtWarning, [mbOK, mbCancel], 0) = mrOk) then
115 | Close;
116 | end;
117 |
118 | procedure TWizardForm.JvWizard1HelpButtonClick(Sender: TObject);
119 | begin
120 | MessageDlg('DelphiCodeCoverageWizard by TridenT.', mtInformation, [mbOK], 0);
121 | end;
122 |
123 | procedure TWizardForm.JvWizardExecutablePageNextButtonClick(Sender: TObject;
124 | var Stop: Boolean);
125 | begin
126 | if(Sender = JvWizardExecutablePage) then
127 | begin
128 | // Propagate Executable folder to source folder
129 | JvDirectoryEdit_DelphiSourceFiles.InitialDir := ExtractFilePath(ApplicationController.ProjectSettings.ProgramToAnalyze);
130 | editScriptOutput.InitialDir := ExtractFilePath(ApplicationController.ProjectSettings.ProgramToAnalyze);
131 | end;
132 |
133 | end;
134 |
135 | procedure TWizardForm.JvWizardOutputPageNextButtonClick(Sender: TObject;
136 | var Stop: Boolean);
137 | begin
138 | if(Sender = JvWizardOutputPage) then
139 | begin
140 | // Propagate Scripts folder to path reminder
141 | labelScriptPathReminder.Caption := editScriptOutput.Directory;
142 |
143 | // Save OutputFormat settings
144 | ApplicationController.ProjectSettings.OutputFormat := [];
145 | // EMMA
146 | if(cbOutputFormat_EMMA.Checked) then ApplicationController.ProjectSettings.OutputFormat :=
147 | ApplicationController.ProjectSettings.OutputFormat + [ofEMMA];
148 | // META
149 | if(cbOutputFormat_META.Checked) then ApplicationController.ProjectSettings.OutputFormat :=
150 | ApplicationController.ProjectSettings.OutputFormat + [ofMETA];
151 | // XML
152 | if(cbOutputFormat_XML.Checked) then ApplicationController.ProjectSettings.OutputFormat :=
153 | ApplicationController.ProjectSettings.OutputFormat + [ofXML];
154 | // HTML
155 | if(cbOutputFormat_HTML.Checked) then ApplicationController.ProjectSettings.OutputFormat :=
156 | ApplicationController.ProjectSettings.OutputFormat + [ofHTML];
157 | end;
158 | end;
159 |
160 | procedure TWizardForm.JvWizardSettingsPageNextButtonClick(Sender: TObject; var Stop: Boolean);
161 | begin
162 | if(Sender = JvWizardSettingsPage) then
163 | begin
164 | ApplicationController.ProjectSettings.RelativeToScriptPath := cbMakeRelativeToScriptPath.Checked;
165 | end;
166 | end;
167 |
168 | procedure TWizardForm.lbSelectedFilesForCoverageClickCheck(Sender: TObject);
169 | begin
170 | MessageDlg(lbSelectedFilesForCoverage.Items[lbSelectedFilesForCoverage.ItemIndex], mtWarning, [mbOK], 0);
171 | end;
172 |
173 | procedure TWizardForm.NewSourceFile(Sender: TObject; const AFilename: string);
174 | begin
175 | lbSelectedFilesForCoverage.AddItem(ExtractRelativePath(ApplicationController.ProjectSettings.ProgramSourcePath, AFilename), nil);
176 | end;
177 |
178 | procedure TWizardForm.btnGenerateClick(Sender: TObject);
179 | begin
180 | ApplicationController.Generate;
181 | MessageDlg(Format('Scripts generated in [%s] folder.',[ApplicationController.ProjectSettings.ScriptsPath]), mtInformation, [mbOK], 0);
182 | end;
183 |
184 | procedure TWizardForm.btnRunCoverageClick(Sender: TObject);
185 | var
186 | ScriptFilename : string;
187 | begin
188 | // Execute
189 | ScriptFilename := ApplicationController.ProjectSettings.ScriptsPath + 'dcov_execute.bat';
190 | ShellExecute(Handle, 'OPEN', PChar('explorer.exe')
191 | , PChar('/select, "' + ScriptFilename + '"'), nil, SW_NORMAL) ;
192 | end;
193 |
194 | procedure TWizardForm.cbMakeRelativeToScriptPathClick(Sender: TObject);
195 | begin
196 | if(cbMakeRelativeToScriptPath.Checked) then
197 | begin
198 | memoPreview.Lines.Add('DelphiCoverage.exe: [' + FGetRelativePath(ApplicationController.ProjectSettings.ApplicationPath) + ']');
199 | memoPreview.Lines.Add('ProgramToAnalyze: [' + FGetRelativePath(ApplicationController.ProjectSettings.ProgramToAnalyze) + ']');
200 | memoPreview.Lines.Add('ProgramMapping: [' + FGetRelativePath(ApplicationController.ProjectSettings.ProgramMapping) + ']');
201 | memoPreview.Lines.Add('ProgramSourcePath: [' + FGetRelativePath(ApplicationController.ProjectSettings.ProgramSourcePath) + ']');
202 | memoPreview.Lines.Add('ReportPath: [' + FGetRelativePath(ApplicationController.ProjectSettings.ReportPath) + ']');
203 | end
204 | else memoPreview.Clear;
205 | end;
206 |
207 | procedure TWizardForm.cbOutputFormat_EMMAClick(Sender: TObject);
208 | begin
209 | if(not cbOutputFormat_EMMA.Checked) then cbOutputFormat_META.Checked := False;
210 | end;
211 |
212 | procedure TWizardForm.editCoverageReportAfterDialog(Sender: TObject;
213 | var AName: string; var AAction: Boolean);
214 | begin
215 | // Exit if user cancel dialog
216 | if(AAction = False) then exit;
217 | ApplicationController.ProjectSettings.ReportPath := AName + '\';
218 | end;
219 |
220 | procedure TWizardForm.editProgramToAnalyzeAfterDialog(Sender: TObject;
221 | var AName: string; var AAction: Boolean);
222 | begin
223 | // Exit if user cancel dialog
224 | if(AAction = False) then exit;
225 | // Assign Program to analyze to settings
226 | ApplicationController.ProjectSettings.ProgramToAnalyze := AName;
227 | editProgramMapping.FileName := ApplicationController.ProjectSettings.ProgramMapping;
228 | end;
229 |
230 | procedure TWizardForm.editScriptOutputAfterDialog(Sender: TObject;
231 | var AName: string; var AAction: Boolean);
232 | begin
233 | // Exit is user cancel dialog
234 | if(AAction = False) then exit;
235 | // Propagate Script output to Report
236 | ApplicationController.ProjectSettings.ScriptsPath := AName + '\';
237 | editCoverageReport.InitialDir := AName;
238 | end;
239 |
240 | procedure TWizardForm.FormShow(Sender: TObject);
241 | begin
242 | Caption := ApplicationController.Title;
243 | end;
244 |
245 | procedure TWizardForm.imageWelcomeDblClick(Sender: TObject);
246 | begin
247 | ShellExecute(Handle, 'open', 'http://code.google.com/p/delphi-code-coverage-wizard',nil,nil, SW_SHOWNORMAL) ;
248 | end;
249 |
250 | function TWizardForm.FGetRelativePath(const APath: string): string;
251 | begin
252 | // Extract path relative to scripts relative
253 | Result := ExtractRelativepath(ApplicationController.ProjectSettings.ScriptsPath , APath)
254 | end;
255 |
256 | end.
257 |
--------------------------------------------------------------------------------
/Source/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/background.png
--------------------------------------------------------------------------------
/Source/images/save_64.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/save_64.bmp
--------------------------------------------------------------------------------
/Source/images/save_64_h.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/save_64_h.bmp
--------------------------------------------------------------------------------
/Source/images/search_64.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/search_64.bmp
--------------------------------------------------------------------------------
/Source/images/search_64_h.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/search_64_h.bmp
--------------------------------------------------------------------------------
/Source/images/wizard google-project logo_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/wizard google-project logo_small.png
--------------------------------------------------------------------------------
/Source/images/wizard.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Source/images/wizard.ico
--------------------------------------------------------------------------------
/Source/uApplicationController.pas:
--------------------------------------------------------------------------------
1 | unit uApplicationController;
2 |
3 | interface
4 |
5 | uses
6 | Classes, SysUtils,
7 | uProjectSettings;
8 |
9 | type
10 | TOnNewSourceFile = procedure(Sender: TObject; const AFilename : string) of object;
11 |
12 | TApplicationController = class
13 | private
14 | FProjectSettings: TProjectSettings;
15 | FTitle: string;
16 | FOnNewSourceFile: TOnNewSourceFile;
17 | FApplicationExeName : TFilename;
18 | procedure FReadExeVersion;
19 | procedure FBuildFileList(const ARootFolder: string; AFileList : TStrings);
20 | public
21 | property ProjectSettings : TProjectSettings read FProjectSettings write FProjectSettings;
22 | property Title : string read FTitle;
23 | constructor Create(const AApplicationExeName : TFilename);
24 | destructor Destroy; override;
25 | procedure BuildSourceList(const ASourcePath : TFilename);
26 | property OnNewSourceFile : TOnNewSourceFile read FOnNewSourceFile write FOnNewSourceFile;
27 | procedure Generate;
28 | end;
29 |
30 | var
31 | ApplicationController : TApplicationController;
32 |
33 | implementation
34 |
35 | uses
36 | Forms, JvVersionInfo, JclFileUtils,
37 | uScriptsGenerator;
38 |
39 | { TApplicationController }
40 |
41 | {*------------------------------------------------------------------------------
42 | Test if file is Pascal source file
43 | Function is defined as JclUtilsFile needs : TFileMatchFunc =
44 | function(const Attr: Integer; const FileInfo: TSearchRec): Boolean;
45 | @param Attr Attribute of file
46 | @param FileInfo Search record holding the search context
47 | @return TRUE if extension match with '*.pas filter', FALSE otherwise
48 | -------------------------------------------------------------------------------}
49 | function PasMatchFunc(const Attr: Integer; const FileInfo: TSearchRec): Boolean;
50 | const
51 | PAS_FILE_EXT = '.pas';
52 | begin
53 | Result := ((Attr and FileInfo.Attr) <> 0)
54 | and SameText(ExtractFileExt(FileInfo.Name),PAS_FILE_EXT);
55 | end;
56 |
57 | {*------------------------------------------------------------------------------
58 | Build a file list filtered with PAS extension
59 | Start is the input directory, and eventually the sub-directories,
60 | it then add all matching files in the FileList.
61 | @param RootFolder Starting folder to build list from
62 | -------------------------------------------------------------------------------}
63 | procedure TApplicationController.FBuildFileList(const ARootFolder: string; AFileList : TStrings);
64 | const
65 | PAS_FILE_FILTER : string = '*.pas';
66 | {$WARN SYMBOL_PLATFORM OFF}
67 | FA_ALL_FILES_EX = faNormalFile +
68 | faReadOnly + faHidden + faSysFile + faArchive + faTemporary + faSparseFile
69 | + faReparsePoint + faCompressed + faOffline + faNotContentIndexed + faEncrypted;
70 | {$WARN SYMBOL_PLATFORM ON}
71 | begin
72 | // $80 must be added because if the file's archive attribute is not set,
73 | // then FindFirst return [FindoInfo.Attr = 128] ...
74 | AdvBuildFileList(ARootFolder + PAS_FILE_FILTER, FA_ALL_FILES_EX, AFileList,{amAny} amCustom,
75 | [flRecursive, flFullNames], '', {nil}PasMatchFunc);
76 | end;
77 |
78 | procedure TApplicationController.Generate;
79 | var
80 | ScriptsGenerator : TScriptsGenerator;
81 | begin
82 | // Generate
83 | ScriptsGenerator := TScriptsGenerator.Create(FProjectSettings);
84 | ScriptsGenerator.Generate;
85 | FreeAndNil(ScriptsGenerator);
86 | end;
87 |
88 | constructor TApplicationController.Create(const AApplicationExeName : TFilename);
89 | begin
90 | FApplicationExeName := AApplicationExeName;
91 | FProjectSettings := TProjectSettings.Create(ExtractFilePath(AApplicationExeName));
92 | FReadExeVersion();
93 | end;
94 |
95 | destructor TApplicationController.Destroy;
96 | begin
97 | FreeAndNil(FProjectSettings);
98 | inherited;
99 | end;
100 |
101 | procedure TApplicationController.BuildSourceList(const ASourcePath : TFilename);
102 | var
103 | SourceFileList : TStringList;
104 | MyString : string;
105 | begin
106 | ProjectSettings.ProgramSourcePath := ASourcePath + '\';
107 |
108 | SourceFileList := TStringList.Create;
109 | FBuildFileList(ASourcePath + '\', SourceFileList);
110 | for MyString in SourceFileList do
111 | begin
112 | ProjectSettings.ProgramSourceFiles.AddFile(MyString);
113 | if(assigned(FOnNewSourceFile)) then FOnNewSourceFile(self, MyString);
114 | end;
115 | FreeAndNil(SourceFileList);
116 | end;
117 |
118 | procedure TApplicationController.FReadExeVersion;
119 | var
120 | AppVersionInfo : TJvVersionInfo;
121 | begin
122 | // Get version info
123 | AppVersionInfo := TJvVersionInfo.Create(FApplicationExeName);
124 | FTitle := 'DelphiCodeCoverageWizard' + ' v' + AppVersionInfo.FileVersion;
125 | FreeAndNil(AppVersionInfo);
126 | end;
127 |
128 | initialization
129 | ApplicationController := TApplicationController.Create(Application.ExeName);
130 |
131 | finalization
132 | FreeAndNil(ApplicationController);
133 |
134 | end.
135 |
--------------------------------------------------------------------------------
/Source/uProjectSettings.pas:
--------------------------------------------------------------------------------
1 | unit uProjectSettings;
2 |
3 | interface
4 |
5 | uses
6 | SysUtils, Generics.Collections, Classes;
7 |
8 | type
9 |
10 | TProgramSourceFileItem = class
11 | private
12 | FFilename: string;
13 | FSelected: Boolean;
14 | public
15 | constructor Create(const AFilename : string);
16 | property Filename : string read FFilename write FFilename;
17 | property Selected : Boolean read FSelected write FSelected;
18 | end;
19 |
20 | TProgramSourceFiles = class
21 | private
22 | FBasePath: TFilename;
23 | FItemList : TObjectList;
24 | public
25 | property BasePath : TFilename read FBasePath write FBasePath;
26 | constructor Create;
27 | destructor Destroy; override;
28 | procedure AddFile(const AItemFilename : TFilename);
29 | procedure GetCheckedItemsList(const ACheckedList : TStrings);
30 | end;
31 |
32 |
33 | TProjectSettings = class
34 | public
35 | type TOutputFormat = (ofEMMA, ofMETA, ofXML, ofHTML);
36 | type TOutputFormatSet = set of TOutputFormat;
37 | private
38 | FProgramToAnalyze: TFilename;
39 | FProgramMapping: TFilename;
40 | FProgramSourceFiles: TProgramSourceFiles;
41 | FScriptsPath: TFilename;
42 | FReportPath: TFilename;
43 | FApplicationPath: TFilename;
44 | FOutputFormat: TOutputFormatSet;
45 | FRelativeToScriptPath: Boolean;
46 | function FGetProgramToAnalyze: TFilename;
47 | function FGetProgramMapping: TFilename;
48 | function FGetProgramSourcePath: TFilename;
49 | procedure FSetProgramToAnalyze(const Value: TFilename);
50 | procedure FSetProgramSourcePath(const Value: TFilename);
51 | public
52 | property ProgramToAnalyze : TFilename read FGetProgramToAnalyze write FSetProgramToAnalyze;
53 | property ProgramMapping : TFilename read FGetProgramMapping write FProgramMapping;
54 | property ProgramSourcePath : TFilename read FGetProgramSourcePath write FSetProgramSourcePath;
55 | property ProgramSourceFiles : TProgramSourceFiles read FProgramSourceFiles write FProgramSourceFiles;
56 | property ScriptsPath : TFilename read FScriptsPath write FScriptsPath;
57 | property ReportPath : TFilename read FReportPath write FReportPath;
58 | property ApplicationPath : TFilename read FApplicationPath;
59 | property OutputFormat : TOutputFormatSet read FOutputFormat write FOutputFormat;
60 | property RelativeToScriptPath : Boolean read FRelativeToScriptPath write FRelativeToScriptPath;
61 | constructor Create(const AApplicationPath : TFilename); virtual;
62 | destructor Destroy; override;
63 | end;
64 |
65 | implementation
66 |
67 | uses
68 | JvCheckListBox;
69 |
70 | { TProjectSettings }
71 |
72 | constructor TProjectSettings.Create(const AApplicationPath : TFilename);
73 | begin
74 | FApplicationPath := AApplicationPath;
75 | FProgramSourceFiles := TProgramSourceFiles.Create;
76 | end;
77 |
78 | destructor TProjectSettings.Destroy;
79 | begin
80 | FreeAndNil(FProgramSourceFiles);
81 | inherited;
82 | end;
83 |
84 | function TProjectSettings.FGetProgramMapping: TFilename;
85 | begin
86 | Result := FProgramMapping;
87 | end;
88 |
89 | function TProjectSettings.FGetProgramSourcePath: TFilename;
90 | begin
91 | Result := FProgramSourceFiles.FBasePath;
92 | end;
93 |
94 | function TProjectSettings.FGetProgramToAnalyze: TFilename;
95 | begin
96 | Result := FProgramToAnalyze;
97 | end;
98 |
99 | procedure TProjectSettings.FSetProgramSourcePath(const Value: TFilename);
100 | begin
101 | FProgramSourceFiles.FBasePath := Value;
102 | end;
103 |
104 | procedure TProjectSettings.FSetProgramToAnalyze(const Value: TFilename);
105 | var
106 | PossibleMappingFilename : TFilename;
107 | begin
108 | FProgramToAnalyze := Value;
109 | // test EXE file exists
110 | if(FileExists(Value)) then
111 | begin
112 | PossibleMappingFilename := ChangeFileExt(Value, '.map');
113 | if(FileExists(PossibleMappingFilename)) then
114 | FProgramMapping := PossibleMappingFilename;
115 | end;
116 | end;
117 |
118 | { TProgramSourceFiles }
119 |
120 | procedure TProgramSourceFiles.AddFile(const AItemFilename: TFilename);
121 | var
122 | NewItem : TProgramSourceFileItem;
123 | NewItemRelativePath : TFilename;
124 | begin
125 | NewItemRelativePath := ExtractRelativePath(FBasePath, AItemFilename);
126 | NewItem := TProgramSourceFileItem.Create(NewItemRelativePath);
127 | FItemList.Add(NewItem);
128 | end;
129 |
130 | constructor TProgramSourceFiles.Create;
131 | begin
132 | inherited;
133 | FItemList := TObjectList.Create(True);
134 | end;
135 |
136 | destructor TProgramSourceFiles.Destroy;
137 | begin
138 | FreeAndNil(FItemList);
139 | end;
140 |
141 | procedure TProgramSourceFiles.GetCheckedItemsList(const ACheckedList: TStrings);
142 | var
143 | SourceFileItem: TProgramSourceFileItem;
144 | begin
145 | ACheckedList.Clear;
146 | ACheckedList.BeginUpdate;
147 | for SourceFileItem in FItemList do
148 | begin
149 | if(SourceFileItem.Selected) then
150 | ACheckedList.Add(SourceFileItem.Filename);
151 | end;
152 | ACheckedList.EndUpdate;
153 | end;
154 |
155 | { TProgramSourceFileItem }
156 |
157 | constructor TProgramSourceFileItem.Create(const AFilename: string);
158 | begin
159 | FFilename := AFilename;
160 | FSelected := True;
161 | end;
162 |
163 | end.
164 |
--------------------------------------------------------------------------------
/Source/uScriptsGenerator.pas:
--------------------------------------------------------------------------------
1 | unit uScriptsGenerator;
2 |
3 | interface
4 |
5 | uses
6 | uProjectSettings;
7 |
8 | type
9 | TScriptsGenerator = class
10 | private
11 | FSettings : TProjectSettings;
12 | procedure GenerateDCovExecuteFile;
13 | procedure GenerateDCovUnitsAndPathFiles;
14 | function FGetOutputFormatSwitches : string;
15 | function FGetPath(const APath : string) : string;
16 | public
17 | constructor Create(const ASettings : TProjectSettings); virtual;
18 | destructor Destroy; override;
19 | procedure Generate;
20 | end;
21 |
22 | implementation
23 |
24 | uses
25 | Classes, SysUtils, IOUtils;
26 |
27 | constructor TScriptsGenerator.Create(const ASettings: TProjectSettings);
28 | begin
29 | FSettings := ASettings;
30 | end;
31 |
32 | destructor TScriptsGenerator.Destroy;
33 | begin
34 | FSettings := nil;
35 | end;
36 |
37 | procedure TScriptsGenerator.Generate;
38 | begin
39 | // Generate
40 | GenerateDCovExecuteFile();
41 | GenerateDCovUnitsAndPathFiles();
42 | end;
43 |
44 | procedure TScriptsGenerator.GenerateDCovExecuteFile;
45 | const
46 | // Application path, ProgramToAnalyze, ProgramMapping, ReportPath
47 | DCOV_EXECUTE_FORMAT = '"%sCodeCoverage.exe" -e "%s" -m "%s" -uf dcov_units.lst -spf dcov_paths.lst -od "%s" -lt';
48 | var
49 | DCovExecuteText : TStringList;
50 | begin
51 | // Create 'dcov_execute.bat'
52 | DCovExecuteText := TStringList.Create;
53 | // Fill
54 | DCovExecuteText.Add(Format(DCOV_EXECUTE_FORMAT, [FGetPath(FSettings.ApplicationPath), FGetPath(FSettings.ProgramToAnalyze),
55 | FGetPath(FSettings.ProgramMapping), FGetPath(FSettings.ReportPath)]) + FGetOutputFormatSwitches());
56 | // Save
57 | DCovExecuteText.SaveToFile(FSettings.ScriptsPath + 'dcov_execute.bat');
58 | FreeAndNil(DCovExecuteText);
59 | end;
60 |
61 | procedure TScriptsGenerator.GenerateDCovUnitsAndPathFiles;
62 | var
63 | DCovUnitsText : TStringList;
64 | DCovPathsText : TStringList;
65 | CheckedUnitList : TStrings;
66 | UnitFilename: string;
67 | begin
68 | // Create 'dcov_execute.bat'
69 | DCovUnitsText := TStringList.Create;
70 | DCovUnitsText.Sorted := True;
71 | DCovUnitsText.Duplicates := dupIgnore;
72 |
73 | DCovPathsText := TStringList.Create;
74 | DCovPathsText.Sorted := True;
75 | DCovPathsText.Duplicates := dupIgnore;
76 |
77 | // Get Checked unit list
78 | CheckedUnitList := TStringList.Create;
79 | FSettings.ProgramSourceFiles.GetCheckedItemsList(CheckedUnitList);
80 |
81 | for UnitFilename in CheckedUnitList do
82 | begin
83 | // Add Unit name
84 | DCovUnitsText.Add(ChangeFileExt(ExtractFileName(UnitFilename), ''));
85 | // Add unit path
86 | DCovPathsText.Add(FSettings.ProgramSourcePath + ExtractFilePath(UnitFilename));
87 | end;
88 | // Save
89 | DCovUnitsText.SaveToFile(FSettings.ScriptsPath + 'dcov_units.lst');
90 | DCovPathsText.SaveToFile(FSettings.ScriptsPath + 'dcov_paths.lst');
91 | // Free
92 | FreeAndNil(CheckedUnitList);
93 | FreeAndNil(DCovUnitsText);
94 | FreeAndNil(DCovPathsText);
95 | end;
96 |
97 | function TScriptsGenerator.FGetOutputFormatSwitches: string;
98 | begin
99 | Result := '';
100 | if(ofEMMA in FSettings.OutputFormat) then Result := Result + ' -emma';
101 | if(ofMETA in FSettings.OutputFormat) then Result := Result + ' -meta';
102 | if(ofXML in FSettings.OutputFormat) then Result := Result + ' -xml';
103 | if(ofHTML in FSettings.OutputFormat) then Result := Result + ' -html';
104 | end;
105 |
106 | function TScriptsGenerator.FGetPath(const APath: string): string;
107 | begin
108 | if(FSettings.RelativeToScriptPath) then
109 | // Extract path relative to scripts relative
110 | Result := ExtractRelativepath(FSettings.ScriptsPath , APath)
111 | else Result := APath;
112 | end;
113 |
114 | end.
115 |
--------------------------------------------------------------------------------
/Test/DUnit_addon/XmlTestRunner2.pas:
--------------------------------------------------------------------------------
1 | (*
2 | * The contents of this file are subject to the Mozilla Public
3 | * License Version 1.1 (the "License"); you may not use this file
4 | * except in compliance with the License. You may obtain a copy of
5 | * the License at http://www.mozilla.org/MPL/
6 | *
7 | * Software distributed under the License is distributed on an "AS
8 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9 | * implied. See the License for the specific language governing
10 | * rights and limitations under the License.
11 | *
12 | * The Original Code is DUnit.
13 | *
14 | * The Initial Developers of the Original Code are Kent Beck, Erich Gamma,
15 | * and Juancarlo Aez.
16 | * Portions created The Initial Developers are Copyright (C) 1999-2000.
17 | * Portions created by The DUnit Group are Copyright (C) 2000-2003.
18 | * All rights reserved.
19 | *
20 | * Contributor(s):
21 | * Kent Beck
22 | * Erich Gamma
23 | * Juanco Aez
24 | * Chris Morris
25 | * Jeff Moore
26 | * Kris Golko
27 | * The DUnit group at SourceForge
28 | *
29 | *)
30 |
31 | {
32 | Contributor : Laurent Laffont
33 | }
34 |
35 | unit XMLTestRunner2;
36 |
37 | interface
38 | uses
39 | SysUtils,
40 | Classes,
41 | TestFramework;
42 |
43 | const
44 | DEFAULT_FILENAME = 'dunit-report.xml';
45 |
46 | type
47 | TXMLTestListener = class(TInterfacedObject, ITestListener, ITestListenerX)
48 | private
49 | FOutputFile : TextFile;
50 | FFileName : String;
51 |
52 | protected
53 | startTime : Integer;
54 | dtStartTime : TDateTime;
55 |
56 | testStart : TDateTime;
57 | FSuiteStack : TStringList;
58 |
59 | procedure writeReport(str: String);
60 |
61 | function GetCurrentSuiteName : string;
62 | public
63 | // implement the ITestListener interface
64 | procedure AddSuccess(test: ITest); virtual;
65 | procedure AddError(error: TTestFailure); virtual;
66 | procedure AddFailure(failure: TTestFailure); virtual;
67 | function ShouldRunTest(test :ITest):boolean; virtual;
68 | procedure StartSuite(suite: ITest); virtual;
69 | procedure EndSuite(suite: ITest); virtual;
70 | procedure StartTest(test: ITest); virtual;
71 | procedure EndTest(test: ITest); virtual;
72 | procedure TestingStarts; virtual;
73 | procedure TestingEnds(testResult: TTestResult); virtual;
74 | procedure Status(test :ITest; const Msg :string);
75 | procedure Warning(test :ITest; const Msg :string);
76 |
77 | constructor Create; overload;
78 | constructor Create(outputFile : String); overload;
79 | destructor Destroy; override;
80 |
81 | class function RunTest(suite: ITest; outputFile:String): TTestResult; overload;
82 | class function RunRegisteredTests(outputFile:String): TTestResult;
83 | class function text2sgml(text : String) : String;
84 | class function StringReplaceAll (text,byt,mot : string ) :string;
85 |
86 | //:Report filename. If an empty string, then standard output is used (compile with -CC option)
87 | property FileName : String read FFileName write FFileName;
88 | end;
89 |
90 | {: Run the given test suite
91 | }
92 | function RunTest(suite: ITest; outputFile:String=DEFAULT_FILENAME) : TTestResult; overload;
93 | function RunRegisteredTests(outputFile:String=DEFAULT_FILENAME) : TTestResult; overload;
94 |
95 | implementation
96 |
97 | uses Forms, Windows;
98 |
99 | const
100 | CRLF = #13#10;
101 | MAX_DEEP = 5;
102 |
103 | { TXMLTestListener }
104 |
105 | constructor TXMLTestListener.Create;
106 | begin
107 | Create(DEFAULT_FILENAME);
108 | end;
109 |
110 | constructor TXMLTestListener.Create(outputFile : String);
111 | begin
112 | inherited Create;
113 | FileName := outputFile;
114 | FSuiteStack := TStringList.Create;
115 | end;
116 |
117 | {:
118 | Write F in the report file or on standard output if none specified
119 | }
120 | procedure TXMLTestListener.writeReport(str : String);
121 | begin
122 | if TTextRec(FOutputFile).Mode = fmOutput then
123 | writeln(FOutputFile, str)
124 | else
125 | writeln(str);
126 | end;
127 |
128 | const
129 | TrueFalse : array[Boolean] of string = ('False', 'True');
130 |
131 | procedure TXMLTestListener.AddSuccess(test: ITest);
132 | begin
133 | if test.tests.Count<=0 then
134 | begin
135 | writeReport(Format('',
136 | [GetCurrentSuiteName, test.GetName, TrueFalse[test.Enabled], test.ElapsedTestTime / 1000]));
137 | end;
138 | end;
139 |
140 | procedure TXMLTestListener.AddError(error: TTestFailure);
141 | begin
142 | writeReport(Format('',
143 | [GetCurrentSuiteName, error.FailedTest.GetName, TrueFalse[error.FailedTest.Enabled], error.FailedTest.ElapsedTestTime / 1000]));
144 | writeReport(Format('', [error.ThrownExceptionName, error.LocationInfo]));
145 | writeReport('' + text2sgml(error.ThrownExceptionMessage) + '');
146 | writeReport('');
147 | end;
148 |
149 | procedure TXMLTestListener.AddFailure(failure: TTestFailure);
150 | begin
151 | writeReport(Format('',
152 | [GetCurrentSuiteName, failure.FailedTest.GetName, TrueFalse[failure.FailedTest.Enabled], failure.FailedTest.ElapsedTestTime / 1000]));
153 | writeReport(Format('', [failure.ThrownExceptionName, failure.LocationInfo]));
154 | writeReport('' + text2sgml(failure.ThrownExceptionMessage) + '');
155 | writeReport('');
156 | end;
157 |
158 |
159 | procedure TXMLTestListener.StartTest(test: ITest);
160 | begin
161 | end;
162 |
163 | procedure TXMLTestListener.EndTest(test: ITest);
164 | begin
165 | end;
166 |
167 | procedure TXMLTestListener.TestingStarts;
168 | begin
169 | startTime := GetTickCount;
170 | dtStartTime := Now;
171 |
172 | if FFileName<>'' then
173 | begin
174 | AssignFile(FOutputFile, FFileName);
175 | Rewrite(FOutputFile);
176 | end;
177 |
178 | writeReport('');
179 | writeReport(Format('',
180 | [RegisteredTests.CountTestCases,
181 | RegisteredTests.CountTestCases - RegisteredTests.CountEnabledTestCases,
182 | DateToStr(Now),
183 | TimeToStr(Now)]));
184 | end;
185 |
186 | procedure TXMLTestListener.TestingEnds(testResult: TTestResult);
187 | var
188 | runTime : Double;
189 | successRate : Integer;
190 | begin
191 | runtime := (GetTickCount - startTime) / 1000;
192 | if testResult.RunCount > 0 then
193 | successRate := Trunc(
194 | ((testResult.runCount - testResult.failureCount - testResult.errorCount)
195 | /testResult.runCount)
196 | *100)
197 | else
198 | successRate := 100;
199 |
200 | writeReport(''+CRLF+
201 | ''+CRLF+
202 | ''+CRLF+
203 | ''+CRLF+
204 | ''+CRLF+
205 | ''+CRLF+
206 | ''+CRLF+
207 | Format('', [runtime])+CRLF+
208 | ''+CRLF+
209 | '');
210 |
211 | if TTextRec(FOutputFile).Mode = fmOutput then
212 | Close(FOutputFile);
213 | end;
214 |
215 | class function TXMLTestListener.RunTest(suite: ITest; outputFile:String): TTestResult;
216 | begin
217 | Result := TestFramework.RunTest(suite, [TXMLTestListener.Create(outputFile)]);
218 | end;
219 |
220 | class function TXMLTestListener.RunRegisteredTests(outputFile:String): TTestResult;
221 | begin
222 | Result := RunTest(registeredTests, outputFile);
223 | end;
224 |
225 | function RunTest(suite: ITest; outputFile:String=DEFAULT_FILENAME): TTestResult;
226 | begin
227 | Result := TestFramework.RunTest(suite, [TXMLTestListener.Create(outputFile)]);
228 | end;
229 |
230 | function RunRegisteredTests(outputFile:String=DEFAULT_FILENAME): TTestResult;
231 | begin
232 | Result := RunTest(registeredTests, outputFile);
233 | end;
234 |
235 |
236 | procedure TXMLTestListener.Status(test: ITest; const Msg: string);
237 | begin
238 | writeReport(Format('INFO: %s: %s', [test.Name, Msg]));
239 | end;
240 |
241 | procedure TXMLTestListener.Warning(test :ITest; const Msg :string);
242 | begin
243 | writeReport(Format('WARNING: %s: %s', [test.Name, Msg]));
244 | end;
245 |
246 | function TXMLTestListener.ShouldRunTest(test: ITest): boolean;
247 | begin
248 | Result := test.Enabled;
249 | if not Result then
250 | writeReport(Format('',
251 | [GetCurrentSuiteName, test.GetName]));
252 | end;
253 |
254 | procedure TXMLTestListener.EndSuite(suite: ITest);
255 | begin
256 | if CompareText(suite.Name, ExtractFileName(Application.ExeName)) = 0 then
257 | Exit;
258 | writeReport('');
259 | writeReport('');
260 | FSuiteStack.Delete(0);
261 | end;
262 |
263 | procedure TXMLTestListener.StartSuite(suite: ITest);
264 | var
265 | s : string;
266 | begin
267 | if CompareText(suite.Name, ExtractFileName(Application.ExeName)) = 0 then
268 | Exit;
269 | s := GetCurrentSuiteName + suite.Name;
270 | writeReport(Format('', [s, suite.CountTestCases, suite.CountTestCases - suite.CountEnabledTestCases]));
271 | FSuiteStack.Insert(0, suite.getName);
272 | writeReport('');
273 | end;
274 |
275 | {:
276 | Replace byt string by mot in text string
277 | }
278 | class function TXMLTestListener.StringReplaceAll (text,byt,mot : string ) :string;
279 | var
280 | plats : integer;
281 | begin
282 | While pos(byt,text) > 0 do
283 | begin
284 | plats := pos(byt,text);
285 | delete (text,plats,length(byt));
286 | insert (mot,text,plats);
287 | end;
288 | result := text;
289 | end;
290 |
291 | {:
292 | Replace special character by sgml compliant characters
293 | }
294 | class function TXMLTestListener.text2sgml(text : String) : String;
295 | begin
296 | text := stringreplaceall (text,'<','<');
297 | text := stringreplaceall (text,'>','>');
298 | result := text;
299 | end;
300 |
301 | destructor TXMLTestListener.Destroy;
302 | begin
303 | FreeAndNil(FSuiteStack);
304 | inherited Destroy;
305 | end;
306 |
307 | function TXMLTestListener.GetCurrentSuiteName: string;
308 | var
309 | c : Integer;
310 | begin
311 | Result := '';
312 | for c := 0 to FSuiteStack.Count - 1 do
313 | Result := FSuiteStack[c] + '.' + Result;
314 | end;
315 |
316 | end.
317 |
--------------------------------------------------------------------------------
/Test/DelphiCodeCoverageWizardTests.dpr:
--------------------------------------------------------------------------------
1 | program DelphiCodeCoverageWizardTests;
2 | {
3 |
4 | Delphi DUnit Test Project
5 | -------------------------
6 | This project contains the DUnit test framework and the GUI/Console test runners.
7 | Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options
8 | to use the console test runner. Otherwise the GUI test runner will be used by
9 | default.
10 |
11 | }
12 |
13 | {$IFDEF CONSOLE_TESTRUNNER}
14 | {$APPTYPE CONSOLE}
15 | {$ENDIF}
16 |
17 | uses
18 | Forms,
19 | TestFramework,
20 | GUITestRunner,
21 | TextTestRunner,
22 | Test_uProjectSettings in 'Test_uProjectSettings.pas',
23 | uProjectSettings in '..\Source\uProjectSettings.pas',
24 | XmlTestRunner2 in 'DUnit_addon\XmlTestRunner2.pas';
25 |
26 | {R *.RES}
27 |
28 | begin
29 | Application.Initialize;
30 | if IsConsole then
31 | {$IFDEF XML_OUTPUT}
32 | with XmlTestRunner2.RunRegisteredTests do
33 | {$ELSE}
34 | with TextTestRunner.RunRegisteredTests do
35 | {$ENDIF}
36 | Free
37 | else
38 | GUITestRunner.RunRegisteredTests;
39 | end.
40 |
41 |
--------------------------------------------------------------------------------
/Test/DelphiCodeCoverageWizardTests.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {F3732C11-5132-4CCB-B276-65098EAB938E}
4 | DelphiCodeCoverageWizardTests.dpr
5 | 15.4
6 | True
7 | Debug
8 | Application
9 | VCL
10 | DCC32
11 | Win32
12 | 1
13 |
14 |
15 | true
16 |
17 |
18 | true
19 | Base
20 | true
21 |
22 |
23 | true
24 | Base
25 | true
26 |
27 |
28 | true
29 | Base
30 | true
31 |
32 |
33 | true
34 | Cfg_1
35 | true
36 | true
37 |
38 |
39 | true
40 | Cfg_3
41 | true
42 | true
43 | true
44 |
45 |
46 | true
47 | Base
48 | true
49 |
50 |
51 | DelphiCodeCoverageWizardTests
52 | 1036
53 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=
54 | Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
55 | $(BDS)\Source\DUnit\src;$(DCC_UnitSearchPath)
56 | 00400000
57 | ..\Exe
58 | _CONSOLE_TESTRUNNER;$(DCC_Define)
59 | ..\Tmp
60 | false
61 | false
62 | false
63 | false
64 | false
65 |
66 |
67 | true
68 | DelphiCodeCoverageWizardTests_Icon.ico
69 | System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
70 | 1033
71 | $(BDS)\bin\default_app.manifest
72 |
73 |
74 | DelphiCodeCoverageWizardTests_Icon.ico
75 | $(BDS)\bin\default_app.manifest
76 |
77 |
78 | 3
79 | DEBUG;$(DCC_Define)
80 | false
81 | true
82 |
83 |
84 | CONSOLE_TESTRUNNER;$(DCC_Define)
85 |
86 |
87 | XML_OUTPUT;$(DCC_Define)
88 |
89 |
90 | false
91 | RELEASE;$(DCC_Define)
92 | 0
93 | 0
94 |
95 |
96 |
97 | MainSource
98 |
99 |
100 |
101 |
102 |
103 | Cfg_4
104 | Cfg_3
105 |
106 |
107 | Cfg_2
108 | Base
109 |
110 |
111 | Cfg_3
112 | Cfg_1
113 |
114 |
115 | Base
116 |
117 |
118 | Cfg_1
119 | Base
120 |
121 |
122 |
123 |
124 |
125 | Delphi.Personality.12
126 |
127 |
128 |
129 |
130 | False
131 | False
132 | 1
133 | 0
134 | 0
135 | 0
136 | False
137 | False
138 | False
139 | False
140 | False
141 | 1036
142 | 1252
143 |
144 |
145 |
146 |
147 | 1.0.0.0
148 |
149 |
150 |
151 |
152 |
153 | 1.0.0.0
154 |
155 |
156 |
157 | DelphiCodeCoverageWizardTests.dpr
158 |
159 |
160 |
161 | True
162 | False
163 |
164 |
165 | D:\Dev\Projects\delphi-code-coverage-wizard\Source\DelphiCodeCoverageWizard.dproj
166 | DUnit / Delphi Win32
167 | GUI
168 |
169 |
170 |
171 | 12
172 |
173 |
174 |
--------------------------------------------------------------------------------
/Test/DelphiCodeCoverageWizardTests.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trident-job/delphi-code-coverage-wizard/1a1525790fe917137c09f0de24a8f66128bdfada/Test/DelphiCodeCoverageWizardTests.res
--------------------------------------------------------------------------------
/Test/Test_uProjectSettings.pas:
--------------------------------------------------------------------------------
1 | unit Test_uProjectSettings;
2 | {
3 |
4 | Delphi DUnit Test Case
5 | ----------------------
6 | This unit contains a skeleton test case class generated by the Test Case Wizard.
7 | Modify the generated code to correctly setup and call the methods from the unit
8 | being tested.
9 |
10 | }
11 |
12 | interface
13 |
14 | uses
15 | TestFramework, Classes, Generics.Collections, SysUtils, uProjectSettings;
16 |
17 | type
18 | // Test methods for class TProgramSourceFiles
19 |
20 | TestTProgramSourceFiles = class(TTestCase)
21 | strict private
22 | FProgramSourceFiles: TProgramSourceFiles;
23 | FTmpList : TStringList;
24 | public
25 | procedure SetUp; override;
26 | procedure TearDown; override;
27 | published
28 | procedure TestAddFile;
29 | procedure TestGetCheckedItemsList;
30 | end;
31 | // Test methods for class TProgramSourceFileItem
32 |
33 | TestTProgramSourceFileItem = class(TTestCase)
34 | strict private
35 | FProgramSourceFileItem: TProgramSourceFileItem;
36 | public
37 | procedure SetUp; override;
38 | procedure TearDown; override;
39 | published
40 | Procedure TestConstructor;
41 | end;
42 |
43 | implementation
44 |
45 | procedure TestTProgramSourceFiles.SetUp;
46 | begin
47 | FProgramSourceFiles := TProgramSourceFiles.Create;
48 | FTmpList := TStringList.Create;
49 | end;
50 |
51 | procedure TestTProgramSourceFiles.TearDown;
52 | begin
53 | FProgramSourceFiles.Free;
54 | FProgramSourceFiles := nil;
55 | FreeAndNil(FTmpList);
56 | end;
57 |
58 | procedure TestTProgramSourceFiles.TestAddFile;
59 | begin
60 | FProgramSourceFiles.BasePath := 'C:\Dummy\';
61 | // TODO: Setup method call parameters
62 | FProgramSourceFiles.AddFile('C:\Dummy\MyFile1.pas');
63 | FProgramSourceFiles.AddFile('C:\Dummy\DummyFolder\MyFile2.pas');
64 | // TODO: Validate method results
65 |
66 | FProgramSourceFiles.GetCheckedItemsList(FTmpList);
67 | CheckEquals(2, FTmpList.Count);
68 | CheckEquals('MyFile1.pas', FTmpList[0]);
69 | CheckEquals('DummyFolder\MyFile2.pas', FTmpList[1]);
70 | end;
71 |
72 | procedure TestTProgramSourceFiles.TestGetCheckedItemsList;
73 | begin
74 | // TODO: Setup method call parameters
75 | FProgramSourceFiles.GetCheckedItemsList(FTmpList);
76 | // TODO: Validate method results
77 | CheckEquals(0, FTmpList.Count);
78 | end;
79 |
80 | procedure TestTProgramSourceFileItem.SetUp;
81 | begin
82 | FProgramSourceFileItem := TProgramSourceFileItem.Create('C:\MyFolder\MyFile.pas');
83 | end;
84 |
85 | procedure TestTProgramSourceFileItem.TearDown;
86 | begin
87 | FProgramSourceFileItem.Free;
88 | FProgramSourceFileItem := nil;
89 | end;
90 |
91 | procedure TestTProgramSourceFileItem.TestConstructor;
92 | begin
93 | CheckEquals('C:\MyFolder\MyFile.pas', FProgramSourceFileItem.Filename);
94 | CheckEquals(True, FProgramSourceFileItem.Selected);
95 | end;
96 |
97 | initialization
98 | // Register any test cases with the test runner
99 | RegisterTest(TestTProgramSourceFiles.Suite);
100 | end.
101 |
102 |
--------------------------------------------------------------------------------
/dccw_ProjectAndTests.groupproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {3B9BF963-3058-4CBA-B7A0-EBFDC4CF8035}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Default.Personality.12
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # DelphiCodeCoverageWizard #
2 |
3 | ## Introduction ##
4 | **DelphiCodeCoverageWizard** is a simple wizard to setup and build scripts for [DelphiCodeCoverage](http://code.google.com/p/delphi-code-coverage) - a simple Code Coverage command-line tool for **Delphi**.
5 |
6 | ## Preconditions ##
7 | * A Delphi project executable (.exe)
8 | * A detailed mapping file for this project (.map).
9 | _Note : The wizard has it own copy of DelphiCodeCoverage.exe_
10 |
11 | ## What help does it provide ##
12 | DelphiCodeCoverageWizard will generate the command-line and additional files to run the coverage for this project.
13 |
14 | You can also choose which unit to cover.
15 |
16 | ## Usage ##
17 | Download the application.
18 | Run it and follow the wizard !
19 |
20 | ## Output ##
21 | ### Script ###
22 | A batch file (.bat) is created for a easier one-click coverage execution.
23 |
24 | Two listing files (.lst) containing units list and units folder list will be created.
25 |
26 | ### Coverage output ###
27 | The coverage report is from DelphiCodeCoverage. For further information, see the project page.
28 |
29 | ## Credit ##
30 | A really big thanks to [Christer Fahlgren](http://christerblog.wordpress.com/) for his delphi-code-coverage release.
31 |
32 | Find more here : http://code.google.com/p/delphi-code-coverage/
33 |
34 | ## Version history ##
35 |
36 | ### v0.3 ###
37 | * Added DelphiCodeCoverage V1.0RC8 new switches for output format
38 |
39 | ### v0.2 ###
40 | * Fixed bugs
41 | * Refactored source code
42 |
43 | ### v0.1 ###
44 | * First prototype to validate the features.
45 | * It works with minimal features.
46 | * No error check.
47 | * Ugly code ;)
--------------------------------------------------------------------------------