Skip to content

Add regression tests for issues #80, #95, #98, #102#185

Merged
bernardladenthin merged 2 commits into
mainfrom
claude/sweet-fermi-1yrRK
May 22, 2026
Merged

Add regression tests for issues #80, #95, #98, #102#185
bernardladenthin merged 2 commits into
mainfrom
claude/sweet-fermi-1yrRK

Conversation

@bernardladenthin
Copy link
Copy Markdown
Owner

Summary

Changes

New regression tests (commit 713d426):

Documentation updates:

  • docs/history/49be664_open_issues.md: Updated issue summaries to reference test names and commit 713d426; updated bottom-line summary and status table to reflect "LIKELY FIXED → FIXED on CI green" verdicts.
  • CLAUDE.md: Added "Building the native library for local Java tests" section with platform-specific library paths, end-to-end workflow, and optional model property table.
  • TestConstants.java: Added PROP_NOMIC_MODEL_PATH and NOMIC_EMBED_DIM constants.

CI integration:

  • .github/workflows/publish.yml: Added NOMIC_EMBED_MODEL_URL and NOMIC_EMBED_MODEL_NAME env vars; linux-x86_64 Java test job downloads the model and passes -Dnet.ladenthin.llama.nomic.path=… to mvn test.

Test plan

  • All four new JUnit tests compile and self-skip cleanly when their model files are absent
  • Tests pass locally with required models present
  • CI will run all four tests green on linux-x86_64 (model auto-downloaded); other platforms skip gracefully
  • Existing tests remain unaffected

Related issues / PRs

Closes #80, #95, #98, #102 (pending first green CI run)

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_01LR7Gw1pyKS7wvxXfZjnxNW

claude added 2 commits May 22, 2026 20:24
Adds four small JUnit tests proposed in the verification plan section of
docs/history/49be664_open_issues.md to upgrade the corresponding upstream
issues from LIKELY FIXED to FIXED:

- MemoryManagementTest#testOpenCloseLoopDoesNotLeak (#102) - 20-iteration
  open/close loop; on Linux asserts VmRSS delta < 200 MB. Degenerates to
  a no-crash smoke test on non-Linux hosts where /proc/self/status is
  absent.
- MemoryManagementTest#testOpenCloseWithoutGeneration (#80) - 20 open +
  immediate close without any generation, exercises the half-initialised
  worker race closed by the double server.terminate() in jllama.cpp.
- LlamaModelTest#testIteratorTerminatesOnRepetitivePrompt (#95) - asserts
  the iterator terminates within nPredict+1 steps on a deliberately
  repetitive prompt.
- LlamaEmbeddingsTest#testNomicEmbedLoads (#98) - gated on system
  property net.ladenthin.llama.nomic.path; reproduces the reporter's
  batch/ubatch config plus the fix (enableEmbedding()), and asserts a
  768-dim vector for nomic-embed-text-v1.5.

Wires up the optional nomic GGUF download in the linux-x86_64 Java test
job in .github/workflows/publish.yml. Other test jobs cleanly self-skip
via Assume because the system property is unset.

Documents the local native-build workflow in CLAUDE.md - per-host output
paths, mvn-cmake handoff, optional model handling, and the
restricted-network caveat for environments that block huggingface.co.

https://claude.ai/code/session_01LR7Gw1pyKS7wvxXfZjnxNW
Updates docs/history/49be664_open_issues.md to reflect that the four
JUnit regression tests called for in the verification plan have been
added on this branch:

- Deep-dive verdict guide now lists each test name and self-skip
  behaviour next to its issue bullet
- Per-issue Status blocks for #80, #95, #98, #102 annotated as
  "LIKELY FIXED -> FIXED on CI green" with the covering test
- Status overview table rows for the same four issues updated
- "What the original issues actually contain" feasibility table marks
  all four as DONE with the commit reference
- "Concrete test plan" gains a status callout noting the as-shipped
  implementation matches the sketches
- "Recommended sequencing" step 1 marked DONE and enumerates what
  shipped; remaining steps (#86 docs, #103/#34 typed image API, Android
  emulator CI) carried forward as the next deliverables

No code or behaviour change, documentation only.

https://claude.ai/code/session_01LR7Gw1pyKS7wvxXfZjnxNW
@bernardladenthin bernardladenthin merged commit cba693c into main May 22, 2026
4 of 9 checks passed
@bernardladenthin bernardladenthin deleted the claude/sweet-fermi-1yrRK branch May 22, 2026 20:52
@sonarqubecloud
Copy link
Copy Markdown

bernardladenthin added a commit that referenced this pull request May 22, 2026
* docs: mark #80/#95/#98/#102 as FIXED now that PR #185 is merged

PR #185 (commit cba693c) merged the four regression tests sketched in the
49be664 open-issues verification plan. Update the per-issue blocks, the
status overview table, the top-level deep-dive verdict guide, and the
recommended-sequencing section to reflect that #80, #95, #98 and #102
are now FIXED (no longer "LIKELY FIXED → FIXED on CI green").

https://claude.ai/code/session_01R3jVWHsB3zymwAQtj8GT43

* docs: add README "Choosing the right classifier" section

Closes the documentation gap for issue #86 (does the CUDA jar fall back to
CPU?) and the 32-bit Android tail of #121 (armeabi-v7a not published).

The new section enumerates the three published classifiers (default CPU,
cuda13-linux-x86-64, opencl-android-aarch64), their backends, target
platforms, and runtime requirements. It explicitly states that the CUDA
JAR is CUDA-only at runtime — it dlopens libcudart.so.13/libcublas.so.13
and has no automatic CPU fallback — and that Android armeabi-v7a is not
shipped as a released artifact.

Updates docs/history/49be664_open_issues.md to mark #86 as
FIXED-AS-DOCUMENTED and #121 as FIXED (64-bit) with the 32-bit limitation
now documented.

https://claude.ai/code/session_01R3jVWHsB3zymwAQtj8GT43

---------

Co-authored-by: Claude <noreply@anthropic.com>
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