Skip to content

Run the gomeos package's own tests - #18

Merged
estebanzimanyi merged 2 commits into
MobilityDB:mainfrom
estebanzimanyi:ci/every-test-runs
Sep 3, 2026
Merged

Run the gomeos package's own tests#18
estebanzimanyi merged 2 commits into
MobilityDB:mainfrom
estebanzimanyi:ci/every-test-runs

Conversation

@estebanzimanyi

@estebanzimanyi estebanzimanyi commented Sep 2, 2026

Copy link
Copy Markdown
Member

The build job installs an all-families libmeos and then collects no test from
the gomeos package, which holds the binding's only behavioural tests: 115
Example functions whose // Output: block is the assertion.

WITNESS: ExampleFloatSpan_Distance asks the distance between the float span
[1.1, 3.3] and 20, and states the answer as 4.625393849793197e+18. That
number is the IEEE-754 bit pattern of 16.7 read as a double -- 16.7's bits are
the integer 4625393849793196851, which prints as 4.625393849793197e+18. The
expectation records a Datum arriving unwrapped; MEOS answers 16.7, which is
20 - 3.3.

MEASURED against libmeos built from MobilityDB 40eb373334 at -DALL=ON: the
package reports 115 result lines and 0 skipped. Reverting the corrected line
alone puts that bit pattern back where MEOS states 16.7, so the expectation is
what moves and nothing else. The guard holds the count: it accepts a floor of
115, refuses 116, and refuses the same log with one result line rewritten to
SKIP.

WHY: a test no job collects is reported nowhere, so no skip count can see it
and nothing compares its expectation against MEOS -- which is how an
expectation recording a defect survives. The timezone is stated in the job
rather than inherited, because the expectations print timestamptz values and
the zone is therefore an input to the assertion.

This change sits on top of the functions-snapshot refresh, which the build job reaches first.

WITNESS: `go build ./functions` against a libmeos built from MobilityDB
40eb373334 at -DALL=ON reports

    functions/meos_meos_internal_geo.go:115:2: could not determine kind of
    name for C.geo_set_srid_int

MEOS publishes `geo_set_srid`, and `geo_set_srid_int` appears in neither the
installed headers nor the exported symbols of libmeos.so, so the snapshot
names a spelling the library does not carry.

MEASURED: regenerating with `python3 tools/codegen.py` against a catalog
derived from that same commit moves five files, +900 -35, and `go build
./functions` then exits 0. The retired name drops to 0 occurrences while
`geo_set_srid` remains the one spelling present.

WHY: `functions/` is the snapshot a `go get` consumer compiles, so a name MEOS
has retired reaches consumers as a build failure in their own tree. The
snapshot is a projection of the catalog and carries no independent authority;
where the two disagree the catalog is right.
The build job installs an all-families libmeos and then collects no test from
the gomeos package, which holds the binding's only behavioural tests: 115
Example functions whose `// Output:` block is the assertion.

WITNESS: `ExampleFloatSpan_Distance` asks the distance between the float span
`[1.1, 3.3]` and 20, and states the answer as 4.625393849793197e+18. That
number is the IEEE-754 bit pattern of 16.7 read as a double -- 16.7's bits are
the integer 4625393849793196851, which prints as 4.625393849793197e+18. The
expectation records a Datum arriving unwrapped; MEOS answers 16.7, which is
20 - 3.3.

MEASURED against libmeos built from MobilityDB 40eb373334 at -DALL=ON: the
package reports 115 result lines and 0 skipped. Reverting the corrected line
alone puts that bit pattern back where MEOS states 16.7, so the expectation is
what moves and nothing else. The guard holds the count: it accepts a floor of
115, refuses 116, and refuses the same log with one result line rewritten to
SKIP.

WHY: a test no job collects is reported nowhere, so no skip count can see it
and nothing compares its expectation against MEOS -- which is how an
expectation recording a defect survives. The timezone is stated in the job
rather than inherited, because the expectations print timestamptz values and
the zone is therefore an input to the assertion.

This change sits on top of the functions-snapshot refresh, which the build job reaches first.
@estebanzimanyi
estebanzimanyi merged commit 6f70303 into MobilityDB:main Sep 3, 2026
2 checks passed
@estebanzimanyi
estebanzimanyi deleted the ci/every-test-runs branch September 3, 2026 00:12
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.

1 participant