Skip to content

Let the test harness and CI select Virtuoso or sbol-db#1743

Open
marpaia wants to merge 5 commits into
masterfrom
marpaia/test-harness-option
Open

Let the test harness and CI select Virtuoso or sbol-db#1743
marpaia wants to merge 5 commits into
masterfrom
marpaia/test-harness-option

Conversation

@marpaia

@marpaia marpaia commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

NOTE: Before this is merged, SynBioHub/synbiohub-docker#24 must be merged to the snapshot branch

Adds SBH_TRIPLESTORE=virtuoso|sboldb to the test harness (one image and one fixture set gate both backends), filters the admin graphs page to the instance's own data graphs so it renders identically on any backend, and adds CI jobs that run both suites against sbol-db. Verified locally: full suite + persistence green on both backends, SBOLTestRunner 189/189 on sbol-db.

marpaia added 4 commits July 14, 2026 14:47
get_end_of_error_log() docker-cp'd container logs from a hardcoded
container name (testsuiteproject_synbiohub_1) and raised if the log
could not be read. Under a different stack (e.g. the sbol-db harness)
the container name differs, so the helper raised inside file_diff()
before the actual page diff was reported, masking every real test
failure behind a FileNotFoundError.

Read the container name from SBH_TEST_CONTAINER (defaulting to the
existing name) and make log retrieval best-effort, so a missing log can
never hide the test diff it was meant to annotate.
The admin graphs page ran SELECT DISTINCT ?graph over every named graph in
the triplestore. A triplestore may expose internal graphs of its own (for
example Virtuoso's system graphs: virtrdf#, ldp#, the DAV and sparql
graphs), which are an implementation detail rather than SynBioHub data and
which differ from one backend to another.

Order the results and keep only graphs under the configured databasePrefix,
so the page lists exactly this instance's SBOL data graphs and renders the
same content on any standards-compliant triplestore.
The suite always brought up the Virtuoso docker-compose stack. Read the
backend from SBH_TRIPLESTORE (virtuoso by default, or sboldb), resolved to
the matching docker-compose files by a helper in testutil.sh; the start
scripts also accept it as their first argument. The same SynBioHub image and
the same fixtures gate both backends, so only genuine triplestore-behavior
differences show up.

stop_containers.sh and testcleanup.sh now drive docker compose by project
instead of hardcoded Virtuoso container names, so teardown works for either
stack.
Add sboltests-sboldb and sbhtests-sboldb jobs that run the existing SBOL
conformance and SynBioHub suites with SBH_TRIPLESTORE=sboldb, and gate the
snapshot publish on all four test jobs. The Virtuoso jobs are unchanged.
Base automatically changed from marpaia/fix-sparql-queries to master July 15, 2026 22:04
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