Skip to content

Conversation

@fluentcrafter
Copy link
Collaborator

@fluentcrafter fluentcrafter commented Dec 18, 2025

This PR migrates the acceptance test to Kotlin, mostly using AI.

Further simplification and improvements of the tests will be done in follow-up PRs.


Note

Migrates the acceptance test suite to Kotlin, updates Gradle/test tooling and dependencies, and improves plugin error logging.

  • Acceptance Tests (Kotlin migration):
    • Rewrite all acceptance tests and shared DSL helpers from Java to Kotlin under src/test/kotlin and src/main/kotlin (e.g., LineaPlugin*TestBase, EngineAPIService, test classes like *Test.kt).
    • Replace Java utility MemoryAppender.java with Kotlin MemoryAppender.kt.
  • Build/Gradle:
    • Apply Kotlin minimal conventions in acceptance-tests/build.gradle; wire Kotlin/solidity/web3j generation into compileKotlin/compileTestKotlin.
    • Add dependencies (e.g., :jvm-libs:...:jackson, WireMock) and dedicated acceptanceTests task; disable default test task.
    • Minor cleanup in sequencer/build.gradle (remove global spotless chaining) and root spotless comment tweak.
  • Runtime/Logging:
    • Improve fatal error logging in AbstractLineaRequiredPlugin (structured logging; remove printStackTrace).

Written by Cursor Bugbot for commit 1b5e00b. This will update automatically on new commits. Configure here.

@codecov-commenter
Copy link

codecov-commenter commented Dec 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.78%. Comparing base (65d4393) to head (3654832).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #1949   +/-   ##
=========================================
  Coverage     62.78%   62.78%           
  Complexity     1536     1536           
=========================================
  Files           411      411           
  Lines         14958    14958           
  Branches       1580     1580           
=========================================
  Hits           9391     9391           
  Misses         4948     4948           
  Partials        619      619           
Flag Coverage Δ *Carryforward flag
hardhat 95.93% <ø> (ø) Carriedforward from 0f14972
kotlin 60.25% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

kyzooghost pushed a commit that referenced this pull request Dec 18, 2025
dependencies {
annotationProcessor 'org.apache.logging.log4j:log4j-core'
implementation 'org.apache.logging.log4j:log4j-core'
implementation project(":jvm-libs:generic:serialization:jackson")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Log4j2 plugin may not be discovered after Kotlin migration

The MemoryAppender class migrated from Java to Kotlin, but the build only configures Java annotation processing for Log4j2 (annotationProcessor 'org.apache.logging.log4j:log4j-core'). The Java annotation processor won't process Kotlin files, so it won't generate the Log4j2Plugins.dat cache file needed for plugin discovery. The log4j2-test.xml configuration references <Memory> appenders without a packages attribute for runtime scanning. Without either kapt for Kotlin annotation processing or a packages attribute in the configuration, the custom Memory appender plugin may not be discovered at runtime.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants