You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
7 months ago
|
# Copyright 2020 The Pigweed Authors
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||
|
# use this file except in compliance with the License. You may obtain a copy of
|
||
|
# the License at
|
||
|
#
|
||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
# License for the specific language governing permissions and limitations under
|
||
|
# the License.
|
||
|
"""Tests for arduinobuilder."""
|
||
|
|
||
|
import shlex
|
||
|
import unittest
|
||
|
from parameterized import parameterized # type: ignore
|
||
|
|
||
|
|
||
|
class TestShellArgumentSplitting(unittest.TestCase):
|
||
|
"""Tests to ensure shlex.split handles expected use cases."""
|
||
|
|
||
|
@parameterized.expand([
|
||
|
(
|
||
|
"remove-both-quotes",
|
||
|
""" -DUSB_CONFIG_POWER=100 """
|
||
|
""" '-DUSB_MANUFACTURER="Adafruit LLC"' """
|
||
|
""" '-DUSB_PRODUCT="Adafruit PyGamer Advance M4"' """
|
||
|
""" "-I$HOME/samd/1.6.2/cores/arduino/TinyUSB" """,
|
||
|
[
|
||
|
""" -DUSB_CONFIG_POWER=100 """.strip(),
|
||
|
""" -DUSB_MANUFACTURER="Adafruit LLC" """.strip(),
|
||
|
""" -DUSB_PRODUCT="Adafruit PyGamer Advance M4" """.strip(),
|
||
|
""" -I$HOME/samd/1.6.2/cores/arduino/TinyUSB """.strip(),
|
||
|
]
|
||
|
)
|
||
|
]) # yapf: disable
|
||
|
def test_split_arguments_and_remove_quotes(self, unused_test_name,
|
||
|
input_string, expected):
|
||
|
"""Test splitting a string into a list of arguments with quotes removed.
|
||
|
"""
|
||
|
result = shlex.split(input_string)
|
||
|
self.assertEqual(result, expected)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|