-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unintended HUGE refactoring of automotive scanners. #3054
Conversation
f866b08
to
5f1d9e3
Compare
faadb5b
to
b2fd823
Compare
I think that it is impossible to review as it is as it introduces many changes that are different. According to the PR description, there are several different changes. Do you think that submitting them in different PR will make the whole changes easier to rewview? |
Unfortunately, most changes are inter-connected with each other. Here is a little overview. Besides renaming, I introduced breaking cleanups. The core of this scanners are the And then... I have Scanners... :-( After some tests on the old implementation, I discovered, that the implementation of the I already removed unrelated changes to that core in #3036, #3035, #3034, #3033. Since every thing is bound to this |
Codecov Report
@@ Coverage Diff @@
## master #3054 +/- ##
==========================================
- Coverage 86.29% 86.28% -0.02%
==========================================
Files 281 282 +1
Lines 63184 63225 +41
==========================================
+ Hits 54522 54551 +29
- Misses 8662 8674 +12
|
4da6ddf
to
921e1f6
Compare
@guedou I've started a series of smaller PRs to make this one somehow merge-able. |
2b39fb9
to
775d81c
Compare
0513850
to
dd186ff
Compare
dd186ff
to
8d51c7b
Compare
d283900
to
4b5a901
Compare
4104f0f
to
3ca83d4
Compare
b72c3e9
to
9aa7d8c
Compare
9aa7d8c
to
7b29294
Compare
c5048c4
to
5fbe2ab
Compare
5fbe2ab
to
8f9c8da
Compare
8f9c8da
to
f0dc5c0
Compare
This PR: - changes variable names of automotive utilities to be more compliant with python - adds typing for various automotive utilities - refactors the core of automotive scanners which involve: - Ecu objects - EcuState objects - EcuAnsweringMachines - AutomotiveTestCases - AutomotiveTestCaseExecutors - cleans up UDS Scanner, OBD Scanner and GMLAN Scanner Cleanups Only use type imports from scapy.compat Fix typing for NamedTuple add sorted to EcuState __eq__ and __contains__ add default function add debug flag to raise exception add scan_range to UDS_SA Enumerator fix bug remove unused variable test EcuStateComparison improve EcuState comparision move Profiler and Graph to independent files remove dump to json fix unit tests since add_edge function changed Change internal transition functions to not use any lambdas more cleanups additions remove unused variable remove unused variable be super sure to make a configuration add function to create ECU clone from scanner extend test standalone graph tests add documentation fix tox improve transition_function argument storage minor cleanups cleanup ecu_sim test minor fix update post and pre execute test fixes fix tests fix test add render function add typing of render Apply feedback Fix flake8 errors Apply feedback Refactoring Simplify RC and RDBI enumerators Add Selective Enumerator for RDBI and RC Pass current state to _get_initial_requests Fix UDS_RCPR.answers add cleanup to tests update typing fix after rebase cleanup add pickle test of transition function disable pickle on python2 Also treat NR code 0x7f as serviceNotSupported Remove old comment Better logging for serviceNotSupported reactions try to fix unit test change blacklist creation remove NamedTuple fixes revert changes add root to uds_utils test more info update Allow scan_range to be modified in UDS_RCStartEnumerator minmal doc cleanup cleanup transition functions update render function add weights to graph fix unit test ecusim with old data update update update uds protocol RoutineControl update ServiceEnumerator should ignore exit_if_service_not_supported Remove list generation in DSCEnumerator Refactoring + fix Flake8 Set better expansion_width (253) Fix comment modify ecu state modifier refactor ecu state modifications cleanup logging of protocols add api docs minor fixes two more states update update update uds ecu states update add test cases in enumerator.uts update evaluate response update improve extension method update test supported_responses fix mypy fix types of timestamp add directory for scanner code split enumerator in different files add contrib comment fix BMW enumerator fix BMW enumerator add testcase positive&negative results adapt enumerator.uts to change fix enumerator.uts fix typing start with documentation of testcase complete documentation of AutomotiveTestCaseABC Renaming update scanner unit tests More unit tests for individual scanner parts fix mypy fix docs fix docs fix test fix test remove BrokenPipeError fix test further cleanups further cleanups more tests fix codespell fix test fix test fix flake more unit tests cleanup update fix defaults bugfix enable exception to find bug try bugfix update periodicSenderThread update update update unit tests update add connectionError fix tox add more verbose tpsender debug minor cleanup add BrokenPipeError to ignored errors during scan fix HSFZ scan minor fix fix mypy alphabetic sort of mypy enable contrib update close socket on Connection Error rename HSFZ Sockets fix mypy fix unit test for obdscanner refactoring of get_table_entry fix flake and mypy fix docs fix build fix mypy disable test fix tests fix tests minor cleanup update gmlan scanner debug closed socket error fix tox fix tox update gmlan scanner update update start with unit test implementation Update retry_packet handling update unit tests fix tox and code add candump cleanup pcaps and candump logs more unit tests update configuration unit tests improve tests-speed a lot refactoring of configuration fix test debug socket debug socket more unit tests try to fix bug more unit tests and bugfix update tests more and faster tests debug error fix tox fix stmin bug fix uds unit test include isotp stmin fix update tests update tests update tests fix test debug test fix tox try fix refactor RMBA enumerator apply feedback apply feedback minor fix minor fix in HSFZ test propagation of exception update add error handling on closed sockets update error handling minor exception handling fix stability update add pickle test fix test debug test fix test fix test improve test improve test speedup gmlan test minor cleanup update update update minor changes minor changes remove long test from pypy remove unused file add unstable socket to increase test coverage fix tox fix tox increase timeout of import.uts for macOSX remove delay_state_change configuration provide kwargs type information and documentation fix test remove old file add more kwargs checks and improve execution time update update fix obdscanner
…weringMachine. Including typing (secdev#3099) * Split secdev#3054: Update of Ecu, EcuResponse, EcuSession and EcuAnsweringMachine. Including typing * Update documentation * fix obdscanner tests * Update documentation * update test * update test and docs * make api-doc more nice * update codespell * major cleanup * fix code spell * fix docs build * apply feedback * cleanup * fix typing * fix typing
* Split secdev#3054: Add base classes for a new and clean implementation of automotive scanners and enumerators
…classes (secdev#3189) * Split of secdev#3054: Implementation of Enumerator and Executor base classes
…weringMachine. Including typing (secdev#3099) * Split secdev#3054: Update of Ecu, EcuResponse, EcuSession and EcuAnsweringMachine. Including typing * Update documentation * fix obdscanner tests * Update documentation * update test * update test and docs * make api-doc more nice * update codespell * major cleanup * fix code spell * fix docs build * apply feedback * cleanup * fix typing * fix typing
This PR:
with python
Sorry that this PR became that big. I hope it is merge-able in some way.