informix-db/tests/docker-compose.legacy.yml
Ryan Malloy 783b2bec97 Verify Informix 14.10 and 12.10; make the version matrix reproducible
Closes out the field report that prompted 2026.05.08.2. Full integration
suite, same commit, all green:

  Informix 15.0.1.0.3DE     241 / 241
  Informix 14.10.FC7W1DE    241 / 241
  Informix 12.10.FC12W1DE   241 / 241

Including smart-LOB. The 28-type round-trip produces byte-identical wire
output on all three — same type codes, same encoded lengths, same values.
There is no 12-vs-14-vs-15 wire difference for anything we support.

Testing three versions by hand was tedious and undocumented, which is
part of why it never happened. Now:

  make ifx-legacy-up      12.10 on 9089, 14.10 on 9090, alongside 15 on 9088
  make ifx-legacy-setup   blobspace1 + sbspace1 in both
  make test-matrix        the suite against all three

tests/setup-spaces.sh absorbs the per-image differences that made this
annoying: 12.10/14.10 use a flat INFORMIXDIR while 15 nests a versioned
subdirectory; ONCONFIG is named differently across images; `bash -lc`
wipes INFORMIXDIR and makes every utility fail with a misleading
"Unable to read $INFORMIXDIR (/usr/informix)"; and 12.10 DE ships no
ontape at all (the level-0 archive turns out to be unnecessary anyway).
Without blobspace1/sbspace1, ~21 tests fail with errors that look like
driver bugs and aren't.

The documented workflow was validated from scratch — containers removed,
recreated via compose, spaces created via the script, matrix run — rather
than written up afterward from whichever commands happened to work. The
README claim this replaces was wrong precisely because nobody did that.
2026-08-27 00:36:35 -06:00

49 lines
1.6 KiB
YAML

# Older Informix versions, for the server-compatibility matrix in the README.
#
# The primary dev container (tests/docker-compose.yml) runs Informix 15 on
# 9088. These two run alongside it on 9089 / 9090 so all three can be tested
# without tearing anything down.
#
# These images live on Docker Hub under ibmcom/ rather than icr.io/informix/ —
# IBM stopped publishing the older developer editions to the newer registry.
# They're tagged rather than digest-pinned because the ibmcom repo is frozen
# (no new pushes since the icr.io move), so the tags are already immutable in
# practice.
#
# make ifx-legacy-up start both
# make ifx-legacy-setup create blobspace1 + sbspace1 (needed for LOB tests)
# make test-matrix run the integration suite against all three
# make ifx-legacy-down stop and remove
services:
ifx1210:
container_name: informix-db-test-1210
image: ibmcom/informix-developer-database:12.10.FC12W1DE
privileged: true
environment:
LICENSE: accept
SIZE: small
ports:
- "9089:9088"
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9088 && exec 3<&- && exec 3>&-"]
interval: 5s
timeout: 3s
retries: 60
start_period: 30s
ifx1410:
container_name: informix-db-test-1410
image: ibmcom/informix-developer-database:14.10.FC7W1DE
privileged: true
environment:
LICENSE: accept
SIZE: small
ports:
- "9090:9088"
healthcheck:
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/9088 && exec 3<&- && exec 3>&-"]
interval: 5s
timeout: 3s
retries: 60
start_period: 30s