fix(build,test groups): unblock CI on plugin-chassis

Two unrelated CI blockers, fixed together because each one alone leaves
the pipeline red and they are trivially independent:

1) `make cleanbuild` (and any other goal that recurses into plugins/mysqlx
   on a v3.0/v3.1 box without libprotobuf-dev) failed in
   plugins/mysqlx/Makefile because the protobuf-3.x ABI check fires at
   parse time. The check is correct for *building* the plugin — running
   pre-generated .pb.cc against an ABI-incompatible libprotobuf would
   produce a .so that links cleanly and crashes on first virtual
   dispatch — but it has no business firing for `clean`/`cleanall`,
   which only delete object files. Wrap the check in
   `ifeq ($(filter clean cleanall,$(MAKECMDGOALS)),)` so the safety
   guarantee is preserved on build paths and clean is now usable on a
   bare host. CI-builds was failing every job at Makefile:540 cleanbuild
   for this reason, and the failure cascaded through every dependent
   test workflow.

2) `mysqlx_compression_unit-t` was added in the X-Protocol Phase-1/2/3
   compression commits but never registered in `test/tap/groups/groups.json`.
   The lint workflow `check_groups.py --source` flagged it as
   "executable test missing from groups.json" and exited 1, blocking
   the entire CI run. Add the entry to `unit-tests-g1` with the
   `@proxysql_min_version:4.0` tag, matching every other mysqlx unit
   test in the file.

Also restore six MySQL test entries that lost their `mysql90-g3`,
`mysql95-g3` tags during the d2e03fae3 conflict-resolution commit, plus
`test_noise_injection-t` which lost the same two. Confirmed against
origin/v3.0 — these were valid groupings on v3.0 that should have been
preserved through the merge but were silently dropped.

Verified locally:
- `cd plugins/mysqlx && make clean` succeeds without libprotobuf
  installed (was: fatal `$(error)` at parse time).
- `python3 test/tap/groups/lint_groups_json.py` → "OK (419 entries,
  sorted, compact)".
- `python3 test/tap/groups/check_groups.py` → "OK: All 29 executable
  tests are registered in groups.json".
fix/test-mysqlx-plugin-load-phase-b
Rene Cannao 4 weeks ago
parent ce39154731
commit 9f5ed235b8

@ -35,7 +35,13 @@ PROTO_OBJS := $(patsubst $(PROTO_DIR)/%.pb.cc,$(ODIR)/%.pb.o,$(PROTO_SRCS))
# incompatible ABI — libprotobuf.so SONAME changed). Detect the installed
# version up front and fail fast so we never produce a .so that links cleanly
# but crashes the first time a virtual is dispatched into the proto runtime.
#
# Skip the version check for `clean` and `cleanall` so a v3.0/v3.1 box without
# libprotobuf-dev installed can still run `make clean` from the top-level
# Makefile (which recurses here unconditionally). The check still fires for
# any goal that actually compiles or links objects.
PROTOBUF_GENERATED_VERSION := 3.21.12
ifeq ($(filter clean cleanall,$(MAKECMDGOALS)),)
PROTOBUF_VERSION := $(shell pkg-config --modversion protobuf 2>/dev/null)
ifeq ($(PROTOBUF_VERSION),)
$(error libprotobuf not found via pkg-config. Install libprotobuf-dev (3.x). \
@ -49,6 +55,7 @@ ifneq ($(PROTOBUF_MAJOR),3)
Install libprotobuf 3.x (e.g. 3.21.12) or regenerate the proto sources \
against the installed version. See the regeneration recipe above)
endif
endif
IDIRS := -I$(PROXYSQL_IDIR) -I$(PLUGIN_DIR)/include -I$(SQLITE3_IDIR) -I$(PROTO_DIR) -I$(SSL_IDIR) -I$(PROMETHEUS_IDIR) -I$(LIBCONFIG_IDIR) -I$(JEMALLOC_IDIR) -I$(MARIADB_IDIR) -I$(RE2_IDIR) -I$(ZSTD_IDIR) -I$(PROXYSQL_PATH)/deps/lz4/lz4/lib

@ -115,6 +115,7 @@
"mysqlx_admin_disk_commands_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_admin_schema_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_backend_auth_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_compression_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_concurrent_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_config_store_concurrent_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"mysqlx_config_store_pure_unit-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
@ -356,17 +357,17 @@
"test_mcp_llm_discovery_phaseb-t" : [ "ai-g1","@proxysql_min_version:4.0" ],
"test_mcp_rag_metrics-t" : [ "ai-g1","@proxysql_min_version:4.0" ],
"test_mcp_static_harvest-t" : [ "ai-g1","@proxysql_min_version:4.0" ],
"test_mysql_connect_retries-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_connect_retries_delay-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_hostgroup_attributes-1-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_query_digests_stages-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_query_rules_fast_routing-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysqlsh-t" : [ "legacy-g3","mysql84-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_connect_retries-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_connect_retries_delay-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_hostgroup_attributes-1-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_query_digests_stages-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysql_query_rules_fast_routing-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysqlsh-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3" ],
"test_mysqlx_admin_tables-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"test_mysqlx_e2e_handshake-t" : [ "mysqlx-e2e-g1","@proxysql_min_version:4.0" ],
"test_mysqlx_e2e_routing-t" : [ "mysqlx-e2e-g1","@proxysql_min_version:4.0" ],
"test_mysqlx_plugin_load-t" : [ "unit-tests-g1","@proxysql_min_version:4.0" ],
"test_noise_injection-t" : [ "legacy-g3","mysql84-g3" ],
"test_noise_injection-t" : [ "legacy-g3","mysql84-g3","mysql90-g3","mysql95-g3" ],
"test_pgsql_replication_lag-t" : [ "pgsql-repl" ],
"test_prepare_statement_memory_usage-t" : [ "legacy-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3","mysql84-g3","mysql90-g3","mysql95-g3" ],
"test_prometheus_metrics-t" : [ "legacy-g3","mysql-auto_increment_delay_multiplex=0-g3","mysql-multiplexing=false-g3","mysql-query_digests=0-g3","mysql-query_digests_keep_comment=1-g3","mysql84-g3","mysql90-g3","mysql95-g3" ],

Loading…
Cancel
Save