blob: 4500a1fcccd89a0d7f01ab814ae26e6301e8191d [file] [log] [blame] [edit]
# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Test the make.defaults parser."""
import pytest
from chromite.utils.parser import make_defaults
@pytest.mark.parametrize(
["contents", "expected"],
[
["", {}],
["# a comment", {}],
[" \t\n", {}],
['USE=""\nUSE="$USE ohea"\n', {"USE": " ohea"}],
['ARCH="${notset}x86_64"', {"ARCH": "x86_64"}],
['USE="\n\tmultiline\n"', {"USE": "\n\tmultiline\n"}],
['VIDEO_CARDS="citrus \\\n radon"', {"VIDEO_CARDS": "citrus \n radon"}],
['VAR="\\${noexpand}"', {"VAR": "${noexpand}"}],
["VAR='${noexpand}'", {"VAR": "${noexpand}"}],
[
"""
# Initial value just for style purposes.
USE=""
# Set some flag.
USE="${USE} some"
# Set another flag.
USE="${USE} another"
""",
{"USE": " some another"},
],
],
)
def test_parse_make_defaults(contents, expected):
"""Test the `parse` function."""
assert make_defaults.parse(contents) == expected