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
|
import incus
import test.framework
import core.str
proc main()
let runner = new framework.TestRunner()
runner.assert_eq_bool(incus.validate_name("foo"), true, "simple name")
runner.assert_eq_bool(incus.validate_name("foo-bar"), true, "hyphenated")
runner.assert_eq_bool(incus.validate_name("foo123"), true, "trailing digits")
runner.assert_eq_bool(incus.validate_name("a"), true, "single char")
runner.assert_eq_bool(incus.validate_name(""), false, "empty rejected")
runner.assert_eq_bool(incus.validate_name("-foo"), false, "leading hyphen rejected")
runner.assert_eq_bool(incus.validate_name("foo_bar"), false, "underscore rejected")
runner.assert_eq_bool(incus.validate_name("foo.bar"), false, "dot rejected")
runner.assert_eq_bool(incus.validate_name("Foo"), false, "uppercase rejected")
runner.assert_eq_bool(incus.validate_name("foo bar"), false, "space rejected")
// 63-char boundary (exactly 63 = ok, 64 = reject)
let s63 = "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabc"
let s64 = "abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd"
runner.assert_eq_int(str.length(s63), 63, "s63 setup check")
runner.assert_eq_int(str.length(s64), 64, "s64 setup check")
runner.assert_eq_bool(incus.validate_name(s63), true, "63 chars accepted")
runner.assert_eq_bool(incus.validate_name(s64), false, "64 chars rejected")
runner.report()
end main
|