summaryrefslogtreecommitdiff
path: root/tests/modules/semver/test.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2017-08-14 11:27:19 +0800
committerruki <[email protected]>2017-08-14 11:29:30 +0800
commitdba45d143d8aff047da82cbe1a881056e6e4bc00 (patch)
tree7b80d5de264c17b538a7c9d0fbb234ded39ac683 /tests/modules/semver/test.lua
parent34706ba053dda9dd86902cacf42a6c1878c85234 (diff)
merge repo and require codes
Diffstat (limited to 'tests/modules/semver/test.lua')
-rwxr-xr-xtests/modules/semver/test.lua119
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