summaryrefslogtreecommitdiffstats
path: root/debian/tests/check-global-config-path.py
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests/check-global-config-path.py')
-rwxr-xr-xdebian/tests/check-global-config-path.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/debian/tests/check-global-config-path.py b/debian/tests/check-global-config-path.py
new file mode 100755
index 0000000000..3a2ec7c909
--- /dev/null
+++ b/debian/tests/check-global-config-path.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python3
+
+# Copyright 2021, Carsten Schoenert <carsten.schoenert@t-online.de>
+# SPDX-License-Identifier: GPL-2.0+
+
+# Simple check if the thunderbird binary is trying to successfully read any
+# content of the folder /usr/lib/thunderbird/defaults/syspref which is a
+# symlink to /etc/thunderbird/pref/ even if the folder is empty.
+#
+# Purpose if this check is to ensure we don't have disabled the inclusion of
+# this folder for Thunderbird by accident as we ship important default settings
+# within this folder.
+
+import subprocess
+import sys
+
+# Set the CLI call we want to inspect.
+command = 'strace -e trace=access thunderbird -h'
+pattern = '/usr/lib/thunderbird/defaults/syspref'
+
+# Setup the sub-process object.
+proc = subprocess.Popen(command,
+ shell=True,
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+
+# Execute the call.
+stdout_value,stderr_value = proc.communicate()
+
+# Once we have a valid response, split the return output. Currently we are not
+# (yet) interested on the content for stdout.
+if stdout_value:
+ stdout_value = stdout_value.split()
+
+# Processing and output the check.
+print(f'\nOutput on stderr for command \'{command}\':\n')
+
+for line in stderr_value.splitlines():
+ print(line.decode('utf-8'))
+print()
+
+print('Analysing strace call:')
+for line in stderr_value.splitlines():
+ if f'{pattern}' in line.decode('utf-8'):
+ print(f'\tPattern for accessing \"{pattern}\" found.')
+ print('\t\t' + '---> ' + line.decode('utf-8'))
+ if '0' in line.decode('utf-8').split('=')[1].lstrip():
+ print(f'\tAccess to folder/symlink \'{pattern}\' marked as successful (found F_OK = 0)')
+ print('\tCheck SUCCESSFUL!\n')
+ sys.exit(0)
+
+ else:
+ print(f'\tFailed to access to folder/symlink \'{pattern}\'!!!')
+ print('\tCheck FAILED!\n')
+ sys.exit(1)
+
+# If we going until here we need to fix something! :-(
+print(f'\tPattern for accessing \"{pattern}\" wasn\'t found!!!')
+print('\tCheck FAILED!\n')
+sys.exit(1)