Skip to content

Commit

Permalink
add suspiciousAuthorInitials test
Browse files Browse the repository at this point in the history
  • Loading branch information
LinqLover committed Jan 5, 2025
1 parent 6e2c9fd commit 641b309
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
instance-creation
defaultFastSelectionTests

^ { #smallLintUnconditionalRecursion . #instanceVariableAccessIsConsistent: . #collectionProtocolRule: . #smallLintJustSendsSuper . #smallLintTempsReadBeforeWritten . #unnecessaryAssignmentRule: . #smallLintConsistencyCheck . #longMethods: . #smallLintDetectContains . #smallLintToDoWithIncrement . #smallLintEqualNotUsed . #smallLintModifiesCollection . #smallLintOverridesSpecialMessage . #lawOfDemeterRule: . #smallLintAbstractClass . #smallLintCollectSelectNotUsed . #smallLintOnlyReadOrWrittenVariable . #smallLintMethodModifierFinal . #smallLintMissingYourself . #smallLintUndeclaredReference . #smallLintOnlyReadOrWrittenTemporary . #smallLintUsesTrue . #dotAfterReturn: . #smallLintFloatEqualityComparison } asSet
^ { #smallLintUnconditionalRecursion . #instanceVariableAccessIsConsistent: . #collectionProtocolRule: . #smallLintJustSendsSuper . #smallLintTempsReadBeforeWritten . #unnecessaryAssignmentRule: . #smallLintConsistencyCheck . #longMethods: . #smallLintDetectContains . #smallLintToDoWithIncrement . #smallLintEqualNotUsed . #smallLintModifiesCollection . #smallLintOverridesSpecialMessage . #lawOfDemeterRule: . #smallLintAbstractClass . #smallLintCollectSelectNotUsed . #smallLintOnlyReadOrWrittenVariable . #smallLintMethodModifierFinal . #smallLintMissingYourself . #smallLintUndeclaredReference . #smallLintOnlyReadOrWrittenTemporary . #smallLintUsesTrue . #dotAfterReturn: . #smallLintFloatEqualityComparison. #suspiciousAuthorInitials: } asSet
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
instance-creation
defaultFullSelectionTests

^ { #smallLintExcessiveArguments . #smallLintEquivalentSuperclassMethods . #smallLintUnclassifiedMethods . #lawOfDemeterRule: . #noClassComments: . #smallLintMissingYourself . #smallLintOnlyReadOrWrittenVariable . #unnecessaryAssignmentRule: . #smallLintBooleanPrecedence . #smallLintAbstractClass . #smallLintMissingSuperSends . #ifTrueReturnsRule: . #smallLintReturnsIfTrue . #smallLintCollectionMessagesToExternalObject . #smallLintConsistencyCheck . #smallLintCollectionCopyEmpty . #smallLintFloatEqualityComparison . #smallLintUnreferencedVariables . #smallLintMethodModifierOverride . #brainMethod: . #smallLintOnlyReadOrWrittenTemporary . #smallLintYourselfNotUsed . #godClass: . #smallLintExcessiveMethods . #magicNumbers: . #instVarInAllSubclasses: . #collectionProtocolRule: . #smallLintDefinesEqualNotHash . #badlyFormattedMethods: . #smallLintUnconditionalRecursion . #smallLintLiteralArrayContainsComma . #smallLintLiteralArrayContainsDot .#smallLintTempsReadBeforeWritten . #smallLintMissingSubclassResponsibility . #instanceVariableAccessIsConsistent: . #smallLintEqualNotUsed . #smallLintAddRemoveDependents . #smallLintMethodModifierFinal . #smallLintModifiesCollection . #smallLintRefersToClass . #smallLintThreeElementPoint . #precedenceRule: . #brainClass: . #smallLintCollectSelectNotUsed . #featureEnvy: . #smallLintInconsistentMethodClassification . #smallLintUsesTrue . #smallLintJustSendsSuper . #smallLintDetectContains . #metaProgramming: . #smallLintTemporaryVariableCapitalization . #smallLintAssignmentWithoutEffect . #smallLintOverridesSpecialMessage . #smallLintUndeclaredReference . #smallLintEqualsTrue . #smallLintToDoWithIncrement . #smallLintExcessiveVariables . #longMethods: . #dotAfterReturn: } asSet
^ { #smallLintExcessiveArguments . #smallLintEquivalentSuperclassMethods . #smallLintUnclassifiedMethods . #lawOfDemeterRule: . #noClassComments: . #smallLintMissingYourself . #smallLintOnlyReadOrWrittenVariable . #unnecessaryAssignmentRule: . #smallLintBooleanPrecedence . #smallLintAbstractClass . #smallLintMissingSuperSends . #ifTrueReturnsRule: . #smallLintReturnsIfTrue . #smallLintCollectionMessagesToExternalObject . #smallLintConsistencyCheck . #smallLintCollectionCopyEmpty . #smallLintFloatEqualityComparison . #smallLintUnreferencedVariables . #smallLintMethodModifierOverride . #brainMethod: . #smallLintOnlyReadOrWrittenTemporary . #smallLintYourselfNotUsed . #godClass: . #smallLintExcessiveMethods . #magicNumbers: . #instVarInAllSubclasses: . #collectionProtocolRule: . #smallLintDefinesEqualNotHash . #badlyFormattedMethods: . #smallLintUnconditionalRecursion . #smallLintLiteralArrayContainsComma . #smallLintLiteralArrayContainsDot .#smallLintTempsReadBeforeWritten . #smallLintMissingSubclassResponsibility . #instanceVariableAccessIsConsistent: . #smallLintEqualNotUsed . #smallLintAddRemoveDependents . #smallLintMethodModifierFinal . #smallLintModifiesCollection . #smallLintRefersToClass . #smallLintThreeElementPoint . #precedenceRule: . #brainClass: . #smallLintCollectSelectNotUsed . #featureEnvy: . #smallLintInconsistentMethodClassification . #smallLintUsesTrue . #smallLintJustSendsSuper . #smallLintDetectContains . #metaProgramming: . #smallLintTemporaryVariableCapitalization . #smallLintAssignmentWithoutEffect . #smallLintOverridesSpecialMessage . #smallLintUndeclaredReference . #smallLintEqualsTrue . #smallLintToDoWithIncrement . #smallLintExcessiveVariables . #longMethods: . #dotAfterReturn:. #suspiciousAuthorInitials: } asSet
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"class" : {
"build" : "NA 7/2/2015 18:31",
"defaultFastSelectionTests" : "BD 6/29/2018 15:56",
"defaultFullSelectionTests" : "ct 12/13/2024 03:19",
"defaultFastSelectionTests" : "ct 1/5/2025 02:28",
"defaultFullSelectionTests" : "ct 1/5/2025 02:23",
"lastSelectionTests" : "BD 6/29/2018 14:35",
"lastSelectionTests:" : "BD 6/29/2018 15:55",
"onEnvironment:" : "LG 7/5/2018 20:26",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
method tests
suspiciousAuthorInitials: aMethodTestObject
<slTestName: 'Method has suspicious author initials'
description: 'Every method should have the initials of its latest author in its time stamp. This test finds methods whose author initials look suspicious and have perhaps been created by a tool. To fix invalid author initials, you can accept the method again in a browser.'
category: 'Miscellaneous'>

| authorInitials suspicious |
aMethodTestObject ifClassTestChildrenWith: #suspiciousAuthorInitials:.
aMethodTestObject shouldBeMethod.
authorInitials := aMethodTestObject testObject timeStamp ifNotNil: [:stamp |
stamp findTokens at: 1 ifAbsent: nil].

suspicious := authorInitials isEmptyOrNil not and:
[(authorInitials copyWithout: '0123456789/') isEmpty
or: [#('programmatic' 'smalltalkCI' '*test*') anySatisfy: [:pattern | pattern match: authorInitials]]].

^ (self booleanResult: suspicious)
showOnlyIfTrue
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"methodWidth:" : "JTM 5/27/2015 11:16",
"miscTest:" : "AT 5/8/2008 09:38",
"printOn:" : "NH 6/24/2015 14:11",
"suspiciousAuthorInitials:" : "ct 1/5/2025 02:54",
"usedForeignVars:" : "JTM 5/27/2015 11:17",
"usedInstVars:" : "JTM 5/27/2015 11:17",
"usedVars:" : "JTM 5/27/2015 11:17" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
map - 2. code quality - metadata
mapSuspiciousAuthorInitials: aSLTestData
<sl2Test: #suspiciousAuthorInitials>

^ (self makeTestFrom: aSLTestData)
addCategoryPath: #('code quality' 'metadata');
yourself
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@
"mapStringConcatenation:" : "ct 12/19/2024 01:55",
"mapSubclassResponsibilityNotImplemented:" : "ct 12/18/2024 23:56",
"mapSuperSendsNew:" : "ct 12/19/2024 02:29",
"mapSuspiciousAuthorInitials:" : "ct 1/5/2025 02:36",
"mapSystemLocCount:" : "ct 12/19/2024 05:38",
"mapSystemMethodCount:" : "ct 12/19/2024 05:38",
"mapTemporaryVariableCapitalization:" : "ct 12/19/2024 04:14",
Expand Down

0 comments on commit 641b309

Please sign in to comment.