[libcxx-commits] [PATCH] D99177: [libcxx] [test] Fix testing on windows with c++experimental enabled
Martin Storsjö via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Apr 22 00:26:27 PDT 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rGcfec0a3e9e70: [libcxx] [test] Fix testing on windows with c++experimental enabled (authored by mstorsjo).
Changed prior to commit:
https://reviews.llvm.org/D99177?vs=332777&id=339498#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99177/new/
https://reviews.llvm.org/D99177
Files:
libcxx/utils/libcxx/test/features.py
libcxx/utils/libcxx/test/params.py
Index: libcxx/utils/libcxx/test/params.py
===================================================================
--- libcxx/utils/libcxx/test/params.py
+++ libcxx/utils/libcxx/test/params.py
@@ -7,6 +7,7 @@
#===----------------------------------------------------------------------===##
from libcxx.test.dsl import *
+from libcxx.test.features import _isMSVC
_warningFlags = [
'-Werror',
@@ -111,7 +112,12 @@
help="Whether to enable tests for experimental C++ libraries (typically Library Fundamentals TSes).",
actions=lambda experimental: [] if not experimental else [
AddFeature('c++experimental'),
- PrependLinkFlag('-lc++experimental')
+ # When linking in MSVC mode via the Clang driver, a -l<foo>
+ # maps to <foo>.lib, so we need to use -llibc++experimental here
+ # to make it link against the static libc++experimental.lib.
+ # We can't check for the feature 'msvc' in available_features
+ # as those features are added after processing parameters.
+ PrependLinkFlag(lambda config: '-llibc++experimental' if _isMSVC(config) else '-lc++experimental')
]),
Parameter(name='long_tests', choices=[True, False], type=bool, default=True,
Index: libcxx/utils/libcxx/test/features.py
===================================================================
--- libcxx/utils/libcxx/test/features.py
+++ libcxx/utils/libcxx/test/features.py
@@ -14,6 +14,8 @@
_isClang = lambda cfg: '__clang__' in compilerMacros(cfg) and '__apple_build_version__' not in compilerMacros(cfg)
_isAppleClang = lambda cfg: '__apple_build_version__' in compilerMacros(cfg)
_isGCC = lambda cfg: '__GNUC__' in compilerMacros(cfg) and '__clang__' not in compilerMacros(cfg)
+_isMSVC = lambda cfg: '_MSC_VER' in compilerMacros(cfg)
+_msvcVersion = lambda cfg: (int(compilerMacros(cfg)['_MSC_VER']) // 100, int(compilerMacros(cfg)['_MSC_VER']) % 100)
DEFAULT_FEATURES = [
Feature(name='fcoroutines-ts',
@@ -81,6 +83,10 @@
Feature(name=lambda cfg: 'gcc-{__GNUC__}'.format(**compilerMacros(cfg)), when=_isGCC),
Feature(name=lambda cfg: 'gcc-{__GNUC__}.{__GNUC_MINOR__}'.format(**compilerMacros(cfg)), when=_isGCC),
Feature(name=lambda cfg: 'gcc-{__GNUC__}.{__GNUC_MINOR__}.{__GNUC_PATCHLEVEL__}'.format(**compilerMacros(cfg)), when=_isGCC),
+
+ Feature(name='msvc', when=_isMSVC),
+ Feature(name=lambda cfg: 'msvc-{}'.format(*_msvcVersion(cfg)), when=_isMSVC),
+ Feature(name=lambda cfg: 'msvc-{}.{}'.format(*_msvcVersion(cfg)), when=_isMSVC),
]
# Deduce and add the test features that that are implied by the #defines in
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99177.339498.patch
Type: text/x-patch
Size: 3035 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210422/493df1d0/attachment-0001.bin>
More information about the libcxx-commits
mailing list