Skip to content

automotive: J1939 scanning (and ISOTPSoftSocket robustness)#4961

Draft
BenGardiner wants to merge 11 commits intosecdev:masterfrom
BenGardiner:j1939_scanning
Draft

automotive: J1939 scanning (and ISOTPSoftSocket robustness)#4961
BenGardiner wants to merge 11 commits intosecdev:masterfrom
BenGardiner:j1939_scanning

Conversation

@BenGardiner
Copy link
Copy Markdown
Contributor

Checklist:

  • [✅] I squashed commits belonging together
  • [✅ ] I added unit tests or explained why they are not relevant
  • [✅] I executed the regression tests (using tox)

This adds support for J1939 frames, transport layer and DMs; then also several methods to scan for Controller Applications on a J1939 vehicle network.

I also needed to add some (more) threading fixes to ISOTPSoftSocket -- seems I wasn't done last time.

cc: @polybassa

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 9, 2026

Codecov Report

❌ Patch coverage is 3.78837% with 1473 lines in your changes missing coverage. Please review.
✅ Project coverage is 46.89%. Comparing base (9ae49f8) to head (27dc432).

Files with missing lines Patch % Lines
...capy/contrib/automotive/j1939/j1939_soft_socket.py 0.00% 765 Missing ⚠️
scapy/contrib/automotive/j1939/j1939_scanner.py 0.00% 481 Missing ⚠️
scapy/contrib/automotive/j1939/j1939_dm_scanner.py 0.00% 101 Missing ⚠️
scapy/contrib/automotive/j1939/j1939_dm.py 0.00% 77 Missing ⚠️
scapy/contrib/automotive/j1939/__init__.py 0.00% 18 Missing ⚠️
scapy/contrib/cansocket_python_can.py 70.83% 14 Missing ⚠️
scapy/contrib/isotp/isotp_soft_socket.py 64.70% 12 Missing ⚠️
scapy/contrib/automotive/scanner/executor.py 28.57% 5 Missing ⚠️

❗ There is a different number of reports uploaded between BASE (9ae49f8) and HEAD (27dc432). Click for more details.

HEAD has 10 uploads less than BASE
Flag BASE (9ae49f8) HEAD (27dc432)
12 2
Additional details and impacted files
@@             Coverage Diff             @@
##           master    #4961       +/-   ##
===========================================
- Coverage   80.30%   46.89%   -33.42%     
===========================================
  Files         379      366       -13     
  Lines       93164    94318     +1154     
===========================================
- Hits        74820    44235    -30585     
- Misses      18344    50083    +31739     
Files with missing lines Coverage Δ
scapy/contrib/automotive/scanner/executor.py 75.65% <28.57%> (-9.02%) ⬇️
scapy/contrib/isotp/isotp_soft_socket.py 62.68% <64.70%> (-21.84%) ⬇️
scapy/contrib/cansocket_python_can.py 80.10% <70.83%> (-3.43%) ⬇️
scapy/contrib/automotive/j1939/__init__.py 0.00% <0.00%> (ø)
scapy/contrib/automotive/j1939/j1939_dm.py 0.00% <0.00%> (ø)
scapy/contrib/automotive/j1939/j1939_dm_scanner.py 0.00% <0.00%> (ø)
scapy/contrib/automotive/j1939/j1939_scanner.py 0.00% <0.00%> (ø)
...capy/contrib/automotive/j1939/j1939_soft_socket.py 0.00% <0.00%> (ø)

... and 329 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@polybassa
Copy link
Copy Markdown
Contributor

Hi Ben, thanks for your PR. I've sent you a message on how we could proceed with J1939. Looking forward to your feedback

@BenGardiner BenGardiner marked this pull request as draft April 9, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants