diff options
author | Dario Lombardo <lomato@gmail.com> | 2018-12-15 21:25:40 +0100 |
---|---|---|
committer | Dario Lombardo <lomato@gmail.com> | 2018-12-26 19:32:47 +0000 |
commit | 5444b41530257ad3d7f031ce0b2150f8943eacb3 (patch) | |
tree | 4dc3efa45f9ea98c1f576124c41942f46c385ee4 /test/suite_outputformats.py | |
parent | a051c12f2caa82e51e29225d26ba85e34689a1a1 (diff) |
test: add suite_outputformats for json output regression testing.
This suite uses different output formats to check against fixed
samples.
Change-Id: I8adccfefea35a6d3cfacf3da61e8a72d830ed3a0
Reviewed-on: https://code.wireshark.org/review/31056
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Diffstat (limited to 'test/suite_outputformats.py')
-rw-r--r-- | test/suite_outputformats.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/suite_outputformats.py b/test/suite_outputformats.py new file mode 100644 index 0000000000..9948b7603a --- /dev/null +++ b/test/suite_outputformats.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Wireshark tests +# By Gerald Combs <gerald@wireshark.org> +# +# Copyright (c) 2018 Dario Lombardo <lomato@gmail.com> +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +'''outputformats tests''' + +import json +import os.path +import subprocesstest +import fixtures +from matchers import * + +@fixtures.fixture +def check_outputformat(cmd_tshark, dirs, capture_file): + def check_outputformat_real(self, pcap_file, format_option, format_file, multiline=False): + self.maxDiff = 1000000 + tshark_proc = self.assertRun((cmd_tshark, '-r', capture_file(pcap_file), '-T', format_option,)) + + expected = open(os.path.join(dirs.baseline_dir, format_file)).read() + actual = tshark_proc.stdout_str + if multiline: + expected = expected.splitlines() + actual = actual.splitlines() + self.assertEqual(len(expected), len(actual)) + for line1, line2 in zip(expected, actual): + json.loads(line1) + json.loads(line2) + self.assertEqual(json.loads(line1), json.loads(line2)) + else: + expected = json.loads(expected) + actual = json.loads(actual) + self.assertEqual(expected, actual) + + return check_outputformat_real + +@fixtures.mark_usefixtures('base_env') +@fixtures.uses_fixtures +class case_outputformats(subprocesstest.SubprocessTestCase): + def test_outputformat_json(self, check_outputformat): + '''Decode some captures into json''' + check_outputformat(self, "dhcp.pcap", "json", "dhcp.json") + + def test_outputformat_jsonraw(self, check_outputformat): + '''Decode some captures into jsonraw''' + check_outputformat(self, "dhcp.pcap", "jsonraw", "dhcp.jsonraw") + + def test_outputformat_ek(self, check_outputformat): + '''Decode some captures into ek''' + check_outputformat(self, "dhcp.pcap", "ek", "dhcp.ek", True) |