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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
2008-08-24 Sebastien Pouliot <sebastien@ximian.com>
* ProblemAttribute.cs, SolutionAttribute.cs: Change Inherited to
true, other wise we would miss some descriptions in a few rules.
2008-08-08 Sebastien Pouliot <sebastien@ximian.com>
* Rule.cs: Set default ApplicabilityScope value to All. Otherwise
the wizard would not report the same number of defects than the
console runner.
2008-07-15 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Nullify currentRule and currentTarget in case an
exception is thrown after Run was executed (e.g. while reporting)
2008-07-07 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyResolver.cs: Catch FileNotFoundException coming from
Cecil's BaseAssemblyResolver. Look for assemblies where the current
one (being analyzed) was loaded. Return null when a Resolve call
fails. Use generics where appropriate. Stop tracking changes from
the original linker source code.
* Runner.cs: Use the CacheAssembly method instead of the collection
itself. This allows us to do a bit more work unrelated to the runners.
2008-06-29 Sebastien Pouliot <sebastien@ximian.com>
* BasicIgnoreList.cs: Avoid exception if an ignored rule is not
part of the rule set being executed.
2008-06-02 Nestor Salceda <nestor.salceda@gmail.com>
* ApplicabilityScope.cs: New, the enum for codify the different
applicability behaviours.
* IRule.cs: Added a getter and setter to the rule.
* Rule.cs: Added the getter and setter bodies.
* Runner.cs: According their applicability scope, the runner runs or not
runs the check against a target.
2008-05-27 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Whine at the right stream (self-test).
2008-05-24 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Add new ctor without a string text parameter (since
we encourage not to use it unless it provide extra, non-static
and useful information). Simplify ctor accepting Instruction.
* IRunner.cs, Runner.cs: Reduce number of Report overloads by
using IMetadataTokenProvider. Convert some comments into XML
documentation.
2008-05-19 Jb Evain <jbevain@novell.com>
* IRunner.cs, Runner.cs: add a Report method that takes
a PropertyDefinition. Fixes the build.
2008-05-17 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Delegate symbols loading to rocks.
2008-05-11 Sebastien Pouliot <sebastien@ximian.com>
* IRunner.cs: Add a Report overload for EventDefinition.
* Runner.cs: Set and Clear Resolver cache (to reuse the runner).
Implement Report(EventDefinition...)
2008-05-10 Sebastien Pouliot <sebastien@ximian.com>
* RunnerEventArgs.cs: Change setters to public since TestRunner
needs them.
* TestRunner.cs: Moving to Test.Rules.dll
2008-05-06 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Split debugging symbols resolution out of here.
* Symbols.cs: New. Symbols stuff moved here.
2008-04-25 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Deal with the special 0xFEEFEE value present in PDB
files (for hidden or special case where the compiler does not want
the debugger to look in).
2008-04-18 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Reset the events. The wizard runner can reuse the
runner with a different rule set.
2008-03-15 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Don't initialize rules that are not active. This is
useful when a runner decides to load a rule (e.g. to get more
information about it) then decide not to use it (think UI ;-).
This also makes it easier (well no change) to continue using
Active for rule optimizations.
2008-03-08 Sebastien Pouliot <sebastien@ximian.com>
* Rule.cs: Cache Type. This saves 2% (about 16mb) of the memory
required to process all Mono 2.0 assemblies.
2008-03-07 Sebastien Pouliot <sebastien@ximian.com>
* TestRunner.cs: Add methods to allow easier testing of the
events.
2008-03-04 Sebastien Pouliot <sebastien@ximian.com>
* Rule.cs: Reduce code duplication between Problem and Solution
properties.
2008-03-03 Sebastien Pouliot <sebastien@ximian.com>
* BasicIgnoreList.cs: Seal inner class.
* Runner.cs: Add back code removed in last commit.
2008-02-17 Sebastien Pouliot <sebastien@ximian.com>
* BasicIgnoreList.cs: Basic implementation, with storage, for
keeping an ignore list.
* IIgnoreList.cs: New. Interface to ignorance ;-)
* IRule.cs: Add FullName.
* Rule.cs: Implement FullName using the type full name.
* Runner.cs: Add support to ignore some known defects (or false
positives).
* TestRunner.cs: Implement IIgnoreList.
2008-02-16 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyResolver.cs: Fix NRE when resolving some methods
* Defect.cs: Make ExtractFirst methods static. Rename
Get[Type|Method]FromLocation to Find*
* Runner.cs: Handle case where MDB is unavailable.
* TestRunner.cs: Avoid code duplication in Check* methods.
2008-02-15 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyResolver.cs: Handle GenericParameter.
* Runner.cs: Handle the case where Mono.Cecil.Mdb.dll is not
available.
2008-02-15 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Expose CurrentRule and CurrentTarget
* TestRunner.cs: Use newly exposed properties.
2008-02-15 Sebastien Pouliot <sebastien@ximian.com>
* MethodSignature.cs
* MethodSignatures.cs
* StackEntryAnalysis.cs:
Moved into Gendarme.Framework.Helpers
2008-02-15 Sebastien Pouliot <sebastien@ximian.com>
* Runner.cs: Use Rocks to iterate all methods in a type.
2008-02-14 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyResolver.cs: Shameless copy of Linker AssemblyResolver
(with minimal changes) until Cecil got his own. Gendarme resolve
will be done using rocks (so changes should not affect rules)
2008-02-14 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Remove IMetadataTokenProviderRock (moved to
CecilRocks.cs). Add more logic to find source code associated
with the defect (even if we don't have the instruction for it).
* MinimalRunner.cs: Removed.
* Runner.cs: Make some stuff internal for TestRunner.cs
* TestRunner.cs: New. Runner useful for unit testing as it has
some internal knowledge about Runner state and provide helpers.
2008-02-13 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Merge Defect and Defect<T> into a non-generic class.
* MinimalRunner.cs: Move Reset method to Runner.
* Runner.cs: Adapt for Defect changes and add Reset method.
2008-02-12 Sebastien Pouliot <sebastien@ximian.com>
* Defect.cs: Fix exception argument.
* IRunner.cs: [ComVisible (false)] at class level (to be moved
to assembly-level). Use Cecil's IAnnotationProvider and change
back Assemblies to Collection<AssemblyDefinition>. Remove the
need to supply IRule to Report overloads (the runner knows which
rules it is). Add CurrentRuleResult so it's easier to track
Success and Failure when writing a rule.
* MinimalRunner.cs: Add Reset method to help unit testing.
* Rule.cs: Call String.Format with CultureInfo.InvariantCulture
* Runner.cs: Implement changes required by IRunner. Make use of
of On[Assembly|Type|Method] to execute rules. Simplify Run.
* RunnerEventArgs.cs: Change setters to internal. Rules are not
allowed to play with those values.
2008-02-12 Sebastien Pouliot <sebastien@ximian.com>
* Rule.cs: Renamed similar fields (smell) and don't throw an
exception inside Problem and Solution properties (but return a
string that makes the lack of attribute clear).
2008-02-12 Sebastien Pouliot <sebastien@ximian.com>
* Rule.cs: Throw an exception if we try to use Problem or Solution
on a rule without the needed attributes. Change Uri property to look
for DocumentUriAttribute. Make Active property usable.
2008-02-12 Nestor Salceda <nestor.salceda@gmail.com>
* DocumentationUriAttribute.cs, ProblemAttribute.cs,
SolutionAttribute.cs: New files for the next version of the
framework. Work in progress.
2008-02-12 Sebastien Pouliot <sebastien@ximian.com>
* Confidence.cs, Defect.cs, IAssemblyRule.cs, IMethodRule.cs,
IRule.cs, IRunner.cs, ITypeRule.cs, MinimalRunner.cs, Rule.cs,
RuleResult.cs, Runner.cs, RunnerEventArgs.cs, Severity.cs: New files
for the next version of the framework. Work in progress.
2008-01-30 Sebastien Pouliot <sebastien@ximian.com>
* StackEntryAnalysis.cs: Shared class to analyse the stack by
Andreas Noever.
2008-01-28 Sebastien Pouliot <sebastien@ximian.com>
* MethodSignature.cs: Modify API to ensure objects are immutable
once created since we expose them as read-only in MethodSignatures.
Note: we need to rule to automate this check!
2008-01-24 Sebastien Pouliot <sebastien@ximian.com>
* MethodSignature.cs: Override ToString as this can be useful when
reporting errors/warning.
* MethodSignatures.cs: Add GetHashCode and ToString, remove virtual
from Equals (since it should happen to any of them, even "new" ones).
2008-01-23 Sebastien Pouliot <sebastien@ximian.com>
* MethodSignatures.cs: Change [No|One|Two]Parameter[s] to private
to avoid ArrayFieldsShouldNotBeReadOnlyRule on self-test.
2008-01-18 Sebastien Pouliot <sebastien@ximian.com>
* MethodSignature.cs: Allow to find a method using a signature
[Andreas Noever]
* MethodSignatures.cs: Various method signature to be used, and
shared, by rules [Andreas Noever]
|