diff --git a/openpilot/system/manager/manager.py b/openpilot/system/manager/manager.py old mode 100755 new mode 100644 index f4a66d6b58..99f5c7574c --- a/openpilot/system/manager/manager.py +++ b/openpilot/system/manager/manager.py @@ -75,7 +75,7 @@ def manager_init() -> None: for k in params.all_keys(): if k == b"LKASButtonControl": continue # Card enrolls the vehicle-specific default after identification. - default_value = ("0" if os.path.lexists(params.get_param_path("Version")) else "1") if k == b"LaneCentering" else params.get_default_value(k) + default_value = not os.path.lexists(params.get_param_path("Version")) if k == b"LaneCentering" else params.get_default_value(k) if default_value is not None and not os.path.lexists(params.get_param_path(k)): params.put(k, default_value, block=True) diff --git a/openpilot/system/manager/test/test_lane_centering_defaults.py b/openpilot/system/manager/test/test_lane_centering_defaults.py new file mode 100644 index 0000000000..ac5bb2ab5b --- /dev/null +++ b/openpilot/system/manager/test/test_lane_centering_defaults.py @@ -0,0 +1,27 @@ +import ast +import os +from pathlib import Path +import tempfile +import unittest + +from openpilot.common.params import Params + + +class TestLaneCenteringDefaults(unittest.TestCase): + def test_typed_enrollment_preserves_existing_choices(self): + source = Path(__file__).resolve().parents[1] / "manager.py" + tree = ast.parse(source.read_text()) + loop = next(node for node in ast.walk(tree) if isinstance(node, ast.For) and + ast.unparse(node.iter) == "params.all_keys()") + code = compile(ast.fix_missing_locations(ast.Module(body=[loop], type_ignores=[])), str(source), "exec") + for upgrade in (False, True): + for saved in (None, b"0", b"1", b"malformed"): + with self.subTest(upgrade=upgrade, saved=saved), tempfile.TemporaryDirectory() as root: + params = Params(root) + if upgrade: + params.put("Version", "7.0", block=True) + path = Path(params.get_param_path("LaneCentering")) + if saved is not None: + path.write_bytes(saved) + exec(code, {"params": params, "os": os}) + self.assertEqual(path.read_bytes(), saved if saved is not None else b"0" if upgrade else b"1") diff --git a/prebuilt.json b/prebuilt.json index b31d75020f..cd3c2ee6d6 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "a2fbb60c55f751914d8c6933c6228f20ae1ba345b67abd78f1f0a1c503079eb7", "schema_version": 1} +{"protected_inventory_sha256": "a053ca5439f8e3928ec0c30fcaef86234d9e1891ccaa2a1c46098d121ef72a67", "schema_version": 1}