blob: 610d3cfce39c4bfc926c2115f2c0732adc2b1396 [file] [log] [blame]
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load("//internal/bzlmod:semver.bzl", "semver")
_SORTED_TEST_VERSIONS = [
"0.1-a",
"0.1",
"1.0.0-0.3.7",
"1.0.0-alpha",
"1.0.0-alpha+001",
"1.0.0-alpha.1",
"1.0.0-alpha.beta",
"1.0.0-beta+exp.sha.5114f85",
"1.0.0-beta",
"1.0.0-beta.2",
"1.0.0-beta.11",
"1.0.0-rc.1",
"1.0.0-x.7.z.92",
"1.0.0-x-y-z.--",
"1.0.0+21AF26D3----117B344092BD",
"1.0.0+20130313144700",
"1.0.0",
"2.0.0",
"2.1.0",
"2.1.1-0",
"2.1.1",
"2.1.1.0",
"2.1.1.1-a",
"2.1.1.1",
"2.1.1.a",
"2.1.2",
"3",
"a",
]
_SCRAMBLED_TEST_VERSIONS = {
"a": True,
"3": True,
"2.1.2": False,
"2.1.1.a": True,
"2.1.1.1": True,
"2.1.1.1-a": True,
"2.1.1.0": True,
"2.1.1": False,
"2.1.1-0": False,
"2.1.0": False,
"2.0.0": False,
"1.0.0+21AF26D3----117B344092BD": False,
"1.0.0+20130313144700": False,
"1.0.0": False,
"1.0.0-x.7.z.92": False,
"1.0.0-x-y-z.--": False,
"1.0.0-rc.1": False,
"1.0.0-beta.11": False,
"1.0.0-beta.2": False,
"1.0.0-beta+exp.sha.5114f85": False,
"1.0.0-beta": False,
"1.0.0-alpha.beta": False,
"1.0.0-alpha.1": False,
"1.0.0-alpha": False,
"1.0.0-alpha+001": False,
"1.0.0-0.3.7": False,
"0.1-a": True,
"0.1": True,
}
def _semver_test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(
env,
_SORTED_TEST_VERSIONS,
sorted(
_SCRAMBLED_TEST_VERSIONS.keys(),
key = lambda x: semver.to_comparable(x, relaxed = _SCRAMBLED_TEST_VERSIONS[x]),
),
)
return unittest.end(env)
semver_test = unittest.make(_semver_test_impl)
def semver_test_suite(name):
unittest.suite(
name,
semver_test,
)