1# Copyright 2018 The Bazel Authors. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15"""Unit tests for versions.bzl.""" 16 17load("//lib:unittest.bzl", "asserts", "unittest") 18load("//lib:versions.bzl", "versions") 19 20def _parse_test(ctx): 21 """Unit tests for versions.parse""" 22 env = unittest.begin(ctx) 23 24 asserts.equals(env, (0, 10, 0), versions.parse("0.10.0rc1 abcd123")) 25 asserts.equals(env, (0, 4, 0), versions.parse("0.4.0 abcd123")) 26 asserts.equals(env, (0, 4, 0), versions.parse("0.4.0")) 27 asserts.equals(env, (0, 4, 0), versions.parse("0.4.0rc")) 28 29 return unittest.end(env) 30 31def _version_comparison_test(ctx): 32 """Unit tests for versions.is_at_least and is_at_most""" 33 env = unittest.begin(ctx) 34 35 asserts.false(env, versions.is_at_least("0.11.0 123abcd", "0.10.0rc1 abcd123")) 36 asserts.true(env, versions.is_at_least("0.9.0", "0.10.0rc2")) 37 asserts.true(env, versions.is_at_least("0.9.0", "0.9.0rc3")) 38 asserts.true(env, versions.is_at_least("0.9.0", "1.2.3")) 39 40 asserts.false(env, versions.is_at_most("0.4.0 123abcd", "0.10.0rc1 abcd123")) 41 asserts.true(env, versions.is_at_most("0.4.0", "0.3.0rc2")) 42 asserts.true(env, versions.is_at_most("0.4.0", "0.4.0rc3")) 43 asserts.true(env, versions.is_at_most("1.4.0", "0.4.0rc3")) 44 45 return unittest.end(env) 46 47def _check_test(ctx): 48 """Unit tests for versions.check""" 49 env = unittest.begin(ctx) 50 51 asserts.equals(env, None, versions.check("0.4.5 abcdef", bazel_version = "0.10.0rc1 abcd123")) 52 asserts.equals(env, None, versions.check("0.4.5", bazel_version = "0.4.5")) 53 asserts.equals(env, None, versions.check("0.4.5", bazel_version = "0.10.0rc1 abcd123")) 54 asserts.equals(env, None, versions.check("0.4.5", maximum_bazel_version = "1.0.0", bazel_version = "0.10.0rc1 abcd123")) 55 56 return unittest.end(env) 57 58parse_test = unittest.make(_parse_test) 59version_comparison_test = unittest.make(_version_comparison_test) 60check_test = unittest.make(_check_test) 61 62def versions_test_suite(): 63 """Creates the test targets and test suite for versions.bzl tests.""" 64 unittest.suite( 65 "versions_tests", 66 parse_test, 67 version_comparison_test, 68 check_test, 69 ) 70