Files
JuliaFEM.jl/docs/src/contributor/test_fixes_needed.md
T
Jukka Aho fb732efd1b docs: Move contributor manual to docs/src/contributor/
- Relocate docs/contributor/ to docs/src/contributor/
- Add three GPU quickstart guides (renamed from UPPERCASE to snake_case):
  - gpu_elasticity_quickstart.md
  - gpu_nodal_assembly_quickstart.md
  - quick_reference_gpu.md
- Part of three-tier docs reorganization following Documenter.jl standard
- All files now under docs/src/ for automatic rendering
2025-11-10 22:21:43 +02:00

3.9 KiB

title, description, date, updated, author, categories, keywords, audience, level, type, series, status
title description date updated author categories keywords audience level type series status
Test Fixes Needed Known test failures and fixes required for full test suite passing 2025-11-09 2025-11-09 Jukka Aho
testing
todo
tests
failures
fixes
todo
contributors intermediate technical note Contributor Manual active maintenance

Date: November 8, 2025
Status: 5 passing, 49 failing (infrastructure now in place)

Summary

Tests are failing due to API evolution between Julia 0.6/1.0 (2018) and Julia 1.12 (2025), not fundamental architectural problems. Package loads successfully and core functionality works.

Main Issues

1. Missing aster_read_mesh (14 tests)

Problem: Tests use aster_read_mesh() from IO submodule, but it requires HDF5
Files affected: Most 3D elasticity tests, med file tests
Fix options:

  • A) Add HDF5 as optional dependency (Julia 1.9+ package extensions)
  • B) Skip tests that need .med files for now
  • C) Convert test meshes to .inp format (ABAQUS, which we support)

Recommendation: Option C - convert test meshes to .inp format

2. eval_basis! Signature Mismatch (2 tests)

Problem: eval_basis!(::Type{Seg2}, ::Matrix, ::Tuple{Float64})
Current: eval_basis!(::Seg2, ::Vector, ::Tuple{Float64}, time::Float64)
Location: vendor/FEMBasis.jl

Fix: Update signature in FEMBasis or fix call sites

3. jacobian Signature Mismatch (~20 tests)

Problem: Tests call jacobian(element_type, X, xi) with old signatures
Current API: Different parameter order or types
Location: vendor/FEMBasis.jl/src/jacobian.jl

Fix: Consolidate FEMBasis into src/basis/ with modern API

4. allocate_buffer Missing (2 tests)

Problem: allocate_buffer(::Problem{Elasticity}, ::Vector{Element})
Status: Method doesn't exist in current codebase
Fix: Either restore method or update tests to not need it

5. Analysis Missing (5 tests) - FIXED

Status: Now exported, these tests should pass

6. Statistics Package Missing (1 test) - FIXED

Status: Now in test dependencies

Test Categories

Passing (5 tests)

  • Virtual work test
  • Contact 2D/3D tests
  • Mortar 2D tests
  • Heat transfer (basic)

Failing - Missing HDF5 (~14 tests)

  • test_elasticity_2d_nonlinear_with_surface_load.jl
  • test_elasticity_3d_unit_block.jl
  • test_elasticity_med_pyr5_point_load.jl
  • test_elasticity_plane_strain.jl
  • test_elasticity_pyr5_point_load.jl
  • Many more...

Failing - API Mismatches (~30 tests)

  • eval_basis! signature (2)
  • jacobian signature (~20)
  • allocate_buffer missing (2)
  • Various others (6)

Action Plan

Phase 1: Low-Hanging Fruit (1-2 hours)

  1. Export Analysis types
  2. Add Statistics to test deps
  3. Skip/comment out HDF5-dependent tests temporarily
  4. Re-run tests, see how many pass

Phase 2: API Fixes (4-6 hours)

  1. Fix eval_basis! signature in FEMBasis
  2. Fix jacobian signature in FEMBasis
  3. Either restore allocate_buffer or update tests
  4. Fix any remaining signature mismatches

Phase 3: Mesh Conversion (2-4 hours)

  1. Find all .med test meshes
  2. Convert to .inp format using Code Aster or similar
  3. Update test files to use .inp instead of .med
  4. Re-run tests

Phase 4: Verify All Pass (1 hour)

  1. Run full test suite
  2. Fix any remaining issues
  3. Update CI to run tests automatically
  4. Celebrate! 🎉

Expected Outcome

After these fixes:

  • ~40+ tests should pass (out of 56 total)
  • CI will catch regressions automatically
  • Good foundation for further consolidation work

Notes

The fact that package loads and 5 tests pass is actually very good news - it means the core architecture is sound. These are just API compatibility issues that accumulated over 6 years of Julia evolution.

Most fixes are mechanical (update signatures) rather than requiring deep understanding of the algorithms.