branch: elpa/pg
commit 04b9d32d2e0b00d1f9497d9c14041ba019f00cc4
Author: Eric Marsden <[email protected]>
Commit: Eric Marsden <[email protected]>

    Tests: new test recipe for Doltgres variant
---
 test/Makefile | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 71 insertions(+), 11 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index b562b2addfa..75f2cac4d47 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -16,6 +16,7 @@ install-deps:
 test: test-pg.el install-deps
        ${EMACS} -Q --batch -L .. -L . -l load-deps.el ../pg.el \
           -l pg.el -l pg-geometry.el -l pg-gis.el -l pg-lo.el -l test-pg.el -f 
pg-test
+       rm -r ${DEPS_DIR}
 
 test-interactive: test-pg.el install-deps
        ${EMACS} -Q -L .. -L . -l load-deps.el ../pg.el \
@@ -434,7 +435,7 @@ test-timescale: test-pg.el
            -e POSTGRES_USER=pgeltestuser \
            -e POSTGRES_PASSWORD=pgeltest \
            -e PGPORT=5981 \
-           -d docker.io/timescale/timescaledb-ha:pg17.7-ts2.23.0
+           -d docker.io/timescale/timescaledb-ha:pg18-ts2.24-oss
        sleep 5
        PGEL_PORT=5981 $(MAKE) test
        ${DOCKER} stop timescale
@@ -501,7 +502,7 @@ test-ivorysql: test-pg.el
          -e IVORYSQL_DB=pgeltestdb \
          -e IVORYSQL_USER=pgeltestuser \
          -e IVORYSQL_PASSWORD=pgeltest \
-         -d docker.io/ivorysql/ivorysql:4.5-ubi8
+         -d docker.io/ivorysql/ivorysql:5.0-ubi8
        sleep 5
        PGEL_PORT=5437 $(MAKE) test
        ${DOCKER} stop ivorydb
@@ -985,15 +986,18 @@ test-yellowbrick: test-pg.el
 # though few SQL commands work.
 test-immudb: test-pg.el
        ${DOCKER} run --rm --name immudb \
-         --net host \
+          --net host \
+          -e IMMUDB_PGSQL_SERVER=true \
+          -e IMMUDB_ADMIN_PASSWORD=pgeltest \
+          -e USER=pgeltestuser \
           -d docker.io/codenotary/immudb:latest \
             --pgsql-server --pgsql-server-port 5667 \
-           --admin-password pgeltest --force-admin-password
+            --admin-password pgeltest --force-admin-password
        sleep 2
        echo pgeltest|${DOCKER} exec -ti immudb immuadmin login immudb
        ${DOCKER} exec -ti immudb immuadmin database create pgeltestdb
        expect -c 'spawn ${DOCKER} exec -ti immudb immuadmin user create 
pgeltestuser readwrite pgeltestdb;sleep 0.1;expect "Choose a password 
for";sleep 0.1;send "pgeltest\r";expect "continue with your password 
instead.*Y/n";sleep 0.1;send "Y\r";expect "Confirm password";sleep 0.1;send 
"pgeltest\r";sleep 0.1;exit'
-       PGURI=postgresql://pgeltestuser:pgeltest@localhost:5667/pgeltestdb 
$(MAKE) test
+       PGURI=postgresql://pgeltestuser:[email protected]:5667/pgeltestdb 
$(MAKE) test
        ${DOCKER} stop immudb
 
 
@@ -1010,6 +1014,23 @@ test-greenplum: test-pg.el
        ${DOCKER} stop greenplum
 
 
+# https://github.com/woblerr/docker-greenplum
+#
+# This is failing with Podman in user mode with "/usr/bin/ping6: raw socket: 
Operation not permitted"
+#
+# TODO: perhaps try also https://hub.docker.com/r/qpod/greenplum
+test-greenplum2: test-pg.el
+       ${DOCKER} run --rm --name greenplum \
+          --pull=newer \
+          --publish 127.0.0.1:5433:5432 \
+          -e GREENPLUM_DEPLOYMENT=singlenode \
+          -e GREENPLUM_DATABASE_NAME=pgeltestdb \
+          -e GREENPLUM_PASSWORD=pgeltest \
+          ghcr.io/woblerr/greenplum:7.1.0
+       PGURI=postgresql://gpadmin:[email protected]:5433/pgeltestdb $(MAKE) 
test
+       ${DOCKER} stop greenplum
+
+
 # The Cloudberry fork of Greenplum, incubated at Apache.
 # https://github.com/apache/cloudberry/
 # https://hub.docker.com/r/apache/incubator-cloudberry/
@@ -1255,8 +1276,18 @@ test-alloydb: test-pg.el
        ${DOCKER} stop alloydb
 
 
-# TODO: test Doltgres (Database version control in Postgres-flavored SQL), 
which doesn't seem to
-# have a maintaine Docker image currently (and is in beta) 
https://github.com/dolthub/doltgresql
+# Doltgres provides database version control in Postgres-flavored SQL
+# https://github.com/dolthub/doltgresql
+# https://hub.docker.com/r/dolthub/doltgresql
+test-doltgres: test-pg.el
+       ${DOCKER} run --rm --name doltgres \
+           --publish 127.0.0.1:5489:5432 \
+           -e DOLTGRES_USER=pgeltestuser \
+           -e DOLTGRES_PASSWORD=pgeltest \
+           -e DOLTGRES_DB=pgeltestdb \
+           -d docker.io/dolthub/doltgresql:latest
+       PGURI=postgresql://pgeltestuser:[email protected]:5489/pgeltestdb 
$(MAKE) test
+       ${DOCKER} stop doltgres
 
 
 # CMU NoisePage, which seems to have been abandoned in 2023
@@ -1371,6 +1402,8 @@ test-mindsdb: test-pg.el
 #
 # To give a user permission to modify schemas, recreate the user using 
ydboctoAdmin with the --allowschemachanges
 #   yottadb -r %ydboctoAdmin add user OctoUser --readwrite --allowschemachanges
+#
+# also at docker.io/yottadb/octo:latest
 test-octodb: test-pg.el
        cp octo-entrypoint.sh /tmp
        chmod og+x /tmp/octo-entrypoint.sh
@@ -1378,7 +1411,7 @@ test-octodb: test-pg.el
           --pull=newer \
           --publish 127.0.0.1:5669:1337 \
           -v /tmp/octo-entrypoint.sh:/entrypoint.sh \
-          -d docker.io/yottadb/octo:latest
+          -d docker.io/yottadb/octo-vehu:latest-master
        sleep 5
        PGURI=postgresql://pgeltestuser:[email protected]:5669/hello $(MAKE) 
test
        ${DOCKER} stop octodb
@@ -1426,7 +1459,7 @@ test-arcadedb: test-pg.el
 # We don't currently bother recognizing this as a PostgreSQL variant, because 
its PostgreSQL
 # compatibility at the SQL level is very low. For instance, it doesn't 
recognize schema-qualified
 # names such as schema.table.
-test-stoolap: test-pg.el
+test-stoolap-old: test-pg.el
        $(eval TMPBDIR := $(shell mktemp -d -t stoolap-buildXXXX))
        (cd ${TMPBDIR} && \
          git clone --depth 1 https://github.com/stoolap/stoolap.git && \
@@ -1437,6 +1470,22 @@ test-stoolap: test-pg.el
        PGURI=postgresql://pgeltestuser:[email protected]:5401/stoolap $(MAKE) 
test
        rm -rf /tmp/stoolap-pgserver ${TMPBDIR}
 
+# https://stoolap.io/
+# https://github.com/stoolap/stoolap
+#
+# But this rewrite in Rust of the Go project doesn't currently support the 
PostgreSQL network protocol.
+test-stoolap: test-pg.el
+       $(eval TMPBDIR := $(shell mktemp -d -t stoolap-buildXXXX))
+       (cd ${TMPBDIR} && \
+         git clone --depth 1 https://github.com/stoolap/stoolap && \
+         cd stoolap && \
+         cargo build)
+       (cd ${TMPBDIR}/stoolap && cargo run -- --db memory:// --bind 
127.0.0.1:5401 &)
+       sleep 2
+       PGURI=postgresql://pgeltestuser:[email protected]:5401/stoolap $(MAKE) 
test
+       rm -rf ${TMPBDIR}
+
+
 
 # https://www.kinetica.com/kinetica-developer-edition/
 test-kinetica: test-pg.el
@@ -1462,6 +1511,10 @@ test-surrealdb: test-pg.el
        ${DOCKER} stop surrealdb
 
 
+# TODO: test https://github.com/serenedb/serenedb ("distributed real-time 
search analytics DB")
+
+
+
 # https://github.com/risinglightdb/risinglight
 #
 # This educational database implementation is not very PostgreSQL compatible; 
it doesn't implement
@@ -1481,10 +1534,17 @@ test-chrondb: test-pg.el
        PGURI=postgresql://[email protected]:5432/chrondb $(MAKE) test
 
 
-# https://github.com/erans/pgsqlite?tab=readme-ov-file
+# https://github.com/erans/pgsqlite -- a PostgreSQL protocol adapter for 
SQLite databases
 test-pgsqlite: test-pg.el
-       pgsqlite --port 7778 --in-memory &
+       $(eval TMPBDIR := $(shell mktemp -d -t pgsqlite-buildXXXX))
+       (cd ${TMPBDIR} && \
+         git clone --depth 1 https://github.com/erans/pgsqlite && \
+         cd pgsqlite && \
+         cargo build)
+       (cd ${TMPBDIR}/pgsqlite && PGSQLITE_AUDIT_LOG_QUERIES=true cargo run 
--bin pgsqlite -- --port 7778 --in-memory & )
+       sleep 2
        PGURI=postgresql://[email protected]:7778/pgeltestdb $(MAKE) test
+       rm -rf ${TMPBDIR}
 
 
 # Create and populate a new database with information concerning works by 
Shakespeare.

Reply via email to