aboutsummaryrefslogtreecommitdiffstats
path: root/test/suite_outputformats.py
diff options
context:
space:
mode:
authorDario Lombardo <lomato@gmail.com>2018-12-15 21:25:40 +0100
committerDario Lombardo <lomato@gmail.com>2018-12-26 19:32:47 +0000
commit5444b41530257ad3d7f031ce0b2150f8943eacb3 (patch)
tree4dc3efa45f9ea98c1f576124c41942f46c385ee4 /test/suite_outputformats.py
parenta051c12f2caa82e51e29225d26ba85e34689a1a1 (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.py53
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)