• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

skeema / skeema / 17446769165
92%

Build:
DEFAULT BRANCH: main
Ran 03 Sep 2025 09:41PM UTC
Jobs 1
Files 80
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Sep 2025 09:34PM UTC coverage: 92.969% (+0.03%) from 92.941%
17446769165

push

github

evanelias
tests: several improvements to integration test framework

This commit includes multiple refactors to Skeema's integration testing
framework, improving test execution speed, as well as reducing common
boilerplate in test functions.

Previously, tests executed any setup SQL statements by using `docker exec` to
invoke the `mysql` or `mariadb` client, inside Dockerized database server test
containers. Unfortunately `docker exec` has nontrivial overhead, and invoking
it too frequently seems to cause random network instability in recent versions
of Docker Desktop for Mac. This commit switches to use of Skeema's SQL
statement handling logic on a reusable connection pool, solving these issues.

Connection reuse is also now enabled for integration tests on Skeema commands.
Previously, connection pools were intentionally closed prior to each subtest,
intending to prevent any session state leaks between subtests. However, this
was unnecessary since no Skeema commands ever leak session state mutations
(each set of session variables gets a distinct conn pool), and very few tests
need to modify session state separately; those tests have been modified here
to either achieve their goals without session state mutation, or by
intentionally closing connection pools if needed otherwise.

The interface of the integration testing framework has been updated to supply
*testing.T values to methods, instead of returning error values. This reduces
error-checking boilerplate: methods can just fatal the test if something goes
amiss during test setup or cleanup.

Similarly, several Docker-related test helper methods now accept a *testing.T
value, and fatal the test if something went wrong, instead of returning an
error value. The new method signatures also more clearly indicate that these
methods are only for use in tests. They have been moved from docker.go to
testing.go accordingly.

64 of 88 new or added lines in 2 files covered. (72.73%)

7 existing lines in 3 files now uncovered.

10817 of 11635 relevant lines covered (92.97%)

1.11 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
24
68.98
8.01% internal/tengo/testing.go

Uncovered Existing Lines

Lines Coverage ∆ File
2
88.13
-0.25% internal/tengo/instance.go
2
68.98
8.01% internal/tengo/testing.go
3
87.95
1.83% internal/tengo/docker.go
Jobs
ID Job ID Ran Files Coverage
1 17446769165.1 03 Sep 2025 09:41PM UTC 80
92.97
GitHub Action Run
Source Files on build 17446769165
  • Tree
  • List 80
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ab4f3f62 on github
  • Prev Build on main (#17250232008)
  • Next Build on main (#17991626755)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc