/****************************************************************************** __ ____ __ / / ___ ____ _/ __/_____________ _/ /__ / / / _ \/ __ `/ /_/ ___/ ___/ __ `/ / _ \ / /___/ __/ /_/ / __(__ ) /__/ /_/ / / __/ /_____/\___/\__,_/_/ /____/\___/\__,_/_/\___/ (C)opyright 2026, Leafscale, LLC - https://www.leafscale.com Project: repoman Filename: tests/test_incus_validate.reef Authors: Chris Tusa License: Description: Tests: incus container name validation ******************************************************************************/ 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