mirror of https://github.com/sysown/proxysql
test/tap/tests/Makefile's tests-cpp target uses `$(wildcard *-t.cpp)`
to pick up all test sources. test_mysqlx_e2e_handshake-t.cpp,
test_mysqlx_e2e_routing-t.cpp, test_mysqlx_listener_smoke-t.cpp,
test_mysqlx_admin_tables-t.cpp and test_mysqlx_plugin_load-t.cpp all
reference chassis types (ProxySQL_PluginServices, mysqlx_config_store.h)
that only exist in the public headers under -DPROXYSQL40.
Under a plain v3.0 build (`unset PROXYSQLGENAI && unset PROXYSQL40 &&
make debug -j && make build_tap_test_debug -j`), the wildcard still
matched them, and the generic `%-t: %-t.cpp` recipe tried to compile
them -- producing 130+ `error:` lines (mysqlx_config_store.h not
found, Mysqlx::Datatypes::* conversion failures, ProxySQL_PluginServices
undeclared, etc.). Reported by the user.
Fix: autodetect PROXYSQL40 via `nm libproxysql.a | grep -c
invoke_register_schemas_phase` (same probe the unit Makefile uses) and
filter out `test_mysqlx_*` from the wildcard when the chassis symbol is
absent. Under PROXYSQL40 the wildcard is unmodified and all mysqlx
tests are built as before.
Verification:
* `unset PROXYSQLGENAI && unset PROXYSQL40 && make debug -j &&
make build_tap_test_debug -j` -> 0 errors, builds complete.
- proxysql binary built (122 MB)
- ProxySQL_MySQLX_Plugin.so NOT built (skipped by top-level Makefile)
- 51 unit tests built, 0 plugin/mysqlx unit tests, 0 mysqlx tests/
tests -> chassis is completely invisible to v3.0.
ProtocolX
parent
b65ba99118
commit
f34dc4573a
Loading…
Reference in new issue