Browse Source

Do not use -audit toolchains on Alpine in testing

default_compile_flags
vector-of-bool 4 years ago
parent
commit
09967abb7d
4 changed files with 139 additions and 121 deletions
  1. +122
    -121
      poetry.lock
  2. +1
    -0
      pyproject.toml
  3. +5
    -0
      tools/dds_ci/toolchain.py
  4. +11
    -0
      tools/gcc-9-test.jsonc

+ 122
- 121
poetry.lock View File

@@ -1,67 +1,70 @@
[[package]]
category = "main"
description = "apipkg: namespace control and lazy-import mechanism"
name = "apipkg"
version = "1.5"
description = "apipkg: namespace control and lazy-import mechanism"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.5"

[[package]]
category = "dev"
description = "An abstract syntax tree for Python with inference support."
name = "astroid"
version = "2.4.2"
description = "An abstract syntax tree for Python with inference support."
category = "dev"
optional = false
python-versions = ">=3.5"
version = "2.4.2"

[package.dependencies]
lazy-object-proxy = ">=1.4.0,<1.5.0"
six = ">=1.12,<2.0"
typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
wrapt = ">=1.11,<2.0"

[package.dependencies.typed-ast]
python = "<3.8"
version = ">=1.4.0,<1.5"

[[package]]
category = "main"
description = "Atomic file writes."
marker = "sys_platform == \"win32\""
name = "atomicwrites"
version = "1.4.0"
description = "Atomic file writes."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.4.0"

[[package]]
category = "main"
description = "Classes Without Boilerplate"
name = "attrs"
version = "20.3.0"
description = "Classes Without Boilerplate"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "20.3.0"

[package.extras]
dev = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"]
docs = ["furo", "sphinx", "zope.interface"]
tests = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
tests_no_zope = ["coverage (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]

[[package]]
category = "main"
description = "Cross-platform colored terminal text."
marker = "sys_platform == \"win32\""
name = "colorama"
version = "0.4.4"
description = "Cross-platform colored terminal text."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.4.4"

[[package]]
name = "distro"
version = "1.5.0"
description = "Distro - an OS platform information API"
category = "main"
description = "execnet: rapid multi-Python deployment"
optional = false
python-versions = "*"

[[package]]
name = "execnet"
version = "1.7.1"
description = "execnet: rapid multi-Python deployment"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.7.1"

[package.dependencies]
apipkg = ">=1.4"
@@ -70,76 +73,75 @@ apipkg = ">=1.4"
testing = ["pre-commit"]

[[package]]
category = "main"
description = "Read metadata from Python packages"
marker = "python_version < \"3.8\""
name = "importlib-metadata"
version = "3.1.1"
description = "Read metadata from Python packages"
category = "main"
optional = false
python-versions = ">=3.6"
version = "3.1.1"

[package.dependencies]
zipp = ">=0.5"

[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]

[[package]]
category = "main"
description = "iniconfig: brain-dead simple config-ini parsing"
name = "iniconfig"
version = "1.1.1"
description = "iniconfig: brain-dead simple config-ini parsing"
category = "main"
optional = false
python-versions = "*"
version = "1.1.1"

[[package]]
category = "dev"
description = "A Python utility / library to sort Python imports."
name = "isort"
version = "5.6.4"
description = "A Python utility / library to sort Python imports."
category = "dev"
optional = false
python-versions = ">=3.6,<4.0"
version = "5.6.4"

[package.extras]
colors = ["colorama (>=0.4.3,<0.5.0)"]
pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
requirements_deprecated_finder = ["pipreqs", "pip-api"]
colors = ["colorama (>=0.4.3,<0.5.0)"]

[[package]]
category = "main"
description = "A Python implementation of the JSON5 data format."
name = "json5"
version = "0.9.5"
description = "A Python implementation of the JSON5 data format."
category = "main"
optional = false
python-versions = "*"
version = "0.9.5"

[package.extras]
dev = ["hypothesis"]

[[package]]
category = "dev"
description = "A fast and thorough lazy object proxy."
name = "lazy-object-proxy"
version = "1.4.3"
description = "A fast and thorough lazy object proxy."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.4.3"

[[package]]
category = "dev"
description = "McCabe checker, plugin for flake8"
name = "mccabe"
version = "0.6.1"
description = "McCabe checker, plugin for flake8"
category = "dev"
optional = false
python-versions = "*"
version = "0.6.1"

[[package]]
category = "dev"
description = "Optional static typing for Python"
name = "mypy"
version = "0.790"
description = "Optional static typing for Python"
category = "dev"
optional = false
python-versions = ">=3.5"
version = "0.790"

[package.dependencies]
mypy-extensions = ">=0.4.3,<0.5.0"
@@ -150,104 +152,99 @@ typing-extensions = ">=3.7.4"
dmypy = ["psutil (>=4.0)"]

[[package]]
category = "dev"
description = "Experimental type system extensions for programs checked with the mypy typechecker."
name = "mypy-extensions"
version = "0.4.3"
description = "Experimental type system extensions for programs checked with the mypy typechecker."
category = "dev"
optional = false
python-versions = "*"
version = "0.4.3"

[[package]]
category = "main"
description = "Core utilities for Python packages"
name = "packaging"
version = "20.7"
description = "Core utilities for Python packages"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "20.7"

[package.dependencies]
pyparsing = ">=2.0.2"

[[package]]
category = "main"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.13.1"

[package.dependencies]
[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}

[package.extras]
dev = ["pre-commit", "tox"]

[[package]]
category = "main"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
version = "1.9.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.9.0"

[[package]]
category = "dev"
description = "python code static checker"
name = "pylint"
version = "2.6.0"
description = "python code static checker"
category = "dev"
optional = false
python-versions = ">=3.5.*"
version = "2.6.0"

[package.dependencies]
astroid = ">=2.4.0,<=2.5"
colorama = "*"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
isort = ">=4.2.5,<6"
mccabe = ">=0.6,<0.7"
toml = ">=0.7.1"

[[package]]
category = "main"
description = "Python parsing module"
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "2.4.7"

[[package]]
category = "main"
description = "pytest: simple powerful testing with Python"
name = "pytest"
version = "6.1.2"
description = "pytest: simple powerful testing with Python"
category = "main"
optional = false
python-versions = ">=3.5"
version = "6.1.2"

[package.dependencies]
atomicwrites = ">=1.0"
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=17.4.0"
colorama = "*"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
iniconfig = "*"
packaging = "*"
pluggy = ">=0.12,<1.0"
py = ">=1.8.2"
toml = "*"

[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"

[package.extras]
checkqa_mypy = ["mypy (0.780)"]
checkqa_mypy = ["mypy (==0.780)"]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]

[[package]]
category = "main"
description = "Pytest support for asyncio."
name = "pytest-asyncio"
version = "0.14.0"
description = "Pytest support for asyncio."
category = "main"
optional = false
python-versions = ">= 3.5"
version = "0.14.0"

[package.dependencies]
pytest = ">=5.4.0"
@@ -256,24 +253,24 @@ pytest = ">=5.4.0"
testing = ["async-generator (>=1.3)", "coverage", "hypothesis (>=5.7.1)"]

[[package]]
category = "main"
description = "run tests in isolated forked subprocesses"
name = "pytest-forked"
version = "1.3.0"
description = "run tests in isolated forked subprocesses"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "1.3.0"

[package.dependencies]
py = "*"
pytest = ">=3.10"

[[package]]
category = "main"
description = "pytest xdist plugin for distributed testing and loop-on-failing modes"
name = "pytest-xdist"
version = "2.1.0"
description = "pytest xdist plugin for distributed testing and loop-on-failing modes"
category = "main"
optional = false
python-versions = ">=3.5"
version = "2.1.0"

[package.dependencies]
execnet = ">=1.1"
@@ -285,88 +282,88 @@ psutil = ["psutil (>=3.0)"]
testing = ["filelock"]

[[package]]
category = "dev"
description = "a python refactoring library..."
name = "rope"
version = "0.18.0"
description = "a python refactoring library..."
category = "dev"
optional = false
python-versions = "*"
version = "0.18.0"

[package.extras]
dev = ["pytest"]

[[package]]
category = "main"
description = "Python helper for Semantic Versioning (http://semver.org/)"
name = "semver"
version = "2.13.0"
description = "Python helper for Semantic Versioning (http://semver.org/)"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.13.0"

[[package]]
category = "dev"
description = "Python 2 and 3 compatibility utilities"
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.15.0"

[[package]]
category = "main"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
version = "0.10.2"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
version = "0.10.2"

[[package]]
category = "dev"
description = "a fork of Python 2 and 3 ast modules with type comment support"
name = "typed-ast"
version = "1.4.1"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false
python-versions = "*"
version = "1.4.1"

[[package]]
category = "main"
description = "Backported and Experimental Type Hints for Python 3.5+"
name = "typing-extensions"
version = "3.7.4.3"
description = "Backported and Experimental Type Hints for Python 3.5+"
category = "main"
optional = false
python-versions = "*"
version = "3.7.4.3"

[[package]]
category = "dev"
description = "Module for decorators, wrappers and monkey patching."
name = "wrapt"
version = "1.12.1"
description = "Module for decorators, wrappers and monkey patching."
category = "dev"
optional = false
python-versions = "*"
version = "1.12.1"

[[package]]
category = "dev"
description = "A formatter for Python code."
name = "yapf"
version = "0.30.0"
description = "A formatter for Python code."
category = "dev"
optional = false
python-versions = "*"
version = "0.30.0"

[[package]]
category = "main"
description = "Backport of pathlib-compatible object wrapper for zip files"
marker = "python_version < \"3.8\""
name = "zipp"
version = "3.4.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "main"
optional = false
python-versions = ">=3.6"
version = "3.4.0"

[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]

[metadata]
content-hash = "bb7d048748c946ac4f6196a339a149d8060b048968853cb281d83207e324a61b"
lock-version = "1.1"
python-versions = "^3.6"
content-hash = "5c3cefd7d2a4b573928b14dc6291fbb7ef8a8a29306f7982ad64db4cb615e6e5"

[metadata.files]
apipkg = [
@@ -389,6 +386,10 @@ colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
]
distro = [
{file = "distro-1.5.0-py2.py3-none-any.whl", hash = "sha256:df74eed763e18d10d0da624258524ae80486432cd17392d9c3d96f5e83cd2799"},
{file = "distro-1.5.0.tar.gz", hash = "sha256:0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92"},
]
execnet = [
{file = "execnet-1.7.1-py2.py3-none-any.whl", hash = "sha256:d4efd397930c46415f62f8a31388d6be4f27a91d7550eb79bc64a756e0056547"},
{file = "execnet-1.7.1.tar.gz", hash = "sha256:cacb9df31c9680ec5f95553976c4da484d407e85e41c83cb812aa014f0eddc50"},

+ 1
- 0
pyproject.toml View File

@@ -17,6 +17,7 @@ pytest-xdist = "^2.1.0"
pytest-asyncio = "^0.14.0"
typing-extensions = "^3.7.4"
json5 = "^0.9.5"
distro = "^1.5.0"

[tool.poetry.dev-dependencies]
# Only needed for development

+ 5
- 0
tools/dds_ci/toolchain.py View File

@@ -4,6 +4,7 @@ from contextlib import contextmanager
from pathlib import Path
from typing import Iterator

import distro
import json5

from . import paths
@@ -38,6 +39,10 @@ def get_default_test_toolchain() -> Path:
Get the default toolchain that should be used for dev and test based on the
host platform.
"""
if distro.id() == 'alpine':
# Alpine Linux cannot use the full audit mode, as asan and ubsan do not
# work with musl
return paths.TOOLS_DIR / 'gcc-9-test.jsonc'
if sys.platform == 'win32':
return paths.TOOLS_DIR / 'msvc-audit.jsonc'
if sys.platform in 'linux':

+ 11
- 0
tools/gcc-9-test.jsonc View File

@@ -0,0 +1,11 @@
{
"$schema": "../res/toolchain-schema.json",
"compiler_id": "gnu",
"c_compiler": "gcc-9",
"cxx_compiler": "g++-9",
"cxx_version": "c++17",
"warning_flags": [
"-Werror",
],
"debug": true
}

Loading…
Cancel
Save