forked from secdev/scapy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
185 lines (152 loc) · 5.93 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# Scapy tox configuration file
# Copyright (C) 2019 Guillaume Valadon <[email protected]>
[tox]
envlist = py{27,34,35,36,37,38,py,py3}-{linux,bsd}_{non_root,root},
py{27,37,38}-windows,
linux_warnings
skip_missing_interpreters = true
minversion = 2.9
[testenv:py27-pcapdnet_root]
description = "Scapy unit tests - pcap & dnet"
whitelist_externals = {[testenv]whitelist_externals}
passenv = SCAPY_USE_PCAPDNET
deps = mock
# cryptography requirements
setuptools>=18.5
cryptography
coverage
# Currently pcap & dnet are tested together. As pydumbnet does not
# support Python3 yet, both are currently disabled.
pcapy>=0.11.3
pydumbnet
python-can
commands =
sudo -E {envpython} -m coverage run -m scapy.tools.UTscapy -c ./test/configs/bsd.utsc -T test/bpf.uts -K manufdb -K tshark -K random_weird_py3 -K osx {posargs}
[testenv:linux_warnings]
description = "Scapy unit tests - health (garbage/deprecations) check"
commands = sudo -E {envpython} -Werror -m scapy.tools.UTscapy -c ./test/configs/linux.utsc -K random_weird_py3 {posargs}
deps = {[testenv]deps}
platform = linux
passenv = {[testenv]passenv}
whitelist_externals = {[testenv]whitelist_externals}
[testenv:py36-isotp_kernel_module]
description = "Scapy unit tests - ISOTP Linux kernel module"
whitelist_externals = sudo
git
bash
lsmod
modprobe
passenv = PATH PWD PROGRAMFILES WINDIR SYSTEMROOT
deps = mock
# cryptography requirements
setuptools>=18.5
cryptography
coverage
python-can
commands =
sudo -E modprobe can
git clone --depth=1 https://github.com/linux-can/can-utils.git /tmp/can-utils
bash -c "cd /tmp/can-utils; autogen.sh; ./configure; make; sudo make install"
git clone --depth=1 https://github.com/hartkopp/can-isotp.git /tmp/can-isotp
bash -c "cd /tmp/can-isotp; make; sudo make modules_install; sudo modprobe can_isotp || sudo insmod ./net/can/can-isotp.ko"
bash -c "rm -rf /tmp/can-utils /tmp/can-isotp"
lsmod
sudo -E {envpython} -m coverage run -m scapy.tools.UTscapy -c ./test/configs/linux.utsc -K random_weird_py3 {posargs}
[testenv]
description = "Scapy unit tests"
whitelist_externals = sudo
passenv = PATH PWD PROGRAMFILES WINDIR SYSTEMROOT
deps = mock
# cryptography requirements
setuptools>=18.5
cryptography
coverage
python-can
platform =
linux_non_root,linux_root: linux
bsd_non_root,bsd_root: darwin|freebsd|openbsd|netbsd
windows: win32
commands =
linux_non_root: coverage run -m scapy.tools.UTscapy -c ./test/configs/linux.utsc -K random_weird_py3 -K netaccess -K needs_root {posargs}
linux_root: sudo -E {envpython} -m coverage run -m scapy.tools.UTscapy -c ./test/configs/linux.utsc -K random_weird_py3 {posargs}
bsd_non_root: coverage run -m scapy.tools.UTscapy -c test/configs/bsd.utsc -K manufdb -K tshark -K random_weird_py3 -K netaccess -K needs_root {posargs}
bsd_root: sudo -E {envpython} -m coverage run -m scapy.tools.UTscapy -c test/configs/bsd.utsc -K manufdb -K tshark -K random_weird_py3 {posargs}
windows: {envpython} -m coverage run -m scapy.tools.UTscapy -c test/configs/windows.utsc -K random_weird_py3 {posargs}
coverage combine
[testenv:codecov]
description = "Upload coverage results to codecov"
passenv = TOXENV CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_*
deps = codecov
commands = codecov -e TOXENV
# The files listed in thr sphinx-apidoc are ignored
# (past the first argument)
[testenv:apitree]
description = "Regenerates the API reference doc tree"
skip_install = true
changedir = doc/scapy
deps = sphinx
commands =
sphinx-apidoc -f --no-toc --separate --module-first --output-dir api ../../scapy ../../scapy/modules/ ../../scapy/libs/ ../../scapy/tools/ ../../scapy/arch/ ../../scapy/contrib/cansocket* ../../scapy/contrib/scada/* ../../scapy/all.py ../../scapy/layers/all.py
python sphinx_apidoc_postprocess.py
[testenv:mypy]
description = "Check Scapy compliance against static typing"
skip_install = true
deps = mypy
typing
commands = python .config/mypy/mypy_check.py
[testenv:docs]
skip_install = true
changedir = doc/scapy
deps = sphinx
sphinx_rtd_theme
commands =
sphinx-build -q -W -b html . _build/html
# Debug mode
[testenv:docs2]
skip_install = true
changedir = doc/scapy
deps = sphinx
sphinx_rtd_theme
commands =
sphinx-build -E -b html . _build/html
[testenv:spell]
description = "Check code for Grammar mistakes"
skip_install = true
deps = codespell
# inet6, dhcp6 and the ipynb files contains french: ignore them
commands = codespell --ignore-words=.config/codespell_ignore.txt --skip="*.pyc,*.png,*.jpg,*.ods,*.raw,*.pdf,*.pcap,*.js,*.html,*.der,*_build*,*inet6.py,*dhcp6.py,*.ipynb,*.svg,*.gif,*.obs,scapy/contrib/automotive/daimler/definitions.py" scapy/ doc/ test/ .github/
[testenv:twine]
description = "Check Scapy code distribution"
skip_install = true
deps = twine
setuptools>=38.6.0
cmarkgfm
commands = python setup.py --quiet sdist
twine check dist/*
[testenv:flake8]
description = "Check Scapy code style & quality"
skip_install = true
deps = flake8
commands = flake8 scapy/
# flake8 configuration
[flake8]
ignore = E731, W504
per-file-ignores =
scapy/all.py:F403,F401
scapy/contrib/automotive/daimler/definitions.py:E501
scapy/contrib/automotive/obd/obd.py:F405,F403
scapy/contrib/automotive/obd/pid/pids.py:F405,F403
scapy/contrib/automotive/obd/scanner.py:F405,F403,E501
scapy/contrib/automotive/volkswagen/definitions.py:E501
scapy/contrib/eigrp.py:E501
scapy/contrib/geneve.py:E501
scapy/contrib/http2.py:F821
scapy/contrib/igmp.py:E501
scapy/contrib/scada/iec104/__init__.py:F405
scapy/layers/tls/all.py:F403
scapy/layers/tls/crypto/all.py:F403
scapy/libs/winpcapy.py:E501
scapy/tools/UTscapy.py:E501
exclude = scapy/modules/six.py,
scapy/libs/winpcapy.py
scapy/libs/ethertypes.py