esp-idf/tools/gen_soc_caps_kconfig/test/test_gen_soc_caps_kconfig.py

55 wiersze
1.8 KiB
Python
Executable File

#!/usr/bin/env python
# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import sys
import unittest
try:
import gen_soc_caps_kconfig
except ImportError:
sys.path.append('..')
import gen_soc_caps_kconfig
class ParserTests(unittest.TestCase):
def test_parse_name(self):
res = gen_soc_caps_kconfig.parse_define('#define TEST_NAME (2)')
self.assertEqual(res.name, 'TEST_NAME')
def test_parse_int(self):
res = gen_soc_caps_kconfig.parse_define('#define TEST_INT (2)')
self.assertEqual(res.int_value, '2')
def test_parse_string(self):
res = gen_soc_caps_kconfig.parse_define('#define TEST_STRING "this is a test string"')
self.assertEqual(res.str_value, 'this is a test string')
def test_parse_hex(self):
res = gen_soc_caps_kconfig.parse_define('#define TEST_HEX 0xDEADBEEF')
self.assertEqual(res.hex_value, '0xDEADBEEF')
res = gen_soc_caps_kconfig.parse_define('#define TEST_HEX 0x0000000')
self.assertEqual(res.hex_value, '0x0000000')
def test_parse_literal_suffix(self):
res = gen_soc_caps_kconfig.parse_define('#define TEST (0x200UL)')
self.assertEqual(res.hex_value, '0x200')
res = gen_soc_caps_kconfig.parse_define('#define TEST_U 20000u')
self.assertEqual(res.int_value, '20000')
res = gen_soc_caps_kconfig.parse_define('#define TEST_U 329000LL')
self.assertEqual(res.int_value, '329000')
def test_parse_float(self):
# Kconfig doesnt support floats, should not be parsed as anything
res = gen_soc_caps_kconfig.parse_define('#define TEST_FLOAT (3.14)')
self.assertEqual(res.value, '')
if __name__ == '__main__':
print('Running gen_soc_caps_config tests...')
unittest.main()