aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/suite_release.py47
-rwxr-xr-xtest/test.py2
2 files changed, 49 insertions, 0 deletions
diff --git a/test/suite_release.py b/test/suite_release.py
new file mode 100644
index 0000000000..8775f1f982
--- /dev/null
+++ b/test/suite_release.py
@@ -0,0 +1,47 @@
+#
+# -*- coding: utf-8 -*-
+# Wireshark tests
+#
+# Copyright (c) 2019 Gerald Combs <gerald@wireshark.org>
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+'''Release tests'''
+
+import fixtures
+import re
+import subprocess
+import subprocesstest
+import types
+
+@fixtures.fixture
+def wireshark_features(request, cmd_wireshark, make_env):
+ '''
+ Returns an object describing available features in Wireshark. Tests
+ will be skipped unless --enable-release is passed on the command line.
+ '''
+ enabled = request.config.getoption('--enable-release', default=False)
+ if not enabled:
+ fixtures.skip('Release tests are not enabled via --enable-release')
+
+ try:
+ wireshark_v = subprocess.check_output(
+ (cmd_wireshark, '--version'),
+ stderr=subprocess.PIPE,
+ universal_newlines=True,
+ env=make_env()
+ )
+ wireshark_v = re.sub(r'\s+', ' ', wireshark_v)
+ except subprocess.CalledProcessError as ex:
+ print('Failed to detect Wireshark features: %s' % (ex,))
+ wireshark_v = ''
+ return types.SimpleNamespace(
+ have_automatic_updates='with automatic updates' in wireshark_v,
+ )
+
+@fixtures.uses_fixtures
+class case_release_automatic_updates(subprocesstest.SubprocessTestCase):
+ def test_automatic_updates_present(self, wireshark_features):
+ '''Checks whether Wireshark was built with automatic updates.'''
+
+ self.assertTrue(wireshark_features.have_automatic_updates);
diff --git a/test/test.py b/test/test.py
index df3e9337aa..fa6a543057 100755
--- a/test/test.py
+++ b/test/test.py
@@ -54,6 +54,8 @@ def main():
parser = argparse.ArgumentParser(description='Wireshark unit tests')
cap_group = parser.add_mutually_exclusive_group()
cap_group.add_argument('-E', '--disable-capture', action='store_true', help='Disable capture tests')
+ release_group = parser.add_mutually_exclusive_group()
+ release_group.add_argument('--enable-release', action='store_true', help='Enable release tests')
parser.add_argument('-p', '--program-path', default=os.path.curdir, help='Path to Wireshark executables.')
parser.add_argument('--skip-missing-programs',
help='Skip tests that lack programs from this list instead of failing'