1load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") 2load("//go/private:sdk.bzl", "go_toolchains_single_definition") 3 4def _go_toolchains_single_definition_with_version_test(ctx): 5 env = unittest.begin(ctx) 6 7 result = go_toolchains_single_definition( 8 ctx = None, 9 prefix = "123_prefix_", 10 goos = "linux", 11 goarch = "amd64", 12 sdk_repo = "sdk_repo", 13 sdk_type = "download", 14 sdk_version = "1.20.2rc1", 15 ) 16 asserts.equals(env, [], result.loads) 17 asserts.equals(env, [ 18 """ 19_123_PREFIX_MAJOR_VERSION = "1" 20_123_PREFIX_MINOR_VERSION = "20" 21_123_PREFIX_PATCH_VERSION = "2" 22_123_PREFIX_PRERELEASE_SUFFIX = "rc1" 23""", 24 """declare_bazel_toolchains( 25 prefix = "123_prefix_", 26 go_toolchain_repo = "@sdk_repo", 27 host_goarch = "amd64", 28 host_goos = "linux", 29 major = _123_PREFIX_MAJOR_VERSION, 30 minor = _123_PREFIX_MINOR_VERSION, 31 patch = _123_PREFIX_PATCH_VERSION, 32 prerelease = _123_PREFIX_PRERELEASE_SUFFIX, 33 sdk_type = "download", 34) 35""", 36 ], result.chunks) 37 38 return unittest.end(env) 39 40go_toolchains_single_definition_with_version_test = unittest.make(_go_toolchains_single_definition_with_version_test) 41 42def _go_toolchains_single_definition_without_version_test(ctx): 43 env = unittest.begin(ctx) 44 45 result = go_toolchains_single_definition( 46 ctx = None, 47 prefix = "123_prefix_", 48 goos = "linux", 49 goarch = "amd64", 50 sdk_repo = "sdk_repo", 51 sdk_type = "download", 52 sdk_version = None, 53 ) 54 asserts.equals(env, ["""load( 55 "@sdk_repo//:version.bzl", 56 _123_PREFIX_MAJOR_VERSION = "MAJOR_VERSION", 57 _123_PREFIX_MINOR_VERSION = "MINOR_VERSION", 58 _123_PREFIX_PATCH_VERSION = "PATCH_VERSION", 59 _123_PREFIX_PRERELEASE_SUFFIX = "PRERELEASE_SUFFIX", 60) 61"""], result.loads) 62 asserts.equals(env, [ 63 """declare_bazel_toolchains( 64 prefix = "123_prefix_", 65 go_toolchain_repo = "@sdk_repo", 66 host_goarch = "amd64", 67 host_goos = "linux", 68 major = _123_PREFIX_MAJOR_VERSION, 69 minor = _123_PREFIX_MINOR_VERSION, 70 patch = _123_PREFIX_PATCH_VERSION, 71 prerelease = _123_PREFIX_PRERELEASE_SUFFIX, 72 sdk_type = "download", 73) 74""", 75 ], result.chunks) 76 77 return unittest.end(env) 78 79go_toolchains_single_definition_without_version_test = unittest.make(_go_toolchains_single_definition_without_version_test) 80 81def sdk_test_suite(): 82 unittest.suite( 83 "sdk_tests", 84 go_toolchains_single_definition_with_version_test, 85 go_toolchains_single_definition_without_version_test, 86 ) 87