Skip to content

Feature/test cleanup#100

Open
krperry wants to merge 13 commits intomainfrom
feature/test-cleanup
Open

Feature/test cleanup#100
krperry wants to merge 13 commits intomainfrom
feature/test-cleanup

Conversation

@krperry
Copy link
Copy Markdown
Collaborator

@krperry krperry commented Apr 8, 2026

This PR stabilizes the build by disabling all currently failing tests without changing any production logic. The goal is to get ./mvnw clean install fully green so we have a clean baseline to begin fixing tests in a structured way.

All changes are documented in test_update.md, which outlines what was done and the plan for re-enabling tests in future phases.

Details

I initially started disabling failing tests manually, but since test fixing and planning is something Claude Sonnet is good at, I used it to help create a structured plan. I worked through that plan carefully to make sure nothing functional was being changed or broken.

I also had it document exactly what was done, and outline next steps. Those next steps are not implemented in this PR.

What this PR does

Disables all failing tests using @test(enabled = false)
Fixes a build configuration issue in pom.xml that caused test JVM crashes
Ensures ./mvnw clean install completes successfully with:
0 failing tests
failing tests now skipped
Documents all changes and next steps in test_update.md

Scope of changes

232 failing tests in utd disabled
Additional pre-existing failing tests in other modules disabled
No production code changes
No logic changes, only test disabling and build stabilization

Why this approach

The current test suite has widespread failures due to:
Intentional behavior changes (e.g., AsciiMath output changes)
Outdated test data and expectations
Invalid test setup assumptions
Legacy or unused features still referenced in test data
Fixing everything at once would be high risk and hard to review
This PR creates a clean, stable baseline to fix tests incrementally

Follow-up plan (not included in this PR)

Outlined in test_update.md:

Phase 1: Clean up invalid test data (XML, JAXB issues)
Phase 2: Fix broken test setups
Phase 3: Update expected values to match current behavior
Phase 4: Add missing test coverage

Notes

This PR intentionally does not fix tests, only stabilizes the build
Future PRs will re-enable tests in small, reviewable chunks

krperry added 5 commits April 7, 2026 23:05
Disable all failing tests with @test(enabled = false) so the build is
green and committable while each root cause is fixed in subsequent phases.
No production code is changed.

AsciiMathConverterTest (147 failures) - all 4 @test methods disabled.
Root cause: AsciiMath converter output changed intentionally; test
expectations are outdated. Fix in Phase 3a.

TransformTest (74 failures) - xslTransform() disabled.
Root cause: MathML2AsciiMath.xsl produces different output than the 74
cases in asciimathConverterTests.xml expect. Fix in Phase 3b.

MetadataHelperTest (8 failures) - all 8 @test methods disabled.
Root cause: nodeBuilder() creates an empty <head> element; MetadataHelper
getDocumentHead() returns null for an empty <head>, so meta elements are
never appended. Fix in Phase 2.

BrailleSettingsTest.loadEngine (1 failure) - disabled.
Root cause: brailleSettings.xml contains a standalone <mathLineWrapping>
element that no longer corresponds to a JAXB field (feature restructured
into MathBraileCode enum). Fix in Phase 1b.

DocumentUTDConfigTest invocations 2 and 13 (2 failures) - lambdas
commented out with TODO markers.
Root cause: nimas.xml contains *LLAPH and useLibLouisAPH elements from a
feature (libLouisAPH) that was planned but never implemented. JAXB strict
validation rejects these unknown elements. Fix in Phase 1a.

Refs: test_update.md
BookToBBXConverterTest (and other brailleblaster-core tests) load
programData files via the BBIni.loadAutoProgramDataFile() helper, which
resolves paths relative to org.brailleblaster.distdir (= build.dist.directory).

build.dist.directory was only defined in brailleblaster-app/pom.xml as
\/dist.  Because brailleblaster-app is built
AFTER brailleblaster-core in the reactor order, this directory does not
exist yet during a clean install, and the property was undefined in
brailleblaster-core's context anyway.

Fix: define build.dist.directory in the root pom pointing to the
source-controlled brailleblaster-app/src/dist, which is always present.
brailleblaster-app continues to override this with its own target/dist
for the assembled distribution build.
…ore [Phase 0]

These failures were hidden behind a JVM crash (Cannot instantiate
BookToBBXConverterTest) that was fixed by defining build.dist.directory
in the root pom. With programData now resolvable, the tests run and
expose 14 pre-existing failures.

BookToBBXConverterTest (11 failures) - table-related conversions:
  imageBlock, lineBreakTableCell, tableGroupTest, tableInsideList,
  tableNonWithEmptyTableCell, tableTest, tableTextWrapTest,
  tableWithImage, tableWithImage_OnlyImageInCell_issue5817,
  tableWithSidebarAndList, tableWithSidebarAndListAndText

BBXTest (1 failure) - subtypesListMatchesField (dataProvider variant 4)
MatrixTest (1 failure) - blankBlockMatrixNemeth
NumberLineTest (1 failure) - parseWeirdThings

All disabled with @test(enabled = false) pending investigation.
Pre-existing failure uncovered during Phase 0 clean build verification.
Disabled pending investigation.
@mwhapples
Copy link
Copy Markdown
Member

Seems like mavenMultiProject.directory property is not for general use.

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.

2 participants