]> granicus.if.org Git - python/commitdiff
bpo-31355: Travis-CI: re-enable macOS job (#5858)
authorAntoine Pitrou <pitrou@free.fr>
Tue, 27 Feb 2018 20:40:37 +0000 (21:40 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Feb 2018 20:40:37 +0000 (21:40 +0100)
The long build queues that plagued macOS builds on Travis seem to be
a thing of the past now.

.travis.yml
Tools/scripts/smelly.py

index ab43318975fb55886be54a9a77468eba2ac34013..292b9c687638864ef0668b2528fca99088ab89ce 100644 (file)
@@ -52,6 +52,15 @@ matrix:
         - python -m pip install sphinx~=1.6.1 blurb
       script:
         - make check suspicious html SPHINXOPTS="-q -W -j4"
+    - os: osx
+      language: c
+      compiler: clang
+      # Testing under macOS is optional until testing stability has been demonstrated.
+      env: OPTIONAL=true
+      before_install:
+        # Python 3 is needed for Argument Clinic and multissl
+        - brew install xz python3
+        - export PATH=$(brew --prefix)/bin:$(brew --prefix)/sbin:$PATH
     - os: linux
       language: c
       compiler: gcc
@@ -76,9 +85,9 @@ before_install:
   - set -e
   - |
       # Check short-circuit conditions
-      if [ "${TESTING}" != "docs" ]
+      if [[ "${TESTING}" != "docs" ]]
       then
-        if [ "$TRAVIS_PULL_REQUEST" = "false" ]
+        if [[ "$TRAVIS_PULL_REQUEST" == "false" ]]
         then
           echo "Not a PR, doing full build."
         else
@@ -101,7 +110,7 @@ before_install:
 install:
   - |
       # Install OpenSSL as necessary
-      if [ "${TESTING}" != "docs" ]
+      if [[ "${TESTING}" != "docs" ]]
       then
         # clang complains about unused-parameter a lot, redirect stderr
         python3 Tools/ssl/multissltests.py --steps=library \
index 212eedb30bc384abb0d284c0212d1efbd25286f3..43d091654d2dc84e499e1950cc3a0303879d4d33 100755 (executable)
@@ -27,6 +27,11 @@ def get_exported_symbols():
 def get_smelly_symbols(stdout):
     symbols = []
     ignored_symtypes = set()
+
+    allowed_prefixes = ('Py', '_Py')
+    if sys.platform == 'darwin':
+        allowed_prefixes += ('__Py',)
+
     for line in stdout.splitlines():
         # Split line '0000000000001b80 D PyTextIOWrapper_Type'
         if not line:
@@ -47,7 +52,7 @@ def get_smelly_symbols(stdout):
             continue
 
         symbol = parts[-1]
-        if symbol.startswith(('Py', '_Py')):
+        if symbol.startswith(allowed_prefixes):
             continue
         symbol = '%s (type: %s)' % (symbol, symtype)
         symbols.append(symbol)