53 lines
2.5 KiB
Python
53 lines
2.5 KiB
Python
"""PowerSaving-v17 target names and FEM defaults must survive integration."""
|
|
import configparser
|
|
from pathlib import Path
|
|
import unittest
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
class IotthinksMergeTests(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.config = configparser.ConfigParser(interpolation=None,
|
|
inline_comment_prefixes=(";",))
|
|
cls.config.read([ROOT / "platformio.ini", *sorted((ROOT / "variants").glob("*/platformio.ini"))],
|
|
encoding="utf-8")
|
|
|
|
def flags(self, section):
|
|
value = self.config[section].get("build_flags", "")
|
|
import re
|
|
return re.sub(r"\$\{([^}]+)\}", lambda match: self.flags(match[1].rsplit(".", 1)[0]), value)
|
|
|
|
def test_old_v43_femoff_target_remains_alias_for_new_name(self):
|
|
self.assertEqual(self.config["env:heltec_v4_3_companion_radio_ble_femoff"]["extends"],
|
|
"env:heltec_v4_companion_radio_ble_femoff")
|
|
self.assertEqual(self.config["env:heltec_v4_3_companion_radio_ble_ps_femoff"]["extends"],
|
|
"env:heltec_v4_3_companion_radio_ble_femoff")
|
|
self.assertIn("-D RADIO_FEM_RXGAIN=0", self.flags("env:heltec_v4_companion_radio_ble_femoff"))
|
|
|
|
def test_explicit_femon_defaults_override_fork_default(self):
|
|
for section in ("env:Heltec_t096_companion_radio_ble_femon",
|
|
"env:heltec_v4_companion_radio_ble_femon",
|
|
"env:heltec_tracker_v2_companion_radio_ble_femon"):
|
|
with self.subTest(section=section):
|
|
self.assertIn("-D RADIO_FEM_RXGAIN=1", self.flags(section))
|
|
source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text()
|
|
self.assertIn("_prefs.radio_fem_rxgain = DEFAULT_FEM_RX_GAIN;", source)
|
|
|
|
def test_new_serial_bridge_targets_keep_distinct_uarts(self):
|
|
rak = self.flags("env:RAK_3401_repeater_bridge_rs232_serial1")
|
|
tracker = self.flags("env:heltec_tracker_v2_repeater_bridge_rs232")
|
|
self.assertIn("-D WITH_RS232_BRIDGE=Serial1", rak)
|
|
self.assertIn("-D WITH_RS232_BRIDGE_UART=1", rak)
|
|
self.assertIn("-UENV_INCLUDE_GPS", rak)
|
|
self.assertIn("-D ENV_INCLUDE_GPS=0", rak)
|
|
self.assertIn("-D WITH_RS232_BRIDGE=Serial2", tracker)
|
|
self.assertIn("-D WITH_RS232_BRIDGE_UART=2", tracker)
|
|
self.assertIn("-D WITH_RS232_BRIDGE_RX=44", tracker)
|
|
self.assertIn("-D WITH_RS232_BRIDGE_TX=43", tracker)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|