mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
test(configure): cover parse_args
in src/bootstrap/configure.py
This commit is contained in:
parent
6295686a37
commit
1ba72db242
@ -5,6 +5,7 @@ Run these with `x test bootstrap`, or `python -m unittest src/bootstrap/bootstra
|
||||
from __future__ import absolute_import, division, print_function
|
||||
import os
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
import tempfile
|
||||
import hashlib
|
||||
import sys
|
||||
@ -99,6 +100,52 @@ class ProgramOutOfDate(unittest.TestCase):
|
||||
self.assertFalse(self.build.program_out_of_date(self.rustc_stamp_path, self.key))
|
||||
|
||||
|
||||
class ParseArgsInConfigure(unittest.TestCase):
|
||||
"""Test if `parse_args` function in `configure.py` works properly"""
|
||||
@patch("configure.err")
|
||||
def test_unknown_args(self, err):
|
||||
# It should be print an error message if the argument doesn't start with '--'
|
||||
configure.parse_args(["enable-full-tools"])
|
||||
err.assert_called_with("Option 'enable-full-tools' is not recognized")
|
||||
err.reset_mock()
|
||||
# It should be print an error message if the argument is not recognized
|
||||
configure.parse_args(["--some-random-flag"])
|
||||
err.assert_called_with("Option '--some-random-flag' is not recognized")
|
||||
|
||||
@patch("configure.err")
|
||||
def test_need_value_args(self, err):
|
||||
"""It should print an error message if a required argument value is missing"""
|
||||
configure.parse_args(["--target"])
|
||||
err.assert_called_with("Option '--target' needs a value (--target=val)")
|
||||
|
||||
@patch("configure.err")
|
||||
def test_option_checking(self, err):
|
||||
# Options should be checked even if `--enable-option-checking` is not passed
|
||||
configure.parse_args(["--target"])
|
||||
err.assert_called_with("Option '--target' needs a value (--target=val)")
|
||||
err.reset_mock()
|
||||
# Options should be checked if `--enable-option-checking` is passed
|
||||
configure.parse_args(["--enable-option-checking", "--target"])
|
||||
err.assert_called_with("Option '--target' needs a value (--target=val)")
|
||||
err.reset_mock()
|
||||
# Options should not be checked if `--disable-option-checking` is passed
|
||||
configure.parse_args(["--disable-option-checking", "--target"])
|
||||
err.assert_not_called()
|
||||
|
||||
@patch("configure.parse_example_config", lambda known_args, _: known_args)
|
||||
def test_known_args(self):
|
||||
# It should contain known and correct arguments
|
||||
known_args = configure.parse_args(["--enable-full-tools"])
|
||||
self.assertTrue(known_args["full-tools"][0][1])
|
||||
known_args = configure.parse_args(["--disable-full-tools"])
|
||||
self.assertFalse(known_args["full-tools"][0][1])
|
||||
# It should contain known arguments and their values
|
||||
known_args = configure.parse_args(["--target=x86_64-unknown-linux-gnu"])
|
||||
self.assertEqual(known_args["target"][0][1], "x86_64-unknown-linux-gnu")
|
||||
known_args = configure.parse_args(["--target", "x86_64-unknown-linux-gnu"])
|
||||
self.assertEqual(known_args["target"][0][1], "x86_64-unknown-linux-gnu")
|
||||
|
||||
|
||||
class GenerateAndParseConfig(unittest.TestCase):
|
||||
"""Test that we can serialize and deserialize a config.toml file"""
|
||||
def test_no_args(self):
|
||||
|
Loading…
Reference in New Issue
Block a user