diff options
| author | ruki <[email protected]> | 2017-08-14 11:27:19 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-08-14 11:29:30 +0800 |
| commit | dba45d143d8aff047da82cbe1a881056e6e4bc00 (patch) | |
| tree | 7b80d5de264c17b538a7c9d0fbb234ded39ac683 /tests/modules/semver/test.lua | |
| parent | 34706ba053dda9dd86902cacf42a6c1878c85234 (diff) | |
merge repo and require codes
Diffstat (limited to 'tests/modules/semver/test.lua')
| -rwxr-xr-x | tests/modules/semver/test.lua | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/modules/semver/test.lua b/tests/modules/semver/test.lua new file mode 100755 index 000000000..884eaf82e --- /dev/null +++ b/tests/modules/semver/test.lua @@ -0,0 +1,119 @@ +-- imports +import("core.base.semver") + +-- select version +function _check_semver_select(results, required_ver, versions, tags, branches) + + -- select it + local version, source = semver.select(required_ver, versions or {}, tags or {}, branches or {}) + if (version.version or version) ~= results[1] or source ~= results[2] then + print("semver.select(\"%s\", {\"%s\"}, {\"%s\"}, {\"%s\"})" + , required_ver + , table.concat(versions or {}, "\", \"") + , table.concat(tags or {}, "\", \"") + , table.concat(branches or {}, "\", \"")) + raise("{\"%s\", \"%s\"} != {\"%s\", \"%s\"}", version.version or version, source or "", results[1] or "", results[2] or "") + end +end + +-- test select version +function _test_semver_select() + + _check_semver_select({"1.5.1", "versions"} + , ">=1.5.0 <1.6.0" + , {"1.4.0", "1.5.0", "1.5.1"}) + + _check_semver_select({"1.5.1", "versions"} + , "^1.5.0" + ,{"1.4.0", "1.5.0", "1.5.1"}) + + _check_semver_select({"master", "branches"} + , "master" + , {"1.4.0", "1.5.0", "1.5.1"} + , {"v1.2.0", "v1.6.0"} + , {"master", "dev"}) + + print("semver.select: ok!") +end + +-- select version +function _check_semver_satisfies(expected, version, range) + + -- select it + local result = semver.satisfies(version, range) + if expected ~= result then + print("semver.satisfies(\"%s\", \"%s\")" + , version + , range) + raise("\"%s\" != \"%s\"", expected, result) + end +end + +-- test satisfies version +function _test_semver_satisfies() + + _check_semver_satisfies(true, "1.5.1", ">=1.5.0 <1.6.0") + _check_semver_satisfies(true, "1.5.1", "^1.5.0") + + print("semver.satisfies: ok!") +end + +-- parse version +function _check_semver_parse(version_str, major, minor, patch, prerelease, build) + + -- create it + local version = semver.parse(version_str) + + if version.major ~= major then + raise("major: \"%s\" != \"%s\"", version.major or "", major or "") + end + + if version.minor ~= minor then + raise("minor: \"%s\" != \"%s\"", version.minor or "", minor or "") + end + + if version.patch ~= patch then + raise("patch: \"%s\" != \"%s\"", version.patch or "", patch or "") + end + + if table.concat(version.prerelease or {}, ".") ~= table.concat(prerelease or {}, ".") then + raise("prerelease: \"%s\" != \"%s\"" + , table.concat(version.prerelease or {}, ".") or "" + , table.concat(prerelease or {}, ".") or "") + end + + if table.concat(version.build or {}, ".") ~= table.concat(build or {}, ".") then + raise("build: \"%s\" != \"%s\"" + , table.concat(version.build or {}, ".") or "" + , table.concat(build or {}, ".") or "") + end +end + +-- test parse version +function _test_semver_parse() + + _check_semver_parse("1.2.3", 1, 2, 3) + _check_semver_parse("1.2.3-beta", 1, 2, 3, {"beta"}) + _check_semver_parse("1.2.3-beta+77", 1, 2, 3, {"beta"}, {"77"}) + _check_semver_parse("v1.2.3-alpha.1+77", 1, 2, 3, {"alpha", "1"}, {"77"}) + _check_semver_parse("v3.2.1-alpha.1+77.foo", 3, 2, 1, {"alpha", "1"}, {"77", "foo"}) + + print("semver.parse: ok!") +end + +-- +-- run tests: +-- +-- $ make test name=semver +-- +function main() + + -- test semver + _test_semver_parse() + + -- test semver satisfies + _test_semver_satisfies() + + -- test select version + _test_semver_select() +end |
