FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

meson: the PL/iSQL and ivorysql_ora suites run under meson, as Oracle-mode suites by Muzzammil242 · Pull Request #2333 · IvorySQL/IvorySQL · GitHub

Repository navigation

meson: the PL/iSQL and ivorysql_ora suites run under meson, as Oracle-mode suites - #2333

Open
Muzzammil242 wants to merge 3 commits into
IvorySQL:masterfrom
Muzzammil242:fix/meson-oracle-suites
Open

Muzzammil242 wants to merge 3 commits into
IvorySQL:masterfrom
Muzzammil242:fix/meson-oracle-suites

Conversation

Muzzammil242 commented Oct 8, 2026 •
edited
Loading

Copy link
Copy Markdown

What

Three things the meson build was missing for the Oracle-mode test suites:

  1. The PL/iSQL and ivorysql_ora suites are not registered under meson. The PL/iSQL entry is commented out ("use make oracle-check"); the extension has none. Both now register the same lists as REGRESS / ORA_REGRESS in their Makefiles, as Oracle-mode suites (oracle_plisql, oracle_ivorysql_ora, both also in the oracle suite). The extension's suite runs with --encoding=UTF8 for the reason its Makefile sets ENCODING.
  2. A suite says it is an Oracle-mode suite with 'oracle': true in its tests entry; the rule "source directory under src/oracle_test" stays as a fallback. The flag is what lets a suite elsewhere use the Oracle driver and template.
  3. gensql.pl finds its inputs beside itself ($RealBin) instead of relative to the working directory: meson runs it from the build directory, which need not be a child of the source tree, and the merge list and the sql files it names are declared as dependencies so a change regenerates the script.

One test needed a change to pass under meson at all: plisql_autonomous recorded the temp instance's port inside a dblink connection string in its expected output (an error context line); make picks one port and meson another. The call now runs under \set VERBOSITY terse.

Evidence

Linux, meson test --suite setup --suite oracle_setup --suite oracle_regress --suite oracle_plisql --suite oracle_ivorysql_ora on this branch (https://github.com/Muzzammil242/IvorySQL/actions/runs/37850130924):

oracle_ivorysql_ora/regress   OK   31 subtests passed
oracle_regress/regress        OK  258 subtests passed
oracle_plisql/regress         OK   22 subtests passed

Windows (MSVC, meson, --num-processes 1), this branch together with #2321 (the MSVC build) and #2332 (the identifier case mode reaching EXEC_BACKEND children), https://github.com/Muzzammil242/IvorySQL/actions/runs/37855437140:

oracle_plisql/regress         OK   22 subtests passed
oracle_regress/regress        8 of 258 failed: case_conversion, interval, opr_sanity, unicode, ora_psql, collate.windows.win1252, xml, qsyntax
oracle_ivorysql_ora/regress   5 of 31 failed: ora_datetime_datatype_functions, ora_sysview, ora_xml_functions, dbms_utility, utl_file

Without #2332 every Oracle-mode test fails on Windows (the suite's database is created as REGRESSION); the thirteen that still fail are platform differences (collation, unicode width in psql, xml, time zone names, file paths), each a small expected-file matter of its own. This PR does not touch them.

Summary by CodeRabbit

  • Tests
    • Enabled Oracle-mode regression testing for PL/iSQL and registered additional SQL test coverage.
    • Added Oracle-mode regression coverage for the Oracle extension.
    • Stabilized expected error output across test environments by suppressing variable connection details.

Fixes #2334.

…-mode suites

The meson build drives a suite with the Oracle-mode pg_regress and the
Oracle-mode initdb template when the suite's source directory is under
src/oracle_test. That leaves the two Oracle-mode suites that live
elsewhere out of meson entirely: the PL/iSQL suite (its registration
was commented out with "use make oracle-check") and the ivorysql_ora
suite (never registered). It also ties the choice of driver to how the
source root is spelled, which a Windows run can get wrong.

A suite now says 'oracle': true in its tests entry and is driven as an
Oracle-mode suite wherever it lives; the src/oracle_test path rule
stays as a fallback. The PL/iSQL suite registers the same list as
REGRESS in its Makefile (dblink comes with contrib into the temporary
installation), and the ivorysql_ora suite the same list as ORA_REGRESS,
with --encoding=UTF8 for the reason the Makefile sets ENCODING.

The extension's generated script gets its inputs beside gensql.pl
instead of relative to the working directory: meson runs the generator
from the build directory, which need not be a child of the source tree,
and the merge list and its sql files are declared as dependencies so a
change to them regenerates the script.

Suites under meson: oracle_regress, oracle_plisql, oracle_ivorysql_ora
(each also in the 'oracle' suite).
…ion string

The expected output of the autonomous-transaction error case carried the
temp instance port inside a dblink connection string, from the context
lines of the error; make picks one port, meson another, so the test
could only pass under one of them. The call runs under VERBOSITY terse.

coderabbitai Bot commented Oct 8, 2026 •
edited
Loading

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info ⚙️ Run configuration
  • Configuration used: Repository: IvorySQL/IvorySQL/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7da85a9f-90ae-4a08-99ed-0ad57cb3a6af
📥 Commits

Reviewing files that changed from the base of the PR and between 069766e and fbbddb7.

📒 Files selected for processing (7)
  • contrib/ivorysql_ora/gensql.pl
  • contrib/ivorysql_ora/meson.build
  • meson.build
  • src/oracle_test/regress/meson.build
  • src/pl/plisql/src/expected/plisql_autonomous.out
  • src/pl/plisql/src/meson.build
  • src/pl/plisql/src/sql/plisql_autonomous.sql

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

Meson now resolves Oracle SQL-generation inputs relative to the generator script and registers Oracle-mode regression suites. The PL/iSQL Meson suite runs 22 SQL tests, and its autonomous error test uses terse verbosity to avoid variable connection details in expected output.

Changes

Meson Oracle regression support

Layer / File(s) Summary
SQL generation paths and dependencies
contrib/ivorysql_ora/gensql.pl, contrib/ivorysql_ora/meson.build
The generator resolves its merge list and SQL inputs relative to its script directory in Meson mode. The Meson target runs the generator from the current source directory and declares its input dependencies.
Oracle-mode suite detection
meson.build, src/oracle_test/regress/meson.build
Meson recognizes an explicit oracle: true flag when detecting Oracle-mode suites and excludes the flag from test-kind processing. The Oracle regression suite now sets this flag.
Oracle regression suite registration
contrib/ivorysql_ora/meson.build, src/pl/plisql/src/meson.build, src/pl/plisql/src/sql/plisql_autonomous.sql, src/pl/plisql/src/expected/plisql_autonomous.out
Meson registers Oracle-mode regression tests for ivorysql_ora and PL/iSQL. The PL/iSQL suite runs 22 tests with database pl_regression. Its autonomous error test uses terse verbosity, and the expected output retains the missing-relation error without variable connection details.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to fbbdd

The Oracle-mode Meson suites appear ready to merge after normal checks. The reported Windows failures remain outside this PR’s stated scope.

🚥 Pre-merge checks | ✅ 5 ✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Check skipped because no linked issues were found for this pull request.
Description Check Check skipped - CodeRabbit’s high-level summary is enabled.
Title check The title clearly identifies the main change: adding the PL/iSQL and ivorysql_ora suites to Meson as Oracle-mode suites.
✨ Finishing Touches 💡 1 🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Collaborator

Thanks for the contribution; the explicit Oracle suite flag, script-relative input paths, and declared SQL dependencies make the Meson integration more complete, while terse error output removes port-dependent regression differences.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

meson: the PL/iSQL and ivorysql_ora regression suites are not registered, so meson test and the Windows CI never run them

2 participants


Back | FazBrowse Home | New Git URL