[libcxx] Support Python 3.8 in the test suite

Summary: `platform.linux_distribution()` has been deprecated in Python 3.5 and removed in Python 3.8.

Reviewers: bcain, bcraig, jroelofs, EricWF, mclow.lists, ldionne

Reviewed By: jroelofs

Subscribers: dexonsmith, christof, ldionne, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D72501
This commit is contained in:
Sergej Jaskiewicz 2020-01-21 19:40:34 +03:00
parent 3023352a7d
commit 7b8dc8c576
1 changed files with 12 additions and 2 deletions

View File

@ -206,15 +206,25 @@ class LinuxLocalTI(DefaultTargetInfo):
def platform(self):
return 'linux'
def _distribution(self):
try:
# linux_distribution is not available since Python 3.8
# However, this function is only used to detect SLES 11,
# which is quite an old distribution that doesn't have
# Python 3.8.
return platform.linux_distribution()
except AttributeError:
return '', '', ''
def platform_name(self):
name, _, _ = platform.linux_distribution()
name, _, _ = self._distribution()
# Some distros have spaces, e.g. 'SUSE Linux Enterprise Server'
# lit features can't have spaces
name = name.lower().strip().replace(' ', '-')
return name # Permitted to be None
def platform_ver(self):
_, ver, _ = platform.linux_distribution()
_, ver, _ = self._distribution()
ver = ver.lower().strip().replace(' ', '-')
return ver # Permitted to be None.