From c89bb8df31f8ab20786449093d0d43b8ac6b654c Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 15:54:27 +0100 Subject: [PATCH 1/6] remove unneeded class category in Slime tests --- .../instance/testReferencesNotPortableClass.st | 1 - .../instance/testSubclassesNotPortableClass.st | 1 - .../GRReSlimeTest.class/instance/testUsesNotPortableClass.st | 1 - .../monticello.meta/categories.st | 2 +- 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st index 6c1b5b23..ea1908c7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st @@ -3,7 +3,6 @@ testReferencesNotPortableClass | class | class := self defineSubClassOf: #GRObject. - class category: 'SomeCategory'. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st index 2ced3881..c113779d 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st @@ -3,7 +3,6 @@ testSubclassesNotPortableClass | class | class := self defineSubClassOf: #Mutex. - class category: 'SomeCategory'. self assertRule: GRSubclassesNotPortableClassRule matches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st index 5699c982..965d58ad 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -3,7 +3,6 @@ testUsesNotPortableClass | class | class := self defineSubClassOf: #GRObject. - class category: 'SomeCategory'. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self diff --git a/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st index 6c2ac5ef..bb71bcda 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st +++ b/repository/Grease-Tests-Pharo-Slime.package/monticello.meta/categories.st @@ -1 +1 @@ -SystemOrganization addCategory: #'Grease-Tests-Pharo-Slime'! +self packageOrganizer ensurePackage: #'Grease-Tests-Pharo-Slime' withTags: #()! From 5216ca7bb6e9200f90d3d56400691e69d80bd725 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 15:54:46 +0100 Subject: [PATCH 2/6] Replace deprecated message --- .../instance/testCompileIntoClassified.st | 2 +- .../monticello.meta/categories.st | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testCompileIntoClassified.st b/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testCompileIntoClassified.st index 112d896b..8fe4388c 100644 --- a/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testCompileIntoClassified.st +++ b/repository/Grease-Tests-Pharo-Core.package/GRPharoPlatformTest.class/instance/testCompileIntoClassified.st @@ -11,5 +11,5 @@ testCompileIntoClassified classified: protocol. [ self assert: (self class selectors includes: selector). - selectors := self class organization listAtCategoryNamed: protocol. + selectors := self class selectorsInProtocol: protocol. self assert: selectors = (Array with: selector) ] ensure: [ self class removeSelector: selector ] \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Core.package/monticello.meta/categories.st b/repository/Grease-Tests-Pharo-Core.package/monticello.meta/categories.st index 8f89143a..7bce97a3 100644 --- a/repository/Grease-Tests-Pharo-Core.package/monticello.meta/categories.st +++ b/repository/Grease-Tests-Pharo-Core.package/monticello.meta/categories.st @@ -1 +1 @@ -SystemOrganization addCategory: #'Grease-Tests-Pharo-Core'! +self packageOrganizer ensurePackage: #'Grease-Tests-Pharo-Core' withTags: #()! From edd9b010d3107ec883f8367491b61cfa4be63942 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 16:07:21 +0100 Subject: [PATCH 3/6] class packages are important in the tests, as indicated by the failures that otherwise result --- .../instance/testReferencesNotPortableClass.st | 1 + .../instance/testSubclassesNotPortableClass.st | 1 + .../GRReSlimeTest.class/instance/testUsesNotPortableClass.st | 1 + 3 files changed, 3 insertions(+) diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st index ea1908c7..0b0c9235 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st @@ -3,6 +3,7 @@ testReferencesNotPortableClass | class | class := self defineSubClassOf: #GRObject. + class package: 'SomeCategory' tag: ''. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st index c113779d..a58675a4 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st @@ -3,6 +3,7 @@ testSubclassesNotPortableClass | class | class := self defineSubClassOf: #Mutex. + class package: 'SomeCategory' tag: ''. self assertRule: GRSubclassesNotPortableClassRule matches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st index 965d58ad..2bdf3356 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -3,6 +3,7 @@ testUsesNotPortableClass | class | class := self defineSubClassOf: #GRObject. + class package: 'SomeCategory' tag: ''. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self From 203d08e83154a278d288c26cd150db2e12cd4bb3 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 16:14:52 +0100 Subject: [PATCH 4/6] make class package work across all Pharo versions for generating test classes --- .../instance/defineSubClassOf..st | 18 +---------------- .../instance/defineSubClassOf.inPackage..st | 20 +++++++++++++++++++ .../testReferencesNotPortableClass.st | 3 +-- .../testSubclassesNotPortableClass.st | 3 +-- .../instance/testUsesNotPortableClass.st | 3 +-- 5 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf.inPackage..st diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st index 92da2de7..fdcf43d7 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf..st @@ -1,20 +1,4 @@ accessing-code defineSubClassOf: aSuperSymbol - | class | - class := SystemVersion current major >= 12 - ifTrue: [ - factory make: [ :aBuilder | - aBuilder - superclass: (Smalltalk at: aSuperSymbol); - package: self category ] ] - ifFalse: [ - factory - newSubclassOf: (Smalltalk at: aSuperSymbol) - instanceVariableNames: '' - classVariableNames: 'classVarsString' - category: self category ]. - environment - addClass: class; - addClass: class classSide. - ^ class \ No newline at end of file + ^ self defineSubClassOf: aSuperSymbol inPackage: self category \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf.inPackage..st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf.inPackage..st new file mode 100644 index 00000000..9ad6f16a --- /dev/null +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/defineSubClassOf.inPackage..st @@ -0,0 +1,20 @@ +accessing-code +defineSubClassOf: aSuperSymbol inPackage: packageName + + | class | + class := SystemVersion current major >= 12 + ifTrue: [ + factory make: [ :aBuilder | + aBuilder + superclass: (Smalltalk at: aSuperSymbol); + package: packageName ] ] + ifFalse: [ + factory + newSubclassOf: (Smalltalk at: aSuperSymbol) + instanceVariableNames: '' + classVariableNames: 'classVarsString' + category: packageName ]. + environment + addClass: class; + addClass: class classSide. + ^ class \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st index 0b0c9235..a3070f80 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testReferencesNotPortableClass.st @@ -2,8 +2,7 @@ tests-block testReferencesNotPortableClass | class | - class := self defineSubClassOf: #GRObject. - class package: 'SomeCategory' tag: ''. + class := self defineSubClassOf: #GRObject inPackage: 'SomeCategory'. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st index a58675a4..c86dc173 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testSubclassesNotPortableClass.st @@ -2,8 +2,7 @@ tests-block testSubclassesNotPortableClass | class | - class := self defineSubClassOf: #Mutex. - class package: 'SomeCategory' tag: ''. + class := self defineSubClassOf: #Mutex inPackage: 'SomeCategory'. self assertRule: GRSubclassesNotPortableClassRule matches: { class } \ No newline at end of file diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st index 2bdf3356..f65d00a4 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testUsesNotPortableClass.st @@ -2,8 +2,7 @@ tests-block testUsesNotPortableClass | class | - class := self defineSubClassOf: #GRObject. - class package: 'SomeCategory' tag: ''. + class := self defineSubClassOf: #GRObject inPackage: 'SomeCategory'. self compile: 'invalid ^ Semaphore new' in: class. self compile: 'valid ^ GRObject new' in: class. self From a886828af03d80face9597931baf636bb5e91689 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 16:21:28 +0100 Subject: [PATCH 5/6] remove dead code --- .../GRTestAssertionsRule.class/instance/checkMethod..st | 7 ------- .../monticello.meta/categories.st | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st diff --git a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st b/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st deleted file mode 100644 index bab892c3..00000000 --- a/repository/Grease-Pharo110-Slime.package/GRTestAssertionsRule.class/instance/checkMethod..st +++ /dev/null @@ -1,7 +0,0 @@ -running -checkMethod: aContext - aContext methodClass isMeta - ifTrue: [ ^ self ]. - (aContext methodClass allSuperclasses includes:(Smalltalk at: #TestCase)) - ifFalse: [ ^ self ]. - ^ super checkMethod: aContext \ No newline at end of file diff --git a/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st b/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st index ff4f5aed..f4dc770b 100644 --- a/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st +++ b/repository/Grease-Pharo110-Slime.package/monticello.meta/categories.st @@ -1 +1 @@ -SystemOrganization addCategory: #'Grease-Pharo110-Slime'! +self packageOrganizer ensurePackage: #'Grease-Pharo110-Slime' withTags: #()! From 666789421d28f0eff2c4bc4c8f9734a27603c40d Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 4 Feb 2024 17:12:40 +0100 Subject: [PATCH 6/6] fix code style --- .../GRReSlimeTest.class/instance/testTestCaseFailRule.st | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st index c4044a19..1fecfedc 100644 --- a/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st +++ b/repository/Grease-Tests-Pharo-Slime.package/GRReSlimeTest.class/instance/testTestCaseFailRule.st @@ -6,5 +6,4 @@ testTestCaseFailRule self compile: 'testMethod self fail' in: class. self runTransformation: GRTestAssertionsRule - changes: #( - 'testMethod self assert: false' ) \ No newline at end of file + changes: #( 'testMethod self assert: false' ) \ No newline at end of file