Added test-tidy check for blocked packages.

This commit is contained in:
Alan Jeffrey 2017-01-05 13:56:02 +00:00
parent 7ace30f9bd
commit e3a8e3b706

View file

@ -81,6 +81,27 @@ WEBIDL_STANDARDS = [
" accessible to\n// web pages."
]
# Packages which we avoid using in Servo.
# For each blocked package, we can list the exceptions,
# which are packages allowed to use the blocked package.
BLOCKED_PACKAGES = {
"rand": [
"deque",
"gaol",
"ipc-channel",
"num-bigint",
"parking_lot_core",
"phf_generator",
"rayon",
"servo_rand",
"tempdir",
"tempfile",
"uuid",
"websocket",
"ws",
],
}
def is_iter_empty(iterator):
try:
@ -338,6 +359,20 @@ def check_lock(file_name, contents):
message += "\n\t\t" + name
yield (1, message)
# Check to see if we are transitively using any blocked packages
for package in content.get("package", []):
package_name = package.get("name")
package_version = package.get("version")
for dependency in package.get("dependencies", []):
dependency = dependency.split()
dependency_name = dependency[0]
whitelist = BLOCKED_PACKAGES.get(dependency_name)
if whitelist is not None:
if package_name not in whitelist:
fmt = "Package {} {} depends on blocked package {}."
message = fmt.format(package_name, package_version, dependency_name)
yield (1, message)
def check_toml(file_name, lines):
if not file_name.endswith("Cargo.toml"):