From 9c9b66daa3749e637925e7fdb482eaa97c2e24e8 Mon Sep 17 00:00:00 2001
From: Magnus Persson <1431685+magnusp@users.noreply.github.com>
Date: Fri, 23 Oct 2026 01:28:46 +0200
Subject: [PATCH] ci(conformance): run the xerial control profile as a
reference probe (#117)
Run the pinned sqlite-jdbc control run on main and on pull requests in its
own job, so a vendored divergence that is not true for xerial itself is
visible. Guard the module so conformance.control.driver can only be set by
the xerial-control profile.
---
.github/workflows/ci.yml | 20 ++++++++++++++++++++
.github/workflows/pr.yml | 20 ++++++++++++++++++++
libsql-conformance/pom.xml | 31 +++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6e5280c..57d0623 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -40,3 +40,23 @@ jobs:
- name: Run Tests and Verifications
run: mvn --batch-mode clean verify
+
+ xerial-control:
+ # Reference probe, not a parity gate: the same vendored tests run against the pinned
+ # xerial driver. A failure means the vendored test is not a valid reference or the
+ # driver diverges without a recorded reason, not that libSQL must match xerial.
+ name: Xerial Control (reference probe)
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v7
+
+ - name: Set up Amazon Corretto 25
+ uses: actions/setup-java@v5
+ with:
+ distribution: 'corretto'
+ java-version: '25'
+ cache: 'maven'
+
+ - name: Run the xerial control profile
+ run: mvn --batch-mode -pl libsql-conformance -am -Pxerial-control verify
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 2d22618..c9d101a 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -40,3 +40,23 @@ jobs:
- name: Run Tests and Verifications
run: mvn --batch-mode clean verify
+
+ xerial-control:
+ # Reference probe, not a parity gate: the same vendored tests run against the pinned
+ # xerial driver. A failure means the vendored test is not a valid reference or the
+ # driver diverges without a recorded reason, not that libSQL must match xerial.
+ name: Xerial Control (reference probe)
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v7
+
+ - name: Set up Amazon Corretto 25
+ uses: actions/setup-java@v5
+ with:
+ distribution: 'corretto'
+ java-version: '25'
+ cache: 'maven'
+
+ - name: Run the xerial control profile
+ run: mvn --batch-mode -pl libsql-conformance -am -Pxerial-control verify
diff --git a/libsql-conformance/pom.xml b/libsql-conformance/pom.xml
index 9389524..21f9525 100644
--- a/libsql-conformance/pom.xml
+++ b/libsql-conformance/pom.xml
@@ -16,6 +16,10 @@
${project.build.directory}/docker-config
3.53.4.0
+
+ false
@@ -82,6 +86,30 @@
maven-antrun-plugin
3.2.0
+
+ guard-control-driver
+ generate-test-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
verify-vendored-upstream
generate-test-sources
@@ -164,6 +192,9 @@
-->
xerial-control
+
+ true
+
org.xerial