From fdca5d7ea7fd60a0a6f22fb47c2e4ee14fc0b0a5 Mon Sep 17 00:00:00 2001 From: wellwelwel <46850407+wellwelwel@users.noreply.github.com> Date: Fri, 31 Jan 2025 02:43:32 -0300 Subject: [PATCH] ci: test static parser through all tests and variations --- .github/workflows/ci-linux.yml | 23 +++++++++++++++---- test/common.test.cjs | 6 +++++ .../integration/parsers/json-string.test.mjs | 5 +++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 4c77a47bb4..eb8ada31c3 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -22,12 +22,15 @@ jobs: mysql-version: ['mysql:8.0.33'] use-compression: [0, 1] use-tls: [0, 1] + static-parser: [0, 1] mysql_connection_url_key: [''] # TODO - add mariadb to the matrix. currently few tests are broken due to mariadb incompatibilities + env: MYSQL_CONNECTION_URL: ${{ secrets[matrix.mysql_connection_url_key] }} + STATIC_PARSER: ${{ matrix.static-parser }} - name: Node.js ${{ matrix.node-version }} - DB ${{ matrix.mysql-version }}${{ matrix.mysql_connection_url_key }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} + name: Node.js ${{ matrix.node-version }} - DB ${{ matrix.mysql-version }}${{ matrix.mysql_connection_url_key }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} - Static Parser=${{matrix.static-parser}} steps: - uses: actions/checkout@v4 @@ -68,8 +71,12 @@ jobs: mysql-version: ['mysql:8.0.33'] use-compression: [0, 1] use-tls: [0, 1] + static-parser: [0, 1] + + env: + STATIC_PARSER: ${{ matrix.static-parser }} - name: Bun ${{ matrix.bun-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} + name: Bun ${{ matrix.bun-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} - Static Parser=${{matrix.static-parser}} steps: - uses: actions/checkout@v4 @@ -118,6 +125,7 @@ jobs: deno-version: [v1.x] mysql-version: ['mysql:8.0.33'] use-compression: [0, 1] + static-parser: [0, 1] # TODO: investigate error when using SSL (1) # # errno: -4094 @@ -125,7 +133,10 @@ jobs: # syscall: "read" use-tls: [0] - name: Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} + env: + STATIC_PARSER: ${{ matrix.static-parser }} + + name: Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} - Static Parser=${{matrix.static-parser}} steps: - uses: actions/checkout@v4 @@ -172,6 +183,7 @@ jobs: deno-version: [v2.x, canary] mysql-version: ['mysql:8.0.33'] use-compression: [0, 1] + static-parser: [0, 1] # TODO: investigate error when using SSL (1) # # errno: -4094 @@ -179,7 +191,10 @@ jobs: # syscall: "read" use-tls: [0] - name: Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} + env: + STATIC_PARSER: ${{ matrix.static-parser }} + + name: Deno ${{ matrix.deno-version }} - DB ${{ matrix.mysql-version }} - SSL=${{matrix.use-tls}} Compression=${{matrix.use-compression}} - Static Parser=${{matrix.static-parser}} steps: - uses: actions/checkout@v4 diff --git a/test/common.test.cjs b/test/common.test.cjs index 1fd36df344..a94bfa76e9 100644 --- a/test/common.test.cjs +++ b/test/common.test.cjs @@ -4,6 +4,9 @@ const fs = require('node:fs'); const path = require('node:path'); const process = require('node:process'); +const useStaticParser = process.env.STATIC_PARSER === '1'; +exports.useStaticParser = useStaticParser; + const config = { host: process.env.MYSQL_HOST || 'localhost', user: process.env.MYSQL_USER || 'root', @@ -11,6 +14,7 @@ const config = { database: process.env.MYSQL_DATABASE || 'test', compress: process.env.MYSQL_USE_COMPRESSION, port: process.env.MYSQL_PORT || 3306, + useStaticParser, }; if (process.env.MYSQL_USE_TLS === '1') { @@ -109,6 +113,7 @@ exports.createConnection = function (args) { nestTables: args && args.nestTables, ssl: (args && args.ssl) ?? config.ssl, jsonStrings: args && args.jsonStrings, + useStaticParser, }; const conn = driver.createConnection(params); @@ -139,6 +144,7 @@ exports.getConfig = function (input) { maxIdle: args && args.maxIdle, idleTimeout: args && args.idleTimeout, jsonStrings: args && args.jsonStrings, + useStaticParser, }; return params; }; diff --git a/test/esm/integration/parsers/json-string.test.mjs b/test/esm/integration/parsers/json-string.test.mjs index 098777051e..42a11e634a 100644 --- a/test/esm/integration/parsers/json-string.test.mjs +++ b/test/esm/integration/parsers/json-string.test.mjs @@ -1,14 +1,17 @@ -import { test, describe, assert } from 'poku'; +import { skip, test, describe, assert } from 'poku'; import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); const { createConnection, describeOptions, + useStaticParser, } = require('../../../common.test.cjs'); describe('JSON String', describeOptions); +if (useStaticParser) skip('Skipping during debugging process'); + const connection = createConnection({ jsonStrings: true, }).promise();