Browse Source

added Mono.Gendarme checking to the build process

Signed-off-by: Marcus Cuda <marcus@cuda.net>
pull/36/head
Marcus Cuda 17 years ago
parent
commit
c961b8fe7d
  1. 17
      build/build.proj
  2. 17
      tools/Gendarme-2.4/AUTHORS
  3. BIN
      tools/Gendarme-2.4/Gendarme.Framework.dll
  4. BIN
      tools/Gendarme-2.4/Gendarme.Rules.BadPractice.dll
  5. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Concurrency.dll
  6. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Correctness.dll
  7. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Design.Generic.dll
  8. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Design.Linq.dll
  9. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Design.dll
  10. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Exceptions.dll
  11. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Interoperability.dll
  12. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Maintainability.dll
  13. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Naming.dll
  14. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Performance.dll
  15. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Portability.dll
  16. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Security.Cas.dll
  17. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Security.dll
  18. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Serialization.dll
  19. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Smells.dll
  20. BIN
      tools/Gendarme-2.4/Gendarme.Rules.Ui.dll
  21. 21
      tools/Gendarme-2.4/MIT.X11
  22. BIN
      tools/Gendarme-2.4/Mono.Cecil.Mdb.dll
  23. BIN
      tools/Gendarme-2.4/Mono.Cecil.Pdb.dll
  24. BIN
      tools/Gendarme-2.4/Mono.Cecil.dll
  25. 443
      tools/Gendarme-2.4/NEWS
  26. 28
      tools/Gendarme-2.4/README
  27. BIN
      tools/Gendarme-2.4/gendarme-wizard.exe
  28. 102
      tools/Gendarme-2.4/gendarme.1
  29. BIN
      tools/Gendarme-2.4/gendarme.exe
  30. 111
      tools/Gendarme-2.4/rules.xml

17
build/build.proj

@ -1,10 +1,11 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="BuildAndTestManaged" ToolsVersion="3.5">
<UsingTask TaskName="MSBuild.ExtensionPack.CodeQuality.StyleCop" AssemblyFile=".\MSBuild_Extension_Pack_3.5.3\StyleCop\MSBuild.ExtensionPack.StyleCop.dll" />
<UsingTask TaskName="Gallio.MSBuildTasks.Gallio" AssemblyFile="..\lib\Gallio_3.0.6.787\bin\Gallio.MSBuildTasks.dll" />
<PropertyGroup>
<Config Condition="'$(Config)' == ''">Debug</Config>
<Optimize Condition="'$(Optimize)' == ''">False</Optimize>
</PropertyGroup>
<UsingTask TaskName="MSBuild.ExtensionPack.CodeQuality.StyleCop" AssemblyFile=".\MSBuild_Extension_Pack_3.5.3\StyleCop\MSBuild.ExtensionPack.StyleCop.dll" />
<UsingTask TaskName="Gallio.MSBuildTasks.Gallio" AssemblyFile="..\lib\Gallio_3.0.6.787\bin\Gallio.MSBuildTasks.dll" />
<Target Name="CompileManaged">
<MSBuild Projects="../src/Managed.UnitTests/Managed.UnitTests.csproj" Properties="Configuration=$(Config);Optimize=$(Optimize)" />
@ -33,12 +34,14 @@
<MSBuild Projects="./mathnet-numerics.shfbproj" />
</Target>
<Target Name="Coverage" DependsOnTargets="CompileManaged">
<Exec Command="ncover.console.exe ..\lib\Gallio_3.0.6.787\bin\Gallio.Echo.exe ..\src\Managed.UnitTests\bin\Debug\MathNet.Numerics.UnitTests.dll //pm gallio.host.exe //eas zlib.net;MathNet.Numerics.UnitTests //et .*Resources;.*Exception //p &quot;Math.NET Numerics&quot;"/>
<Exec Command="ncover.reporting.exe coverage.xml //or FullCoverageReport:Html //op NCoverReport"/>
</Target>
<Target Name="Coverage" DependsOnTargets="CompileManaged">
<Exec Command="ncover.console.exe ..\lib\Gallio_3.0.6.787\bin\Gallio.Echo.exe ..\src\Managed.UnitTests\bin\Debug\MathNet.Numerics.UnitTests.dll //pm gallio.host.exe //eas zlib.net;MathNet.Numerics.UnitTests //et .*Resources;.*Exception //p &quot;Math.NET Numerics&quot;" />
<Exec Command="ncover.reporting.exe coverage.xml //or FullCoverageReport:Html //op NCoverReport" />
</Target>
<Target Name="BuildAndTestManaged" DependsOnTargets="TestManaged; StyleManaged"></Target>
<Target Name="BuildAndTestManaged" DependsOnTargets="TestManaged; StyleManaged">
<Exec Command="$(MSBuildStartupDirectory)\..\tools\Gendarme-2.4\gendarme.exe $(MSBuildStartupDirectory)\..\src\Managed\bin\Debug\MathNet.Numerics.dll"/>
</Target>
<Target Name="Release" DependsOnTargets="BuildDocs"></Target>
</Project>

17
tools/Gendarme-2.4/AUTHORS

@ -0,0 +1,17 @@
Sebastien Pouliot <sebastien@ximian.com>
Aaron Tomb <atomb@soe.ucsc.edu>
Russell Morris <russell@russellsprojects.com>
Christian Birkl <christian.birkl@gmail.com>
Néstor Salceda <nestor.salceda@gmail.com>
Nidhi Rawal <sonu2404@gmail.com>
Lukasz Knop <lukasz.knop@gmail.com>
JB Evain <jbevain@novell.com>
Daniel Abramov <ex@vingrad.ru>
Andreas Noever <andreas.noever at gmail.com>
Adrian Tsai <adrian_tsai@hotmail.com>
Seo Sanghyeon <sanxiyn@gmail.com>
Scott Peterson <lunchtimemama@gmail.com>
Cedric Vivier <cedricv@neonux.com>
Andres G. Aragoneses <aaragoneses@novell.com>
Peter Johanson <peter@peterjohanson.com>
Jesse Jones <jesjones@mindspring.com>

BIN
tools/Gendarme-2.4/Gendarme.Framework.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.BadPractice.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Concurrency.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Correctness.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Design.Generic.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Design.Linq.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Design.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Exceptions.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Interoperability.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Maintainability.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Naming.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Performance.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Portability.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Security.Cas.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Security.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Serialization.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Smells.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Gendarme.Rules.Ui.dll

Binary file not shown.

21
tools/Gendarme-2.4/MIT.X11

@ -0,0 +1,21 @@
Copyright (c) 2005-2008 Novell, Inc and the individuals listed on the
ChangeLog entries.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

BIN
tools/Gendarme-2.4/Mono.Cecil.Mdb.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Mono.Cecil.Pdb.dll

Binary file not shown.

BIN
tools/Gendarme-2.4/Mono.Cecil.dll

Binary file not shown.

443
tools/Gendarme-2.4/NEWS

@ -0,0 +1,443 @@
2009-01-20 Version 2.4
This release was the shortest (about 2 months) release cycle ever
for Gendarme. Nevertheless it contains a lot of enhancements for
rules builders (e.g. logging support, makefile helpers) provided
by Jesse Jones.
This release also includes 12 new rules (195 rules total):
Gendarme.Rules.BadPractice
* PreferEmptyInstanceOverNullRule [Cedric Vivier]
Gendarme.Rules.Correctness
* DoNotRecurseInEqualityRule [Jesse Jones]
* EnsureLocalDisposalRule [Cedric Vivier]
* ProvideCorrectRegexPatternRule [Cedric Vivier]
* ReviewInconsistentIdentityRule [Jesse Jones]
Gendarme.Rules.Design.Generic
* DoNotExposeNestedGenericSignaturesRule [Sebastien Pouliot]
Gendarme.Rules.Exceptions
* DoNotThrowInUnexpectedLocationRule [Jesse Jones]
Gendarme.Rules.Maintainability
* AvoidAlwaysNullFieldRule [Jesse Jones]
Gendarme.Rules.Naming
* AvoidTypeInterfaceInconsistencyRule [Sebastien Pouliot]
Gendarme.Rules.Performance
* PreferCharOverloadRule [Sebastien Pouliot]
Gendarme.Rules.Security
* DoNotShortCircuitCertificateChecksRule [Sebastien Pouliot]
Gendarme.Rules.Smells
* AvoidSwitchStatementsRule [Nestor Salceda]
Contributors for this release are:
Andres G. Aragoneses, Cedric Vivier, JB Evain, Jesse Jones,
Nestor Salceda, Sebastien Pouliot.
2008-11-10 Version 2.2
This release includes the development results of the last four
months, including some major events like the Novell Hack Week 3
and the second half of GSoC 2008 work done by Nestor Salceda.
Major highlights includes:
* improvement to the framework by the addition of engines that
can build extra information to extend the model Cecil gives us
to work with.
* New [FxCopCompatibility] attribute to match between Gendarme
and FxCop rules. This will be used to support [SuppressMessage]
inside assemblies in a future release.
* New TearDown capability on rules and runners allow rules to
defer the reporting of defects until the analysis is completed.
* New "Audit" severity. This is used to denotate defects that,
too often, can't be fixed (i.e. will always be reported) but
needs to be audited (e.g. security items).
* By default the console runner now reports only when both
Severity > Low
i.e. skipping Low and Audit severity defects
Confidence > Low
i.e. skipping Low confidence defects
This is to help reduce false positives and get smaller reports
with the most important defects. You can override both option,
with lower or higher values, with new command switches. E.g.
gendarme --severity=audit,critical ...
gendarme --confidence=all ...
* The wizard runner is now, by default, limited to 1000 defects
on the visible API and will, like the console runner, report
only defects when both Severity > Low and Confidence > Low. A
new step in the wizard allow users to change those settings
before the analysis (defaults can be modified and saved).
* You can now save your rule selection as the new default in
the wizard. The same set will be enable next time you restart
the wizard.
* Known issue: does not work under Mono, bug #439943
and a lot of new rules including:
Gendarme.Rules.BadPractice
* AvoidAssemblyVersionMismatchRule [Sebastien Pouliot]
* DoNotUseGetInterfaceToCheckAssignabilityRule [Sebastien Pouliot]
Gendarme.Rules.Concurrency
* DoNotUseMethodImplOptionsSynchronizedRule [Sebastien Pouliot]
* ReviewLockUsedOnlyForOperationsOnVariablesRule [Cedric Vivier]
* ProtectCallToEventDelegatesRule [Sebastien Pouliot]
Gendarme.Rules.Correctness
* AttributeStringLiteralsShouldParseCorrectlyRule [Nestor Salceda]
* CheckParametersNullityInVisibleMethodsRule [Sebastien Pouliot]
* ProvideCorrectArgumentsToFormattingMethodsRule [Nestor Salceda]
* ReviewCastOnIntegerDivisionRule [Sebastien Pouliot]
* ReviewCastOnIntegerMultiplicationRule [Sebastien Pouliot]
Gendarme.Rules.Design
* AvoidSmallNamespaceRule [Sebastien Pouliot]
* ConsiderAddingInterfaceRule [Cedric Vivier]
* DeclareEventHandlersCorrectlyRule [Nestor Salceda]
* DoNotDeclareVirtualMethodsInSealedTypeRule [Sebastien Pouliot]
* InternalNamespacesShouldNotExposeTypesRule [Sebastien Pouliot]
* MarkAssemblyWithAssemblyVersionRule [Sebastien Pouliot]
* MarkAssemblyWithCLSCompliantRule [Sebastien Pouliot]
* MarkAssemblyWithComVisibleRule [Sebastien Pouliot]
Gendarme.Rules.Design.Generic
* AvoidMethodWithUnusedGenericTypeRule [Sebastien Pouliot]
* UseGenericEventHandlerRule [Sebastien Pouliot]
* PreferGenericsOverRefObjectRule [Sebastien Pouliot]
Gendarme.Rules.Design.Linq
* AvoidExtensionMethodOnSystemObjectRule [Sebastien Pouliot]
Gendarme.Rules.Exceptions
* InstantiateArgumentExceptionCorrectlyRule [Nestor Salceda]
Gendarme.Rules.Interoperability
* MarshalBooleansInPInvokeDeclarationsRule [Sebastien Pouliot]
Gendarme.Rules.Naming
* AvoidDeepNamespaceHierarchyRule [Sebastien Pouliot]
* AvoidRedundancyInMethodNameRule [Cedric Vivier]
* AvoidRedundancyInTypeNameRule [Cedric Vivier]
Gendarme.Rules.Performance
* AvoidUnneededFieldInitializationRule [Sebastien Pouliot]
* PreferLiteralOverInitOnlyFieldsRule [Sebastien Pouliot]
Gendarme.Rules.Security.Cas
* ReviewSuppressUnmanagedCodeSecurityUsageRule [Sebastien Pouliot]
Gendarme.Rules.Serialization
* MarkEnumerationsAsSerializableRule [Sebastien Pouliot]
Gendarme.Rules.Smells
* AvoidMessageChainsRule [Nestor Salceda]
Lots of rules have been updated and, in a few cases, renamed or
moved, to provide extended functionalities.
Move/merge changes:
* CAS-related Security rules were moved into Security.Cas
* DisposableFieldsShouldBeDisposedRule was moved from Design
into Correctness
* EnumNotEndsWithEnumOrFlagsSuffixRule was merged with
UseCorrectSuffixRule (Naming)
* FinalizersShouldCallBaseClassFinalizerRule was moved from
Design into Correctness
* ImplementGenericCollectionInterfacesRule was moved from
Design into Design.Generic
Contributors for this release are:
Peter Johanson, Nestor Salceda, Cedric Vivier, Jesse Jones,
Alan McGovern, Sebastien Pouliot.
2008-07-14 Version 0.2.0.0
This release includes the development results of the last six
months, including some major events like the Novell Hack Week
(Winter 2008 edition), which changed much of the Gendarme
framework, the first "Gendarme Rule Day" and the first part of
GSoC 2008 work by Nestor Salceda.
General highlights:
* Performance enhancements, memory usage reduction (mostly
inside Cecil but the gains are very visible in Gendarme)
* MDB/PDB support: source files and line numbers are now
provided with defects [Sebastien Pouliot]
* New Windows installer: You can now easily enjoy Gendarme, and
it's wizard, from Windows computers [Sebastien Pouliot]
* .desktop file for the Wizard runner [Daniel Nauck]
* Console runner now uses color when displaying on the console
[Cedric Vivier]
* Albeit a bit invisible to end users, we started using the new
unit test helpers made during GHOP [Daniel Abramov]
* Bug fixes: works continue, like previous releases, to remove
false positives from existing rules;
and a lot of new rules including:
Gendarme.Rules.BadPractice
* AvoidCallingProblematicMethodsRule [Nestor Salceda]
* AvoidVisibleConstantFieldRule [Sebastien Pouliot]
* DoNotForgetNotImplementedMethodsRule [Cedric Vivier]
* DisableDebuggingCodeRule [Sebastien Pouliot]
* ObsoleteMessagesShouldNotBeEmptyRule [Sebastien Pouliot]
* ReplaceIncompleteOddnessCheckRule [Sebastien Pouliot]
Gendarme.Rules.Concurrency
* DoNotLockOnThisOrTypesRule [Sebastien Pouliot]
* DoNotLockOnWeakIdentityObjectsRule [Sebastien Pouliot]
* DoNotUseLockedRegionOutsideMethodRule [Andres G. Aragoneses]
Gendarme.Rules.Correctness
* DoNotRoundIntegersRule [Sebastien Pouliot]
* ReviewDoubleAssignmentRule [Sebastien Pouliot]
* ReviewSelfAssignmentRule [Sebastien Pouliot]
* ReviewUselessControlFlow [Sebastien Pouliot]
* ReviewUseOfInt64BitsToDoubleRule [Sebastien Pouliot]
* ReviewUseOfModuloOneOnIntegersRule [Sebastien Pouliot]
Gendarme.Rules.Design
* AvoidMultidimensionalIndexerRule [Sebastien Pouliot]
* AvoidRefAndOutParametersRule [Sebastien Pouliot]
* AvoidVisibleNestedTypesRule [Sebastien Pouliot]
* ConsiderConvertingFieldToNullableRule [Cedric Vivier]
* ConsiderUsingStaticTypeRule.cs [Sebastien Pouliot]
* ImplementGenericCollectionInterfacesRule [Daniel Abramov]
* ImplementIComparableCorreclyRule [Sebastien Pouliot]
* PreferIntegerOrStringForIndexersRule [Sebastien Pouliot]
Gendarme.Rules.Exception
* AvoidArgumentExceptionDefaultConstructorRule [Sebastien Pouliot]
* AvoidThrowingBasicExceptionsRule [Daniel Abramov]
* DoNotThrowReservedExceptionRule [Sebastien Pouliot]
* ExceptionShouldBeVisibleRule [Sebastien Pouliot]
* MissingExceptionConstructorsRule [Sebastien Pouliot]
Gendarme.Rules.Interoperability
* DoNotCastIntPtrToInt32Rule [Sebastien Pouliot]
Gendarme.Rules.Maintainability (new)
* AvoidComplexMethodsRule [Cedric Vivier]
* AvoidDeepInheritanceTreeRule [Sebastien Pouliot]
* AvoidLackOfCohesionOfMethodRule [Cedric Vivier]
* ConsiderUsingStopwatchRule [Cedric Vivier]
* PreferStringIsNullOrEmptyRule [Sebastien Pouliot]
Gendarme.Rules.Naming
* DoNotPrefixEventsWithAfterOrBeforeRule [Sebastien Pouliot]
Gendarme.Rules.Performance
* AvoidLargeNumberOfLocalVariablesRule [Sebastien Pouliot]
* AvoidLargeStructureRule [Sebastien Pouliot]
* AvoidRepetitiveCastsRule [Sebastien Pouliot]
* AvoidTypeGetTypeWhenPossibleRule [Sebastien Pouliot]
* AvoidUnusedPrivateFieldsRule [Sebastien Pouliot]
* AvoidUnneededUnboxingRule [Sebastien Pouliot]
* AvoidUnsealedUninheritedInternalClassesRule [Scott Peterson]
* ImplementEqualsTypeRule [Sebastien Pouliot]
* OverrideValueTypeDefaultsRule [Sebastien Pouliot]
* RemoveUnusedLocalVariablesRule [Sebastien Pouliot]
* UseIsOperatorRule [Seo Sanghyeon]
* UseTypeEmptyTypesRule [JB Evain]
Gendarme.Rules.Portability
* DoNotHardcodePathsRule [Daniel Abramov]
Gendarme.Rules.Serialization (new)
* CallBaseMethodsOnISerializableTypesRule [Nestor Salceda]
* DeserializeOptionalFieldRule [Sebastien Pouliot]
* ImplementISerializableCorrectlyRule [Nestor Salceda]
* MarkAllNonSerializableFieldsRule [Nestor Salceda]
* MissingSerializableAttributeOnISerializableTypeRule [Sebastien Pouliot]
* MissingSerializationConstructorRule [Sebastien Pouliot]
* UseCorrectSignatureForSerializationMethodsRule [Sebastien Pouliot]
Contributors for this release are:
Andres G. Aragoneses, Cedric Vivier, Daniel Abramov, JB Evain,
Nestor Salceda, Scott Peterson, Sebastien Pouliot, Seo Sanghyeon.
2008-01-31 Version 0.0.5
This time Google Highly Open Participation (GHOP) was the main
source of new rules for Gendarme (Daniel Abramov, Andreas Noever,
Adrian Tsai) and even a Gendarme logo (Steve P).
Many thanks to all of them and to Google!
Other news includes:
* More rules: while GHOP added 40 rules, other contributors added
7 more rules.
* Gendarme.Framework.Rocks: A new namespace, inside gendarme's
framework, introduce several extensions methods to ease rule
creation and avoid code duplication.
* Updated rules to be more friendly toward C# 3 code (e.g.
auto-implemented properties)
* Enhancements to existing rules to reduce false-positives. Even
with all the new rules the number of false-positives is lower
than before and Gendarme's self-test looks even better!
New rules by alphabetical order:
Gendarme.Rules.BadPractice
* CheckNewExceptionWithoutThrowingRule [Andreas Noever]
* CheckNewThreadWithoutStartRule [Andreas Noever]
* ConstructorShouldNotCallVirtualMethodsRule [Daniel Abramov]
* GetEntryAssemblyMayReturnNullRule [Daniel Abramov]
Gendarme.Rules.Concurrency
* NonConstantStaticFieldsShouldNotBeVisible [Andreas Noever]
Gendarme.Rules.Correctness
* DontCompareWithNaNRule [Sebastien Pouliot]
Gendarme.Rules.Design
* AbstractTypesShouldNotHavePublicConstructorsRule [Sebastien Pouliot]
* AttributeArgumentsShouldHaveAccessors [Daniel Abramov]
* AvoidEmptyInterfaceRule [Sebastien Pouliot]
* AvoidPropertiesWithoutGetAccessorRule [Sebastien Pouliot]
* AvoidPublicInstanceFieldsRule [Adrian Tsai]
* ConsiderConvertingMethodToPropertyRule [Adrian Tsai]
* DisposableFieldsShouldBeDisposedRule [Andreas Noever]
* DisposableTypesShouldHaveFinalizerRule [Andreas Noever]
* EnsureSymmetryForOverloadedOperatorsRule [Andreas Noever]
* EnumsShouldDefineAZeroValueRule [Sebastien Pouliot]
* FinalizersShouldBeProtectedRule [Daniel Abramov]
* FinalizersShouldCallBaseClassFinalizerRule [Daniel Abramov]
* FlagsShouldNotDefineAZeroValueRule [Sebastien Pouliot]
* MainShouldNotBePublicRule [Daniel Abramov]
* MissingAttributeUsageOnCustomAttributeRule [Daniel Abramov]
* OperatorEqualsShouldBeOverloadedRule [Andreas Noever]
* OverrideEqualsMethodRule [Andreas Noever]
* ProvideAlternativeNamesForOperatorOverloadsRule [Andreas Noever]
* TypesShouldBeInsideNamespacesRule [Sebastien Pouliot]
* TypesWithDisposableFieldsShouldBeDisposableRule [Andreas Noever]
* TypesWithNativeFieldsShouldBeDisposableRule [Andreas Noever]
Gendarme.Rules.Interoperability (new)
* GetLastErrorMustBeCalledRightAfterPInvokeRule [Andreas Noever]
* MarshalStringsInPInvokeDeclarationsRule [Daniel Abramov]
* PInvokeShouldNotBeVisibleRule [Andreas Noever]
* UseManagedAlternativesToPInvokeRule [Daniel Abramov]
Gendarme.Rules.Naming
* DoNotPrefixValuesWithEnumNameRule [Andreas Noever]
* DoNotUseReservedInEnumValueNamesRule [Andreas Noever]
* ParameterNamesShouldMatchOverridenMethodRule [Andreas Noever]
* UseCorrectCasing [Daniel Abramov]
* UseCorrectPrefixRule [Daniel Abramov]
* UseCorrectSuffixRule [Daniel Abramov]
* UsePreferredTermsRule [Daniel Abramov]
Gendarme.Rules.Performance
* AvoidReturningArraysOnPropertiesRule [Adrian Tsai]
* AvoidUnsealedConcreteAttributesRule [Daniel Abramov]
Gendarme.Rules.Portability
* ExitCodeIsLimitedOnUnixRule [Daniel Abramov]
* FeatureRequiresRootPrivilegeOnUnixRule [Andreas Noever]
* MonoCompatibilityReviewRule [Andreas Noever]
Gendarme.Rules.Security
* ArrayFieldsShouldNotBeReadOnlyRule [Andreas Noever]
* NativeFieldsShouldNotBeVisibleRule [Andreas Noever]
* StaticConstructorsShouldBePrivateRule [Daniel Abramov]
Gendarme.Rules.Ui
* UseSTAThreadAttributeOnSWFEntryPointsRule [Daniel Abramov]
2007-12-20 Version 0.0.4
After a long time, many fixes, useful features (e.g. inclusion and
exclusion) and hours trimming down false positives, we're proud to
announce Gendarme 0.0.4!
Many of the new rules were contributed during the Google Summer
of Code 2007.
Gendarme.Rules.BadPractice
* CloneMethodShouldNotReturnNullRule [Nidhi Rawal]
* EqualShouldHandleNullArgRule [Nidhi Rawal]
* ImplementingEqualsButNotGetHashCodeAndViceVersaRule [Nidhi Rawal]
* ToStringReturnsNullRule [Nidhi Rawal]
Gendarme.Rules.Concurrency
* WriteStaticFieldFromInstanceMethodRule [Sebastien Pouliot]
Gendarme.Rules.Correcness
* AvoidConstructorsInStaticTypesRule [Lukasz Knop]
* CallingEqualsWithNullArgRule [Nidhi Rawal]
* FloatComparisonRule [Lukasz Knop]
* MethodCanBeMadeStaticRule [JB Evain]
* UseValueInPropertySetterRule [Lukasz Knop]
Gendarme.Rules.Design (new)
* DontDeclareProtectedFieldsInSealedClassRule [Nidhi Rawal]
* UsingCloneWithoutImplementingICloneableRule [Nidhi Rawal]
Gendarme.Rules.Exceptions
* DontSwallowErrorsCatchingNonspecificExceptionRule [Nestor Salceda]
Gendarme.Rules.Naming (new)
* AttributesEndsWithAttributeSuffixRule [Nestor Salceda]
* DetectNonAlphaNumericsInTypeNamesRule [Nidhi Rawal]
* EnumsNotEndsWIthEnumOrFlagsSuffixRule [Nestor Salceda]
* UsePluralNameInEnumFlagsRule [Nestor Salceda]
* UseSingularNameInEnumsUnlessAreFlagsRule [Nestor Salceda]
Gendarme.Rules.Performance
* AvoidToStringOnStringRule [Lukasz Knop]
* AvoidUncalledPrivateCodeRule [Nidhi Rawal]
* AvoidUninstantiatedInternalClassesRule [Nidhi Rawal]
* AvoidUnusedParametersRule [Nestor Salceda]
* DontIgnoreMethodResultRule [Lukasz Knop]
Gendarme.Rules.Smells (new)
* AvoidCodeDuplicatedInSameClassRule [Nestor Salceda]
* AvoidCodeDuplicatedInSiblingClassesRule [Nestor Salceda]
* AvoidLargeClassRule [Nestor Salceda]
* AvoidLongMethodsRule [Nestor Salceda]
* AvoidLongParameterListsRule [Nestor Salceda]
* AvoidSpeculativeGeneralityRule [Nestor Salceda]
Gendarme.Rules.Ui (new)
* GtkSharpExecutableTargetRule [Sebastien Pouliot]
* SystemWindowsFormsExecutableTargetRule [Sebastien Pouliot]
A special thanks to Nestor Salceda for his continuing dedication
to the project including a lot of "not so fun" (but so important)
tasks, like merging, rule documentation & bug hunting. You rock!
2006-10-16 Version 0.0.3
* New rule for String.Empty [Sebastien Pouliot]
* New XML and HTML (via XSL transform) output [Christian Birkl,
Sebastien Pouliot]
* Updated to latest Cecil API [JBEvain]
2006-06-19 Version 0.0.2
* Aaron Tomb added new rules for Concurrency and Correctness (based
on his works in Google's Summer of Code 2005) and updated the
framework;
* Russell Morris added new rules for exceptions management.
2005-11-03 Version 0.0.1
* Initial version. Expect everything to change before 0.0.2 ;-)

28
tools/Gendarme-2.4/README

@ -0,0 +1,28 @@
Gendarme README
User-level documentation is available from the Mono:: project wiki
http://www.mono-project.com/Gendarme
ROADMAP
http://www.mono-project.com/Gendarme.Roadmap
Mailing list
http://groups.google.com/group/gendarme
Newsgroup gateway to the mailing list
nntp://news.gmane.org/gmane.comp.gnome.mono.gendarme
Developer documentation
http://groups.google.com/group/gendarme
IMPORTANT NOTES
* Gendarme "official" build system is based on the auto*/Makefile files
and tested on monobuild. See mono-tools on http://mono.ximian.com/monobuild/
(checking out gendarme without its parent dir 'mono-tools' is not supported)
* Visual Studio solutions and projects files (usable by both MonoDevelop
and Visual Studio .NET 2008) are NOT always up to date with Makefiles.
This depends on the developer making changes and his personal access to
the developing environments.

BIN
tools/Gendarme-2.4/gendarme-wizard.exe

Binary file not shown.

102
tools/Gendarme-2.4/gendarme.1

@ -0,0 +1,102 @@
.\"
.\" Gendarme manual page.
.\"
.\" Author:
.\" Sebastien Pouliot <sebastien@ximian.com>
.\"
.\" Copyright (C) 2005-2006,2008 Novell, Inc (http://www.novell.com)
.\"
.de Sp
.if t .sp .5v
.if n .sp
..
.TH Gendarme "Gendarme 2.4.0.0"
.SH NAME
Gendarme \- Rule-based code analysis for Mono::
.SH SYNOPSIS
.PP
.B gendarme [--config configfile] [--set ruleset] [--log file | --xml file | --html file] [options] assemblies ...
.SH DESCRIPTION
\fIGendarme\fP is a extensible rule-based tool to find problems in .NET
applications and libraries. Gendarme inspects programs and libraries that
contain code in ECMA CIL format (Mono and .NET) and looks for common
problems with the code, problems that compiler do not typically check or
have not historically checked.
.SH OPTIONS
.TP
.I "--config configfile"
Specify the configuration file. Default is 'rules.xml'.
.TP
.I "--set ruleset"
Specify the set of rules to verify. Default is '*'.
.TP
.I "--log file"
Save the text output to the specified file.
.TP
.I "--xml file"
Save the output, formatted as XML, to the specified file.
.TP
.I "--html file"
Save the output, formatted as HTML, to the specified file.
.TP
.I "--ignore ignore-file"
Do not report the known defects that are part of the specified file.
.TP
.I "--limit N"
Stop reporting after N defects are found.
.TP
.I "--severity [all | audit[+] | low[+|-] | medium[+|-] | high[+|-] | critical[-]],...
Filter the reported defects to include the specified severity levels.
Default is 'medium+' (i.e. low and audit levels are ignored).
.TP
.I "--confidence [all | low[+] | normal[+|-] | high[+|-] | total[-]],...
Filter the reported defects to include the specified confidence levels.
Default is 'normal+' (i.e. low level is ignored).
.TP
.I "--quiet"
Display minimal output (results) from the runner.
.TP
.I "--v|verbose"
Enable debugging output. You can supply several -v to augment debugging verbosity.
.TP
.I "--version"
Display Gendarme's version number. This number match the Mono release
where it was released.
.TP
.I "assemblies ..."
Specify the assemblies to verify. You can specify multiple filenames,
including masks (? and *). You can also provide a file that list several
assemblies (one by line) by prefixing the filename with @ on the command
line.
.SH FILES
.TP
.I rules.xml
This files contains a list of all the rulesets available to Gendarme. Each
ruleset includes a list of assemblies in which some, or all, rules can be
verified (include) or not (exclude).
+.TP
+.I gendarme.exe.config
+Used by debug versions of Gendarme to enable logging for rules. A config
+file will be generated automatically by the make file. To enable logging
+for a rule add a switch using the rule's name and set the value to 1.
.SH ENVIRONMENT VARIABLES
.TP
.I GENDARME_COLOR
The runner will use colors when displaying defects on the console.
By default colors are dark in order to display correctly on any
background. You can change this default to "light" (lighter colors
looks nice on a dark background, or "none" so no colors will be used.
E.g.
.nf
GENDARME_COLOR=none gendarme ...
.fi
.SH COPYRIGHT
Copyright (C) 2005-2008 Novell, Inc (http://www.novell.com)
.SH MAILING LISTS
Mailing lists are listed at the
http://groups.google.com/group/gendarme
.SH WEB SITE
http://www.mono-project.com/Gendarme
.SH SEE ALSO
.BR mono(1)

BIN
tools/Gendarme-2.4/gendarme.exe

Binary file not shown.

111
tools/Gendarme-2.4/rules.xml

@ -0,0 +1,111 @@
<gendarme>
<ruleset name="self-test">
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/>
<rules include="*" from="Gendarme.Rules.Concurrency.dll" />
<rules include="*" from="Gendarme.Rules.Correctness.dll"/>
<rules include="*" from="Gendarme.Rules.Design.dll"/>
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/>
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/>
<rules include="*" from="Gendarme.Rules.Exceptions.dll" />
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/>
<rules include="*" from="Gendarme.Rules.Naming.dll"/>
<rules include="*" from="Gendarme.Rules.Performance.dll" />
<rules include="*" from="Gendarme.Rules.Portability.dll" />
<rules include="*" from="Gendarme.Rules.Security.dll" />
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" />
<rules include="*" from="Gendarme.Rules.Serialization.dll" />
<rules include="*" from="Gendarme.Rules.Smells.dll"/>
<rules include="*" from="Gendarme.Rules.Ui.dll" />
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/>
</ruleset>
<ruleset name="default">
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/>
<rules include="*" from="Gendarme.Rules.Concurrency.dll" />
<rules include="*" from="Gendarme.Rules.Correctness.dll"/>
<rules include="*" from="Gendarme.Rules.Design.dll"/>
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/>
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/>
<rules include="*" from="Gendarme.Rules.Exceptions.dll" />
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/>
<rules include="*" from="Gendarme.Rules.Naming.dll"/>
<rules include="*" from="Gendarme.Rules.Performance.dll" />
<rules include="*" from="Gendarme.Rules.Portability.dll" />
<rules include="*" from="Gendarme.Rules.Security.dll" />
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" />
<rules include="*" from="Gendarme.Rules.Serialization.dll" />
<rules include="*" from="Gendarme.Rules.Ui.dll" />
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/>
<!-- no rule from Smells is included in this set -->
</ruleset>
<ruleset name="mono-bcl">
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/>
<rules include="*" from="Gendarme.Rules.Concurrency.dll"/>
<rules include="*" exclude="AvoidConstructorsInStaticTypesRule | MethodCanBeMadeStaticRule | NullDerefRule"
from="Gendarme.Rules.Correctness.dll"/>
<!-- no rule from Design is included in this set -->
<rules include="DontDestroyStackTraceRule" from="Gendarme.Rules.Exceptions.dll"/>
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/>
<!-- no rule from Naming is included in this set -->
<rules include="IDisposableWithDesctuctorWithoutSupressFinalizeRule | DontIgnoreMethodResultRule |
UseStringEmptyRule | AvoidToStringOnStringsRule | UsingStringLengthInsteadOfCheckingEmptyStringRule"
from="Gendarme.Rules.Performance.dll"/>
<rules include="*" exclude="MonoCompatibilityReviewRule" from="Gendarme.Rules.Portability.dll"/>
<rules include="*" exclude="ArrayFieldsShouldNotBeReadOnlyRule | NativeFieldsShouldNotBeVisibleRule"
from="Gendarme.Rules.Security.dll"/>
<!-- no rule from Ui is included in this set -->
</ruleset>
<ruleset name="concurrency">
<rules include="*" from="Gendarme.Rules.Concurrency.dll" />
</ruleset>
<ruleset name="correctness">
<rules include="*" from="Gendarme.Rules.Correctness.dll" />
</ruleset>
<ruleset name="security">
<rules include="*" from="Gendarme.Rules.Security.dll" />
</ruleset>
<ruleset name="security-cas">
<rules include="*" from="Gendarme.Rules.Security.Cas.dll" />
</ruleset>
<ruleset name="performance">
<rules include="*" from="Gendarme.Rules.Performance.dll" />
</ruleset>
<ruleset name="portability">
<rules include="*" from="Gendarme.Rules.Portability.dll" />
</ruleset>
<ruleset name="exceptions">
<rules include="*" from="Gendarme.Rules.Exceptions.dll" />
</ruleset>
<ruleset name="ui">
<rules include="*" from="Gendarme.Rules.Ui.dll" />
</ruleset>
<ruleset name="naming">
<rules include="*" from="Gendarme.Rules.Naming.dll"/>
</ruleset>
<ruleset name="smells">
<rules include="*" from="Gendarme.Rules.Smells.dll"/>
</ruleset>
<ruleset name="badpractice">
<rules include="*" from="Gendarme.Rules.BadPractice.dll"/>
</ruleset>
<ruleset name="design">
<rules include="*" from="Gendarme.Rules.Design.dll"/>
</ruleset>
<ruleset name="design-generic">
<rules include="*" from="Gendarme.Rules.Design.Generic.dll"/>
</ruleset>
<ruleset name="design-linq">
<rules include="*" from="Gendarme.Rules.Design.Linq.dll"/>
</ruleset>
<ruleset name="interoperability">
<rules include="*" from="Gendarme.Rules.Interoperability.dll"/>
</ruleset>
<ruleset name="serialization">
<rules include="*" from="Gendarme.Rules.Serialization.dll"/>
</ruleset>
<ruleset name="maintainability">
<rules include="*" from="Gendarme.Rules.Maintainability.dll"/>
</ruleset>
</gendarme>
Loading…
Cancel
Save