forked from mirrors/gecko-dev
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly. To produce this patch I did all of the following: 1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions. 2. Run ./mach lint --linter black --fix 3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks. 4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat. 5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023). # ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D94045
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
import json
|
|
|
|
FIRST_LINE = "// This file was generated by generate_thread_allows.py. DO NOT EDIT."
|
|
|
|
|
|
def generate_allows(input_paths):
|
|
"""
|
|
This script reads in the ThreadAllows.txt and ThreadFileAllows.txt lists
|
|
and generates a header file containing a two arrays of allowed threads.
|
|
These can be the following formats:
|
|
-Files which the checker should ignore
|
|
These files either contain definitions of NS_NewNamedThread or
|
|
use args which the plugin can't cast (such as func args).
|
|
-Thread names which the checker should ignore
|
|
Specifies which individual thread names to ignore.
|
|
"""
|
|
file_list = []
|
|
name_list = []
|
|
lines = set()
|
|
|
|
for path in input_paths:
|
|
with open(path) as file:
|
|
lines.update(file.readlines())
|
|
|
|
for line in sorted(lines):
|
|
"""
|
|
We are assuming lines ending in .cpp, .h are files. Threads should
|
|
NOT have names containing filenames. Please don't do that.
|
|
"""
|
|
line = line.strip()
|
|
if line.endswith(".cpp") or line.endswith(".h"):
|
|
file_list.append(line)
|
|
else:
|
|
name_list.append(line)
|
|
file_list_s = ",\n ".join(json.dumps(elem) for elem in file_list)
|
|
name_list_s = ",\n ".join(json.dumps(elem) for elem in name_list)
|
|
output_string = (
|
|
FIRST_LINE
|
|
+ """
|
|
|
|
static const char *allow_thread_files[] = {
|
|
%s
|
|
};
|
|
|
|
static const char *allow_thread_names[] = {
|
|
%s
|
|
};
|
|
|
|
"""
|
|
% (file_list_s, name_list_s)
|
|
)
|
|
return output_string
|
|
|
|
|
|
def generate_file(output, *input_paths):
|
|
output.write(generate_allows(input_paths))
|