diff --git a/prebuilt.json b/prebuilt.json index 3906a65620..9db1feb388 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "c8c3e80b5d6137740c8fb3c84608a5b1a980fdab7286358fdcd1095e381bbe02", "schema_version": 1} +{"protected_inventory_sha256": "bf3928a74bf5bb72e9a751f566d9b56fc0915ac5a0431d17c0249f0c41bbc9b9", "schema_version": 1} diff --git a/tools/ci/lifecycle_shards.py b/tools/ci/lifecycle_shards.py index e0c6ef9464..7095b33bad 100644 --- a/tools/ci/lifecycle_shards.py +++ b/tools/ci/lifecycle_shards.py @@ -92,6 +92,8 @@ def workload_policy(): policy = json.loads(Path(__file__).with_name('lifecycle_workloads.json').read_text()) if policy['version'] != 1 or set(policy['function_groups']) != { 'openpilot/starpilot/car/toyota/tests/test_legacy_advert_callers.py', + 'openpilot/starpilot/tests/test_ford_configuration_parity.py', + 'openpilot/starpilot/aol/tests/test_stock_location_recovery.py', 'openpilot/starpilot/car/toyota/tests/test_camera_2aa_callers.py', 'openpilot/starpilot/car/toyota/tests/test_prius_sdsu_callers.py', 'openpilot/starpilot/car/toyota/tests/test_prius_advert_callers.py'}: diff --git a/tools/ci/lifecycle_workloads.json b/tools/ci/lifecycle_workloads.json index 1a46f6b050..6d3f12e60d 100644 --- a/tools/ci/lifecycle_workloads.json +++ b/tools/ci/lifecycle_workloads.json @@ -19,6 +19,16 @@ "basis": "90 actual DEBUG/RELEASE caller cases passed in four bounded phases (186.885s combined wall time including startup). Scheduling estimate 3s/case; fresh per-case Params, raw CAN, native configuration and C++ host reset; no shared outcome dependence.", "estimated_seconds_per_case": 3.0, "independent_parameters": true + }, + "openpilot/starpilot/tests/test_ford_configuration_parity.py": { + "basis": "Scheduling estimate3s/case, not a full measured current module: current188 shard3 first144 pytest cases (21HKG +112Ford +11discovery) take305.579s; historical112Ford measured217.392s. Function-scoped fixture creates fresh Params/native/factory/parser session and tears down each case; source-reviewed full in-case timelines retained.", + "estimated_seconds_per_case": 3.0, + "independent_parameters": true + }, + "openpilot/starpilot/aol/tests/test_stock_location_recovery.py": { + "basis": "Scheduling estimate2s/case: actual188 shard3 ordinal577..648 (all inside140case stock-location module) took91.261s; incomplete module timing, not a full measurement. Fresh function-scoped fixture creates CP/state/feedback and private Params per case; no shared outcome dependence; full in-case timelines retained.", + "estimated_seconds_per_case": 2.0, + "independent_parameters": true } }, "independent_function_max_cases": 60, @@ -26,7 +36,7 @@ "modules": { "opendbc_repo/opendbc/car/honda/tests/test_classic_alpha_aol_parity.py": { "cases": 33, - "seconds": 0.6483215049998989, + "seconds": 1.4594704400000182, "source_sha256": "2f907a1ba0e43f5c310748678a0b233b9c656a21043094e1329a6491458c4386" }, "opendbc_repo/opendbc/car/honda/tests/test_manual_honda_port_aol.py": { @@ -36,49 +46,37 @@ }, "opendbc_repo/opendbc/car/mazda/tests/test_dashboard_stop_sign.py": { "cases": 52, - "seconds": 1.8563495159999093, + "seconds": 1.887951329999737, "source_sha256": "ae178c63d9cdc55845036f8d062ddc16d323a518ae1f91b5a3e11417a432ceda" }, - "opendbc_repo/opendbc/car/mazda/tests/test_native_engagement_callers.py": { - "cases": 48, - "reference": { - "artifact_id": 12520491388, - "results_sha256": "04083573cc6db3fb5c100b940054bfc8af95193a980156ca0e913a9d0c38b321", - "revision": "01a31c1f2fe9ba04c7b2b4246f6962a617eae9cd", - "run_id": 39995003180, - "shard": 0 - }, - "seconds": 97.41501304299936, - "source_sha256": "41af76aaa5ad7b6c2e59e37605254aec6b8f36764ad99bf4b7ec1a0a26b297ff" - }, "opendbc_repo/opendbc/car/volkswagen/tests/test_meb_discovery.py": { "cases": 8, - "seconds": 0.22158582399970328, + "seconds": 0.38340116199981367, "source_sha256": "0183f94bc70f7d73769540f75147656445671b699ce797af2fb88de5532875a9" }, "opendbc_repo/opendbc/car/volkswagen/tests/test_meb_preferences.py": { "cases": 171, - "seconds": 0.21106671699919843, + "seconds": 0.15481268699954853, "source_sha256": "7bb06ba1f1e307719a53cf24af29c2cd3141dda35daa417cb535fd8d4f771040" }, "opendbc_repo/opendbc/car/volkswagen/tests/test_mqb_aol_discovery.py": { "cases": 6, - "seconds": 0.11721130700016147, + "seconds": 0.09152089899998828, "source_sha256": "246e9c0c5962bd6a9c2f1f31459f9e06a5709bd4dc8791883909edff6c03b638" }, "opendbc_repo/opendbc/car/volkswagen/tests/test_mqb_topology_discovery.py": { "cases": 18, - "seconds": 0.3372017629998254, + "seconds": 0.3450054979991819, "source_sha256": "29734b924f186ba545a568273c0dfd27aa75627f5166d31e078da4b84a5b9505" }, "opendbc_repo/opendbc/safety/tests/test_ford_configuration_parity.py": { "cases": 85, - "seconds": 2.086589082000387, + "seconds": 1.544425660000229, "source_sha256": "278d3f825224427ebddde99373b0811d136456c7caec54842f0bea8b02ad67dc" }, "opendbc_repo/opendbc/safety/tests/test_ford_full_engagement.py": { "cases": 169, - "seconds": 1.0015241779998973, + "seconds": 0.906622817999164, "source_sha256": "f7fd6b4cbdbae72797277b5a039928b4d7406451ca14839142118e27f3e2473a" }, "opendbc_repo/opendbc/safety/tests/test_hkg_mode_parity.py": { @@ -88,72 +86,72 @@ }, "opendbc_repo/opendbc/safety/tests/test_hyundai_angle_tx_recovery.py": { "cases": 9, - "seconds": 0.24554885200001308, + "seconds": 0.1236018710000053, "source_sha256": "3e3559792d8daef5fc09c017f742060f93c737d76904ae1822c0b12d4c7b0a91" }, "opendbc_repo/opendbc/safety/tests/test_mazda_stock_aol.py": { "cases": 13, - "seconds": 0.23759958699997696, + "seconds": 0.11437289899998859, "source_sha256": "16eeb9c2fcf0f945eb1196b99651bdfad7407ef4de2b0cf00dd22def471dbd22" }, "opendbc_repo/opendbc/safety/tests/test_meb_aol.py": { "cases": 63, - "seconds": 0.8211498970007369, + "seconds": 0.615215202000627, "source_sha256": "06d099bdaea9462d9038f9f2f06f48b3ce3c5a18ede4d174fc55ffddf97f2b7a" }, "opendbc_repo/opendbc/safety/tests/test_pe_combined_callers.py": { "cases": 2, - "seconds": 20.573897311999986, + "seconds": 14.210113755999998, "source_sha256": "bb8f4ae38158db387f9e1f39ff7acd4f505cf6bdf44e79a1fd45f80a88a229ae" }, "opendbc_repo/opendbc/safety/tests/test_pe_set_release_callers.py": { "cases": 1, - "seconds": 13.006026775999999, + "seconds": 12.633191937000106, "source_sha256": "0db205adee85085ceb5af97a7195844484072083ade34ab5453e036ad21c7734" }, "opendbc_repo/opendbc/safety/tests/test_subaru_avh_startup.py": { "cases": 25, - "seconds": 6.132081978999622, + "seconds": 6.096936095999467, "source_sha256": "eb3a1c05e0d90f6b30e58c53a1cffb0bf490ec1e57a3311cb68ea3e7e7487e1e" }, "opendbc_repo/opendbc/safety/tests/test_subaru_outback_angle.py": { "cases": 8, - "seconds": 0.07942780600001242, + "seconds": 0.056717837000007876, "source_sha256": "d8bdce43be7b9e62b0e71dfadf4d18b629b5f6eed0e257f57a897145fdb091a4" }, "opendbc_repo/opendbc/safety/tests/test_subaru_sng.py": { "cases": 6, - "seconds": 0.0969043210000109, + "seconds": 0.04316678000003549, "source_sha256": "3bd08c34e9db4a056ae99a72b321aa72a0d619ea178b0b88e047b75f55c719ec" }, "opendbc_repo/opendbc/safety/tests/test_subaru_software_cruise.py": { "cases": 4, - "seconds": 0.030385844000022644, + "seconds": 0.016735610000068846, "source_sha256": "a66efee40870deea1e4d5620b93b0c9fcde9676cb4d80ab23a9cef37f725b343" }, "opendbc_repo/opendbc/safety/tests/test_subaru_stock_aol.py": { "cases": 10, - "seconds": 0.04827245700005278, + "seconds": 0.024661658000070474, "source_sha256": "f59adcbd502ec880148dcc0b8fd7c1a21b3207b31bc1e3db23909973d87a21a3" }, "opendbc_repo/opendbc/safety/tests/test_subaru_stop_start.py": { "cases": 5, - "seconds": 0.058483079000041016, + "seconds": 0.059471873000063624, "source_sha256": "6ea85a318bb77f3a808c38dc9017629d6391c09ac2845536dbf381a2c829e912" }, "opendbc_repo/opendbc/safety/tests/test_volkswagen_direct_aol.py": { "cases": 22, - "seconds": 0.11070563900011621, + "seconds": 0.08436309100022754, "source_sha256": "ce7e6e3ffc1d448261d820784b6257c49810a7c83dc578ab09ea30af0240b77d" }, "opendbc_repo/opendbc/safety/tests/test_volkswagen_engagement_arm.py": { "cases": 2, - "seconds": 0.007902616000137641, + "seconds": 0.0048654299999952855, "source_sha256": "f1430a7891ef36c4058b9c3c592e20f542b278129fdec000d17a0772a744ff8e" }, "opendbc_repo/opendbc/safety/tests/test_volkswagen_stock_aol.py": { "cases": 6, - "seconds": 0.49320137799998065, + "seconds": 0.2346097189999341, "source_sha256": "15a1f6ba1c55022bf93a13180629a5685e7f119f9203ae5e4d02e916e4fdea78" }, "openpilot/selfdrive/car/tests/test_registered_ford_discovery.py": { @@ -163,52 +161,52 @@ }, "openpilot/starpilot/aol/tests/test_chrysler.py": { "cases": 14, - "seconds": 0.15553418699983013, + "seconds": 0.16286588500008747, "source_sha256": "85ecac582401263d06ed6aa43e6cf9348513db9086c8b17d91968e2cefcde7f4" }, "openpilot/starpilot/aol/tests/test_ev6_source_deadline.py": { "cases": 39, - "seconds": 4.952025227999798, + "seconds": 4.9182063199999675, "source_sha256": "be85a97dac7787acd813b406969120ef833927c9f36b7493e9577ad102e755db" }, "openpilot/starpilot/aol/tests/test_ev9_main_withdrawal_guards.py": { "cases": 37, - "seconds": 0.08945876099949146, + "seconds": 0.09053499000106058, "source_sha256": "94d19de8f8a786f6a6ca3fe24f6509f8304b8ed8952cb87dd06e3365fc2f7559" }, "openpilot/starpilot/aol/tests/test_gm.py": { "cases": 29, - "seconds": 24.629748084000198, + "seconds": 16.811332782999727, "source_sha256": "dec162ff70628d3c924780d6beaae2f5da999a557a675970f58d7adc9166f354" }, "openpilot/starpilot/aol/tests/test_gm_ascm_receive_order.py": { "cases": 340, - "seconds": 6.830010596001102, + "seconds": 5.08538050100077, "source_sha256": "77a2183fbdc3fecb8e8072246d750138f3a9340a33629cb5dbd36309500393cf" }, "openpilot/starpilot/aol/tests/test_gm_cancel_remap.py": { "cases": 48, - "seconds": 3.7847172010006034, + "seconds": 3.110054212000307, "source_sha256": "63580c71e8716520e8156ff1b8031edfad898e37d332378f2d7d40acd9b1d639" }, "openpilot/starpilot/aol/tests/test_gm_held_brake_successor.py": { "cases": 42, - "seconds": 141.64848118599923, + "seconds": 134.0834650550006, "source_sha256": "750bfc0681699792f2964db7d4410e83a2ae2c994d0056ab9e6a3ce848e3bc5c" }, "openpilot/starpilot/aol/tests/test_gm_held_native.py": { "cases": 140, - "seconds": 3.158628827999678, + "seconds": 2.0473895770002173, "source_sha256": "d32a0d27f69c016a626c58bcfd09d68bb25ffdff52b33ceab1e57b3f48fdae5b" }, "openpilot/starpilot/aol/tests/test_gm_ordinary_warning.py": { "cases": 24, - "seconds": 0.41067921500018656, + "seconds": 0.3240043169999467, "source_sha256": "ea11350b3d2ddbb3a950ac11fa3ba2aa511567fa8d6a2a70960b446a39840ddf" }, "openpilot/starpilot/aol/tests/test_gm_pedal_order.py": { "cases": 34, - "seconds": 0.6718514639992463, + "seconds": 0.6016417539997292, "source_sha256": "a3aa9eda612888f1d3631097d2341080e6282b4ca96fb35d33577cbf91477a78" }, "openpilot/starpilot/aol/tests/test_gm_route1c_receive_order.py": { @@ -223,22 +221,22 @@ }, "openpilot/starpilot/aol/tests/test_gm_steering_receive_order.py": { "cases": 45, - "seconds": 1.5989013689995772, + "seconds": 1.4872099720000165, "source_sha256": "0264749678d62a9e83dde063ee8e66291c13801bd61b899db5e7f438d87aed10" }, "openpilot/starpilot/aol/tests/test_honda_alt_radar_lifecycle.py": { "cases": 14, - "seconds": 15.806861794000156, + "seconds": 11.222040502000027, "source_sha256": "be3bd9bcb84542e191743968312987288197f028bfc19f8cad11a1adff9a469a" }, "openpilot/starpilot/aol/tests/test_honda_classic_alpha_lifecycle.py": { "cases": 8, - "seconds": 12.389079092999964, + "seconds": 11.246956308000051, "source_sha256": "a41940cdd820382dc247c4d002bdd239d2a542f3751fd8d5463d230c8415c442" }, "openpilot/starpilot/aol/tests/test_honda_pedal_lifecycle.py": { "cases": 8, - "seconds": 11.878174505999993, + "seconds": 10.953607092000084, "source_sha256": "482ef127e7c3eb91c97dab3645ecc6125b1d0fd28b283f6e4a19ae010965dda6" }, "openpilot/starpilot/aol/tests/test_honda_recovery_lifecycle.py": { @@ -248,57 +246,52 @@ }, "openpilot/starpilot/aol/tests/test_honda_reverse_join.py": { "cases": 342, - "seconds": 0.7359273099999655, + "seconds": 0.43530514799999764, "source_sha256": "46a9ddd6f5b48e5571ae1df5dfb5e392dc78ea1a8889086485f488f886940ae7" }, "openpilot/starpilot/aol/tests/test_independent_lateral_soft_takeover.py": { "cases": 4, - "seconds": 0.36067755299984583, + "seconds": 0.5930434210001181, "source_sha256": "ca04ccb1aa702c299151fb0f4a76a22afb5923411c6655a768c6576cd2817d8b" }, "openpilot/starpilot/aol/tests/test_meb_actual_callers.py": { "cases": 20, - "seconds": 18.64853539600017, - "source_sha256": "a87812c36d931e77b41785114f55a4d95d926c45322a5aacb9271070175ebffc" + "seconds": 22.582757826999455, + "source_sha256": "60f046511494ddfbbe905c4adaf80389aa75d1cc67a8298a32648830c4d8ab0b" }, "openpilot/starpilot/aol/tests/test_mqb_topology_callers.py": { "cases": 24, - "seconds": 24.303543111000295, + "seconds": 22.19348840599946, "source_sha256": "8300c3eef7ee075ed11a40d99726d3de9e3757d34856b3921191da675106170c" }, "openpilot/starpilot/aol/tests/test_mqb_topology_contract.py": { "cases": 277, - "seconds": 0.18643848999931834, + "seconds": 0.17173611599935157, "source_sha256": "6af1c00cb307c79fb4b024ba8bde72da98eaa16a0f9ba94c9bd46dace44c97b0" }, "openpilot/starpilot/aol/tests/test_native_inventory_control_cadence.py": { "cases": 85, - "seconds": 0.3153113310008848, + "seconds": 0.3006482349990165, "source_sha256": "5f9e0f4d8a07efbf8c7313f06c1d6ffa270bd781ccfb6119981c627058e7ed75" }, "openpilot/starpilot/aol/tests/test_pe_combined_profile_contract.py": { "cases": 31, - "seconds": 0.040698814000279526, + "seconds": 0.041313134000290574, "source_sha256": "9dc11b2ee02f9a609cc1fcf4f1546dc15694d0ef9557f291beedfbf567481d8c" }, "openpilot/starpilot/aol/tests/test_stock_angle_physical_recovery.py": { "cases": 43, - "seconds": 9.417894639000508, + "seconds": 7.094085648000259, "source_sha256": "c1e1f05ee6ce661dcf364a33069a5ba029a1bf113c31b0f07646148dd101842a" }, "openpilot/starpilot/aol/tests/test_stock_lateral_lag_gap_sequence.py": { "cases": 4, - "seconds": 0.3693457449999187, + "seconds": 0.38841984099985893, "source_sha256": "c9d26307eb74153898f2ad241f3ce36d3940e19d02aaa456a9111224d021e922" }, - "openpilot/starpilot/aol/tests/test_stock_location_recovery.py": { - "cases": 140, - "seconds": 0.34873870500052817, - "source_sha256": "c6eb1344d1b59e2d2a18d6c8406b358091f274e524ab17686e67b96897bf7841" - }, "openpilot/starpilot/aol/tests/test_toyota.py": { "cases": 9, - "seconds": 4.275880477000101, + "seconds": 4.046119932999773, "source_sha256": "92b92b46c457c30c7d95949ef2f24f92cf79043b2b5ece635e10c9923a4eea93" }, "openpilot/starpilot/aol/tests/test_volkswagen.py": { @@ -308,97 +301,97 @@ }, "openpilot/starpilot/aol/tests/test_volkswagen_main_boot.py": { "cases": 12, - "seconds": 0.01782609900033094, + "seconds": 0.025134647000186305, "source_sha256": "fed6af0445f73970bea2d07313f4117c55650c7b525a07e567c800577ee5a114" }, "openpilot/starpilot/aol/tests/test_volkswagen_saved_intent.py": { "cases": 10, - "seconds": 0.012575867000123253, + "seconds": 0.013726118000136012, "source_sha256": "f627232c0ed786c316bfbebd4852e4c9c10d41847fbae14957d737e4babf39df" }, "openpilot/starpilot/car/nissan/tests/test_aol.py": { "cases": 55, - "seconds": 1.4633806500006585, + "seconds": 1.344453853001255, "source_sha256": "4303ab761aa4df46f7a959634c9b7355e76a324dafae97fd95d64fb1ec527a3e" }, "openpilot/starpilot/car/rivian/tests/test_aol_lifecycle.py": { "cases": 2, - "seconds": 4.649988322000013, + "seconds": 4.3052127769999515, "source_sha256": "7bd28d138aeabebe49afd89a4d20c3fcb7a6f8665d04d510a30f7cfb735cedc0" }, "openpilot/starpilot/car/rivian/tests/test_aol_native.py": { "cases": 14, - "seconds": 0.09512363700025617, + "seconds": 0.06504544300014459, "source_sha256": "563b4c3d4681a31efcd617345a418417cbe37beb5993bbbfdb7779890bbbd43c" }, "openpilot/starpilot/car/rivian/tests/test_aol_policy.py": { "cases": 26, - "seconds": 0.007779541000672907, + "seconds": 0.011665178999692216, "source_sha256": "d2e97250674ed5377bc82ebc27fb4b74228a49a2fc3bc4ca0b1932f846525ff6" }, "openpilot/starpilot/car/subaru/tests/test_avh.py": { "cases": 4, - "seconds": 0.08652710500007288, + "seconds": 0.05436277400019662, "source_sha256": "7825da497c3baadde9ced2fbaffccfb4fac49e5f3bde3649bc003ca207bf6baf" }, "openpilot/starpilot/car/subaru/tests/test_avh_callers.py": { "cases": 11, - "seconds": 115.07622235099996, + "seconds": 72.46299403100011, "source_sha256": "e571b425c49b1b639a1937669e2541bccf49b96eb01aec96ca34dd825ed7b662" }, "openpilot/starpilot/car/subaru/tests/test_forester_angle_callers.py": { "cases": 4, - "seconds": 18.46506426399992, + "seconds": 19.728826494999907, "source_sha256": "e79313e7858606218b2fc4e0ddc065512e6be190e250587e91570d5f5a9bba6c" }, "openpilot/starpilot/car/subaru/tests/test_outback_angle_callers.py": { "cases": 4, - "seconds": 21.32710642299992, + "seconds": 12.443772750999642, "source_sha256": "5e5e750b7f44bb75f0e278ef394a77499338a11a64079804bee8bbfc43aa7fca" }, "openpilot/starpilot/car/subaru/tests/test_outback_startup_callers.py": { "cases": 8, - "seconds": 18.163427912999964, + "seconds": 22.805874098000004, "source_sha256": "769da5685e87cd3203f0575fb38c89e33d979829aa50e149c5b4980e27d986d5" }, "openpilot/starpilot/car/subaru/tests/test_smoothing.py": { "cases": 33, - "seconds": 0.04882807000080902, + "seconds": 0.04851020599971889, "source_sha256": "8be1d4efb6b2aa0da3ac1654e91451a8587fcda21ede55bedb3b5cc180dc0689" }, "openpilot/starpilot/car/subaru/tests/test_smoothing_factory.py": { "cases": 48, - "seconds": 1.392584342999271, + "seconds": 1.2982151019998582, "source_sha256": "261c026576da773c8eaad7afab05e8ac5753ab7af1e82640823f17531ffd56b6" }, "openpilot/starpilot/car/subaru/tests/test_smoothing_settings.py": { "cases": 7, - "seconds": 0.04594962300006955, + "seconds": 0.05549087500003225, "source_sha256": "9cace4ea79dfc3ca3bbd5b43698a1fcbfa656e28666460f54285790615a8524f" }, "openpilot/starpilot/car/subaru/tests/test_sng_callers.py": { "cases": 10, - "seconds": 25.291504849000148, + "seconds": 17.658710733000248, "source_sha256": "5f7c462a9861cd0e2934eb17caef340f45372efb975c4a782fb2652a3078ce4c" }, "openpilot/starpilot/car/subaru/tests/test_software_cruise.py": { "cases": 26, - "seconds": 0.0727703799993833, + "seconds": 0.067410737000273, "source_sha256": "a76e993baec5a8fa9007649c65fda5767df6fe0e8d7da696a595f031e3329f9c" }, "openpilot/starpilot/car/subaru/tests/test_software_cruise_callers.py": { "cases": 2, - "seconds": 12.736984069999835, + "seconds": 12.057403707000049, "source_sha256": "25fb3caade53ed424333daf4883fe4bdbf7b44d36286c2839d95473ca3937d48" }, "openpilot/starpilot/car/subaru/tests/test_stock_aol_callers.py": { "cases": 5, - "seconds": 21.631809591000092, + "seconds": 14.857802873000082, "source_sha256": "1ed4f9d45907b2c41a6cd8344e1623f9e1c74825f6e2395ef2459589f1a7ca9e" }, "openpilot/starpilot/car/subaru/tests/test_stop_start.py": { "cases": 5, - "seconds": 0.07591541000010693, + "seconds": 0.048861957000326584, "source_sha256": "bf1e420f7387e99da55c667ed40a3d0c2d6535469bd91d6d94be196d2fdddf83" }, "openpilot/starpilot/car/subaru/tests/test_stop_start_callers.py": { @@ -408,7 +401,7 @@ }, "openpilot/starpilot/car/toyota/tests/test_legacy_advert_filter.py": { "cases": 182, - "seconds": 0.1225578689983422, + "seconds": 0.06276366700024028, "source_sha256": "84002911a55b0381b23369c9d84cad93fced558cb451076e9eb8902830166606" }, "openpilot/starpilot/car/toyota/tests/test_legacy_advert_lateral.py": { @@ -418,7 +411,7 @@ }, "openpilot/starpilot/car/toyota/tests/test_legacy_advert_native.py": { "cases": 48, - "seconds": 6.749222234999706, + "seconds": 4.4415939019992265, "source_sha256": "242f2d1670fe5e25224fa25c24983dc609479871ff16dfcc274aebac7d42d611" }, "openpilot/starpilot/car/toyota/tests/test_legacy_stop_timer.py": { @@ -428,27 +421,27 @@ }, "openpilot/starpilot/car/toyota/tests/test_legacy_stop_timer_callers.py": { "cases": 38, - "seconds": 70.52549054199937, + "seconds": 51.80703006199974, "source_sha256": "bcd8f46d4e0520181d43c19975c6b9b454199f944bcb4db034ace3a7cf7b18e0" }, "openpilot/starpilot/car/toyota/tests/test_lexus_is_caller_native.py": { "cases": 12, - "seconds": 42.31224894199954, + "seconds": 32.89568382900012, "source_sha256": "dd8fb8e2e6a7d45739fe956d7f9d6d162c3d84e75c8cca25b26819ea3ba0ace5" }, "openpilot/starpilot/longitudinal/tests/test_volt_mode_transition.py": { "cases": 66, - "seconds": 0.11916299399990748, + "seconds": 0.11550927299981595, "source_sha256": "c4ffd66c53f5d92f57d6b743245ecaa137e9c144d687bbf6f26da8a2148d18ea" }, "openpilot/starpilot/tests/test_ford_ci_registration.py": { "cases": 2, - "seconds": 0.007034268999973392, - "source_sha256": "33a1cbd07b36f471c13a40f896202616ffa287140949014d1bd9ece31ddbdc12" + "seconds": 0.004078164000077322, + "source_sha256": "23c6a6ff06985565d25af9745758cf5c20541aaf767fd736047f84aec4299a17" }, "openpilot/starpilot/tests/test_ford_configuration_admission.py": { "cases": 57, - "seconds": 0.058055562000333794, + "seconds": 0.029699647000256846, "source_sha256": "1d3bd128236cf789b37a6162018dfb719e3e82a0955882f2109a3e23663825f3" }, "openpilot/starpilot/tests/test_ford_configuration_parity.py": { @@ -458,27 +451,250 @@ }, "openpilot/starpilot/ui/tests/test_meb_preferences.py": { "cases": 18, - "seconds": 0.02584481600001709, + "seconds": 0.02393621000027224, "source_sha256": "e05af87c2c0707d126ca1eb1e6209b656a34854b619d095cd33436ce89ae922c" + }, + "openpilot/starpilot/longitudinal/tests/test_gv70_stopping_parity.py": { + "cases": 7, + "seconds": 0.021942254999999022, + "source_sha256": "a6be378a3f55cc6c2565bcb9ae4a1df7263c7e147f647b245fffad795dce3171" + }, + "openpilot/starpilot/aol/tests/test_honda_canfd_lifecycle.py": { + "cases": 12, + "seconds": 12.852451053000152, + "source_sha256": "b718f232e124cdfcbeb47d9661c3928ca03a2e340ec5a61bf102b509efe31776" + }, + "openpilot/starpilot/car/subaru/tests/test_aol.py": { + "cases": 3, + "seconds": 0.037499245000049086, + "source_sha256": "fc098762756beb8b0cff6b648effc836a76e1c5951d5d3935bfda7cc8d53b258" + }, + "opendbc_repo/opendbc/safety/tests/test_subaru_forester_angle.py": { + "cases": 8, + "seconds": 0.05543316599994341, + "source_sha256": "65ad26851e9e115e8b3c9d6a57ccb72295619fa16d22a2e32261bae6e434ea77" + }, + "opendbc_repo/opendbc/car/ford/tests/test_mache_display_handoff.py": { + "cases": 2, + "seconds": 0.17583017300006532, + "source_sha256": "dbd0af4c30c2c6ab163ddf5f31af75670d31efee1586a21a62f193a1f25043a8" + }, + "opendbc_repo/opendbc/safety/tests/test_ford_mache_display.py": { + "cases": 78, + "seconds": 0.16058086799961302, + "source_sha256": "f7ea0ed06811453431e3b3aa8eb11cb7138293ca89c87deac09b95f2e6ad3803" + }, + "openpilot/starpilot/aol/tests/test_gv70_two_panda_long.py": { + "cases": 22, + "seconds": 0.013164143999915723, + "source_sha256": "78b1a06812c740d9ab7a02e4d8313803d2013cf4b0b62312bb383bef7e085ec8" + }, + "openpilot/starpilot/tests/test_ford_release_long_preferences.py": { + "cases": 67, + "seconds": 0.10186220600087381, + "source_sha256": "99d27ec094cd5003799806da982ca9901b03fbf25c17b6bfaaf5c0b7548fe74f" + }, + "opendbc_repo/opendbc/safety/tests/test_ford_alpha_aol.py": { + "cases": 46, + "seconds": 0.09488149900005283, + "source_sha256": "941c03cfb619e334e3b470b7abddf170ebfd3d5c5a8d42503e2041635d78e13f" + }, + "opendbc_repo/opendbc/safety/tests/test_pe_stopped_callers.py": { + "cases": 4, + "seconds": 17.542022324000015, + "source_sha256": "66ba205a8e87c8a7452fd8807f52a13209ed7817ebf358d143d466f63adedc78" + }, + "opendbc_repo/opendbc/safety/tests/test_palisade_stock_aol_status.py": { + "cases": 4, + "seconds": 0.0009238060001166559, + "source_sha256": "c9781d5bf42c0bde80b9015ffc703f28842c36b035f7ec95f7cc56a53ecaa47e" + }, + "opendbc_repo/opendbc/safety/tests/test_ev9_set_release_callers.py": { + "cases": 1, + "seconds": 8.955638690000058, + "source_sha256": "37795651054066269192f7a1eb918edc6af7c7d61cc08cac080c2453f62a7a06" + }, + "opendbc_repo/opendbc/safety/tests/test_ev9_combined_callers.py": { + "cases": 1, + "seconds": 12.91448001599997, + "source_sha256": "9255aa8c89ef0eef827ecc1198904bff9d52001926d830536bcde39fbd24e279" + }, + "openpilot/starpilot/aol/tests/test_gm_card_source_gap.py": { + "cases": 12, + "seconds": 5.106941121999796, + "source_sha256": "04dd92d9eac2af388994def8a41c1902da0175b3d8186c6e65b6cd572f4a275b" + }, + "openpilot/starpilot/aol/tests/test_gm_sdgm_source_wait.py": { + "cases": 28, + "seconds": 9.418316335999748, + "source_sha256": "997135547376bee07c4b922a3df81a1b320991dc72f43c79b45debc454b5f8d3" + }, + "openpilot/starpilot/aol/tests/test_gm_main_response.py": { + "cases": 26, + "seconds": 1.1187773620002872, + "source_sha256": "4347832c9b28f6a414ec1d974f19b86f20cbc0fb6b0f8899c9bd38b6b78b5372" + }, + "openpilot/starpilot/aol/tests/test_gm_lag_episode_recovery.py": { + "cases": 10, + "seconds": 2.0243810929995334, + "source_sha256": "913cd96b410de1d52d64cefbb4c03f224c68e9aaab74bdd5dc8c68615eb2a685" + }, + "openpilot/starpilot/aol/tests/test_volt_lag_pedal_intent.py": { + "cases": 81, + "seconds": 7.416710469999202, + "source_sha256": "869f3bd544abe67ac026d626c8dbda7ddef39ec372e9c5469f796ec846cdcdbf" + }, + "openpilot/starpilot/aol/tests/test_gm_route18e_recovery.py": { + "cases": 20, + "seconds": 0.34608942799997067, + "source_sha256": "9e67f7c510159756b6aeb6e1311ad6067e8d741c2f04f8d2156fa40872f82365" + }, + "openpilot/starpilot/aol/tests/test_stock_lateral_honda.py": { + "cases": 9, + "seconds": 0.4487161550001133, + "source_sha256": "068bd4d1d053eefa87323dde6313056a909d9434000838b69e226124115fb418" + }, + "opendbc_repo/opendbc/car/honda/tests/test_selected_honda_topology.py": { + "cases": 56, + "seconds": 0.6355390169999282, + "source_sha256": "42b2aefb3853d19653f8c028374c882068e0eb5aca2a1c097582c340483b875c" + }, + "openpilot/starpilot/car/mazda/tests/test_main_startup.py": { + "cases": 25, + "seconds": 0.019083822999846234, + "source_sha256": "478b08a1401b8b44ea44e64e3862514d1ab54afbdac7d0ad867db7df0084c01f" + }, + "openpilot/starpilot/aol/tests/test_temporary_lag_intent.py": { + "cases": 41, + "seconds": 5.953707195999925, + "source_sha256": "ae49bea96b7dc76ddef232351b4929f1434008dcfcff4bc2c059c050136ab015" + }, + "openpilot/starpilot/aol/tests/test_stock_eps_recovery.py": { + "cases": 145, + "seconds": 0.28686481599953595, + "source_sha256": "8e79addeb1930769eafaa797e99f8010f26c0be292ec8c59415005d393e56f73" + }, + "openpilot/starpilot/car/toyota/tests/test_camera_2aa_filter.py": { + "cases": 238, + "seconds": 0.07185444499936011, + "source_sha256": "4e1e304303dc08d8411a0700820ab819a541af1c20a9454aa574d7cdda332285" + }, + "openpilot/starpilot/car/toyota/tests/test_camera_2aa_native.py": { + "cases": 48, + "seconds": 5.4976594839998825, + "source_sha256": "0f1ae20b1052678cb4058acf4b7fa5a838340eecaec5bdeb4481b8e0c58ef2e5" + }, + "openpilot/starpilot/car/toyota/tests/test_prius_sdsu_filter.py": { + "cases": 44, + "seconds": 0.12508134699942275, + "source_sha256": "230a40493c10428c43b38ade8c1bae8495bdf4fdea850de4504915d0f07f6ac0" + }, + "opendbc_repo/opendbc/safety/tests/test_toyota_prius_sdsu.py": { + "cases": 136, + "seconds": 3.862234332999776, + "source_sha256": "fbc8fdad694b9a8f9eb0509babb1a41021ea1e2e5af3c10f8f91731aae64ee17" + }, + "openpilot/starpilot/car/toyota/tests/test_prius_advert_filter.py": { + "cases": 22, + "seconds": 0.011246188000427537, + "source_sha256": "736ceaa77a96090e6b517051116174a52a54e52e41d876c8fccff41e1fff23c0" + }, + "opendbc_repo/opendbc/safety/tests/test_toyota_prius_advert.py": { + "cases": 128, + "seconds": 4.112745887999722, + "source_sha256": "00c37286159ac42e4e6de0c2027e3feb9043505ada81872ab098520b5ce27ad3" + }, + "openpilot/starpilot/car/toyota/tests/test_prius_advert_ci.py": { + "cases": 2, + "seconds": 0.009027580000065427, + "source_sha256": "4913c7ff75306f576258d25082fd6036e71f2ffb5d4685f20ccee12fae456c61" + }, + "openpilot/starpilot/aol/tests/test_mqb_actual_callers.py": { + "cases": 8, + "seconds": 5.072349360999738, + "source_sha256": "1d7a44e338b7e2edab6fa02ecca967e0ab57577e4a33f649eca28b282792923e" + }, + "opendbc_repo/opendbc/car/volkswagen/tests/test_meb_stock_modes.py": { + "cases": 36, + "seconds": 0.5067630200004487, + "source_sha256": "3198ecaacbb7da41e9015954aa9c4a7b93316feedfd59f0d247ef74e11a27775" + }, + "openpilot/starpilot/aol/tests/test_mqb_direct_callers.py": { + "cases": 16, + "seconds": 8.637811187000352, + "source_sha256": "4668b9af601cfde3eee222a97d5450e8c6869e0bb33d4b41cf8da1ed3dfc1ac1" + }, + "opendbc_repo/opendbc/safety/tests/test_volkswagen_long_aol.py": { + "cases": 11, + "seconds": 0.039578646999871125, + "source_sha256": "af7a30669802f9c1fba208d72a1edaad0548553dd57ea64cf36f6d008b8c891f" + }, + "openpilot/starpilot/car/subaru/tests/test_reverse_join.py": { + "cases": 228, + "seconds": 0.3847715569997945, + "source_sha256": "55038999efacfef6c9ddfb035da76ad7d1b4aadb33a7451feaf0aab788fe0278" + }, + "openpilot/starpilot/car/subaru/tests/test_sng.py": { + "cases": 32, + "seconds": 0.05535468799973842, + "source_sha256": "8fdde2843122a2dd3d37d5fc979f4742d10388920a6aa0ca0e77b26bc98dc0a7" + }, + "openpilot/starpilot/car/subaru/tests/test_angle_tune.py": { + "cases": 4, + "seconds": 8.876573702000087, + "source_sha256": "2973f559269f2fd161e027d449e0af3d76934a3523e93eb6f00a985d91c4a1c7" + }, + "openpilot/starpilot/car/subaru/tests/test_smoothing_model_join.py": { + "cases": 6, + "seconds": 0.0625152799997295, + "source_sha256": "e800b212776ebd9fcd85c893f6c4ca39924e210dcb28c6f318d63b2d8eaba46f" + }, + "opendbc_repo/opendbc/car/mazda/tests/test_native_engagement_callers.py": { + "cases": 48, + "reference": { + "artifact_id": 12520491388, + "results_sha256": "04083573cc6db3fb5c100b940054bfc8af95193a980156ca0e913a9d0c38b321", + "revision": "01a31c1f2fe9ba04c7b2b4246f6962a617eae9cd", + "run_id": 39995003180, + "shard": 0 + }, + "seconds": 97.41501304299936, + "source_sha256": "41af76aaa5ad7b6c2e59e37605254aec6b8f36764ad99bf4b7ec1a0a26b297ff" } }, "reference": { + "revision": "1887a45a68cf5c3d3ddc5a4d3c2c000b2212750a", + "run_id": 40004376866, "artifacts": { - "0": { - "duration_seconds": 319.92404296200004, - "results_sha256": "068997f0cbfd42a825bfda8a9ce821bfa61ce8b9dc903a85a31bf907fd199f06" + "shard-0": { + "duration_seconds": 155.36564514100002, + "results_sha256": "ea369ad20d8a3f1460d33cfa964118fe35e213a2a554489d989bf948c8f006eb" }, - "1": { - "duration_seconds": 512.3838762299999, - "results_sha256": "bdd55736da9bbcc8d06fdffb3502d120ccf3dc4144e4dd9bc58cbfd0064ad98e" + "shard-1": { + "duration_seconds": 285.185951167, + "results_sha256": "67ff4cc3848ef6af2df743690e7f924a8b35e3785b01c4499c8308010af00e68" }, - "2": { - "duration_seconds": 234.18615906500003, - "results_sha256": "e6632a5af8ed8f3347bead25261208c062565ec3628011a1b46fd75f7b77cc05" + "shard-2": { + "duration_seconds": 413.66328901800006, + "results_sha256": "2fac07a52cfbbbbe5bcd6984414be46c097afde4ee897b2b56e7c620a27baf91" + }, + "shard-4": { + "duration_seconds": 536.413535891, + "results_sha256": "46fbec1307dd7a5c017a4ba12b3489ed13aa7ade17150e6284011737e9aef750" + }, + "shard-5": { + "duration_seconds": 283.757410287, + "results_sha256": "b7deadcd02451eef34e51816547577fd08b3bfafc8b127546215534add5a73b0" + }, + "shard-6": { + "duration_seconds": 372.01252850699996, + "results_sha256": "882029ac6425021d6fd7a5b1097e262ac714b8ed0e732bd1df04a2913bfcfa02" + }, + "shard-7": { + "duration_seconds": 224.43834632099998, + "results_sha256": "61cd924fb1be53d412e0b7ef51ee12839eb9faba9e47bdfddce4f5408c62abe9" } - }, - "revision": "6eb9df96425a661afcbf1edfa27894d6e49b3706", - "run_id": 39923284827 + } }, "unknown_seconds_per_case": 1.0, "version": 1 diff --git a/tools/ci/tests/test_lifecycle_shards.py b/tools/ci/tests/test_lifecycle_shards.py index 33deb8f9b6..723bc5580a 100644 --- a/tools/ci/tests/test_lifecycle_shards.py +++ b/tools/ci/tests/test_lifecycle_shards.py @@ -74,6 +74,23 @@ class LifecycleShardTests(unittest.TestCase): self.assertFalse(helper.matches(prefix + 'test_nominal[10]', heavy + '::test_nominal[1]')) self.assertTrue(helper.matches(prefix + 'test_nominal[::complex/parameter]', heavy + '::test_nominal[::complex/parameter]')) + def test_current_ford_and_stock_location_cases_split_without_omission(self): + for module, size in (('openpilot/starpilot/tests/test_ford_configuration_parity.py', 112), + ('openpilot/starpilot/aol/tests/test_stock_location_recovery.py', 135)): + with self.subTest(module=module): + prefix = module.removesuffix('.py').replace('/', '.') + '.' + full = [prefix + f'test_actual_lifecycle[{index}]' for index in range(size)] + full += [prefix + 'test_neighbor'] + shards = helper.partition([module], full, 8) + selected = [[identity for identity in full if any(helper.matches(identity, target) for target in shard)] + for shard in shards] + self.assertEqual(sorted(identity for shard in selected for identity in shard), sorted(full)) + self.assertEqual(len({identity for shard in selected for identity in shard}), len(full)) + self.assertTrue(all(len(shard) >= 1 for shard in selected)) + selectors = [target for shard in shards for target in shard] + self.assertEqual(len(selectors), len(full)) + self.assertEqual(shards, helper.partition([module], list(reversed(full)), 8)) + def test_heavy_function_rule_never_splits_classes_or_accepts_forged_targets(self): heavy = 'openpilot/starpilot/car/toyota/tests/test_legacy_advert_callers.py' prefix = heavy.removesuffix('.py').replace('/', '.') + '.'