diff options
author | 2019-09-14 17:24:57 +0200 | |
---|---|---|
committer | 2019-09-14 17:26:10 +0200 | |
commit | d3f9990f1b48514b33342612b51fad238592d774 (patch) | |
tree | 9ad5ae81ba3e820e91a09e2675b7c98675bd809e /tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py | |
parent | ALSA: firewire-tascam: check intermediate state of clock status and retry (diff) | |
parent | Merge tag 'asoc-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next (diff) | |
download | wireguard-linux-d3f9990f1b48514b33342612b51fad238592d774.tar.xz wireguard-linux-d3f9990f1b48514b33342612b51fad238592d774.zip |
Merge branch 'for-next' into for-linus
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py')
-rw-r--r-- | tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py b/tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py new file mode 100644 index 000000000000..229ee185b27e --- /dev/null +++ b/tools/testing/selftests/tc-testing/plugin-lib/scapyPlugin.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +import os +import signal +from string import Template +import subprocess +import time +from TdcPlugin import TdcPlugin + +from tdc_config import * + +try: + from scapy.all import * +except ImportError: + print("Unable to import the scapy python module.") + print("\nIf not already installed, you may do so with:") + print("\t\tpip3 install scapy==2.4.2") + exit(1) + +class SubPlugin(TdcPlugin): + def __init__(self): + self.sub_class = 'scapy/SubPlugin' + super().__init__() + + def post_execute(self): + if 'scapy' not in self.args.caseinfo: + if self.args.verbose: + print('{}.post_execute: no scapy info in test case'.format(self.sub_class)) + return + + # Check for required fields + scapyinfo = self.args.caseinfo['scapy'] + scapy_keys = ['iface', 'count', 'packet'] + missing_keys = [] + keyfail = False + for k in scapy_keys: + if k not in scapyinfo: + keyfail = True + missing_keys.add(k) + if keyfail: + print('{}: Scapy block present in the test, but is missing info:' + .format(self.sub_class)) + print('{}'.format(missing_keys)) + + pkt = eval(scapyinfo['packet']) + if '$' in scapyinfo['iface']: + tpl = Template(scapyinfo['iface']) + scapyinfo['iface'] = tpl.safe_substitute(NAMES) + for count in range(scapyinfo['count']): + sendp(pkt, iface=scapyinfo['iface']) |