1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
#!/usr/bin/env lua
deps = require "luarocks.deps"
print(deps.show_dep(deps.parse_dep("lfs 2.1.9pre5"), true))
print(deps.show_dep(deps.parse_dep("cgilua cvs-2"), true))
print(deps.show_dep(deps.parse_dep("foobar 0.0.1beta"), true))
print(deps.show_dep(deps.parse_dep("foobar 0.0.1a"), true))
print(deps.show_dep(deps.parse_dep("foobar 1"), true))
print(deps.show_dep(deps.parse_dep("foobar 2.0"), true))
print(deps.show_dep(deps.parse_dep("foobar 3.5a4"), true))
print(deps.show_dep(deps.parse_dep("foobar 1.1pre2"), true))
print(deps.show_dep(deps.parse_dep("foobar 2.0-beta3"), true))
print(deps.show_dep(deps.parse_dep("foobar 5.3"), true))
print(deps.show_dep(deps.parse_dep("foobar 3.5rc2"), true))
print(deps.show_dep(deps.parse_dep("foobar 4.19p"), true))
print()
comparisons = {
-- first second eq le
{"Vista", "XP", false, true},
{"XP", "3.1", false, true},
{"1.0", "1.0", true, false},
{"2.2.10", "2.2-10", false, false},
{"2.2", "2.2-10", true, false},
{"1.0beta1", "1.0rc3", false, true},
{"2.0beta3", "2.0", false, true},
{"2.0beta", "2.0beta2", false, true},
{"2.0beta4", "2.0beta3", false, false},
{"2.1alpha1", "2.0beta1", false, false},
{"1.5p3", "1.5.1", false, true},
{"1.1.3", "1.1.3a", false, true},
{"1.5a100", "1.5b1", false, true},
{"2.0alpha100", "2.0beta1", false, true},
{"2.0.0beta3", "2.0beta2", false, false},
{"2.0-1", "2.0-2", false, true},
{"2.0-2", "2.0-1", false, false},
--[[
-- Corner cases I don't wish to handle by now.
{"2.0.0beta2", "2.0beta2", true, true},
{"2.0.0beta2", "2.0beta3", false, true},
]]
}
local v1, v2
err = false
function result(test, expected)
if test == expected then
print(test, "OK")
else
print(test, "ERROR", deps.show_version(v1, true), deps.show_version(v2, true))
err = true
end
end
for _, c in ipairs(comparisons) do
v1, v2 = deps.parse_version(c[1]), deps.parse_version(c[2])
print(c[1].." == "..c[2].." ?")
result(v1 == v2, c[3])
print(c[1].." < "..c[2].." ?")
result(v1 < v2, c[4])
end
if err then os.exit(1) end
|