theseion / Fuel

Fuel, the Smalltalk object serializer
https://theseion.github.io/Fuel
MIT License
26 stars 12 forks source link

[Pharo12] [Clean Blocks] Test failing with clean blocks enabled #279

Closed MarcusDenker closed 1 year ago

MarcusDenker commented 1 year ago

When turning on the clean block option in the compiler and recompile all, these tests in Fuel fail, as now the CleanBlock is in the literals, not the CompiledBlock:

unix-64 / Tests-unix-64 / testBlockClosureChangeDifferentBytecodes –Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureChangeSameBytecodes – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureRemoved – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureWithClassVariableRead – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureWithGlobalVariable – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureWithThreeArguments – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testNestedBlockClosure – Unix64.Fuel.Tests.Core.Base.FLBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureChangeDifferentBytecodes – Unix64.Fuel.Tests.Core.FullSerialization.FLFullBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testBlockClosureRemoved – Unix64.Fuel.Tests.Core.FullSerialization.FLFullBlockClosureSerializationTest
unix-64 / Tests-unix-64 / testPostMaterializationActions – Unix64.Fuel.Tests.Core.FullSerialization.FLFullHeaderSerializationTest
unix-64 / Tests-unix-64 / testPreMaterializationActions – Unix64.Fuel.Tests.Core.FullSerialization.FLFullHeaderSerializationTest
unix-64 / Tests-unix-64 / testCompiledMethodChanged – Unix64.Fuel.Tests.Core.Base.FLGlobalEnvironmentTest
unix-64 / Tests-unix-64 / testPostMaterializationActions – Unix64.Fuel.Tests.Core.Base.FLHeaderSerializationTest
unix-64 / Tests-unix-64 / testPreMaterializationActions – Unix64.Fuel.Tests.Core.Base.FLHeaderSerializationTest
unix-64 / Tests-unix-64 / testSortedCollection – Unix64.Fuel.Tests.Core.Base.FLSortedCollectionSerializationTest
unix-64 / Tests-unix-64 / testSortedCollectionWithClassVariableChanges – Unix64.Fuel.Tests.Core.Base.FLSortedCollectionSerializationTest
unix-64 / Tests-unix-64 / testSortedCollectionWithClassVariableReference – Unix64.Fuel.Tests.Core.Base.FLSortedCollectionSerializationTest
unix-64 / Tests-unix-64 / testDemo – Unix64.Fuel.Tests.Core.Base.FLUserGuidesTest
unix-64 / Tests-unix-64 / testSerializeContextToFileNamed – Unix64.NewTools.Debugger.Fuel.Tests.FLDebuggerStackSerializerTest
unix-64 / Tests-unix-64 / testSerializeStackFromContext – Unix64.NewTools.Debugger.Fuel.Tests.FLDebuggerStackSerializerTest

I addede a PR on the Pharo tracker for that, too:

[Clean Blocks] Test failing with clean blocks enabled: https://github.com/pharo-project/pharo/issues/13755

theseion commented 1 year ago

@MarcusDenker, I looked into this and I've come to the same conclusion as you, during the transition, the failing tests must be skipped if clean blocks are enabled.

There also currently appears to be an issue with storing / loading clean blocks, but as long as you don't need that functionality I'd wait until clean blocks are enabled by default.

theseion commented 1 year ago

Done.

theseion commented 1 year ago

In https://github.com/pharo-project/pharo/pull/14132