diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2017-03-09 17:02:16 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2017-03-09 17:02:16 +0000 |
commit | eb8480377129675b6a1e9ae8e56bf4ca2dfb481b (patch) | |
tree | 41166439b5387b5de1583b52aa56e761ca6d5421 /test/builtins | |
parent | 9a110981fc8e0d28844afd76f655cf5cd1c72754 (diff) |
Reapply r297382: "[compiler-rt][builtins] Add __isOSVersionAtLeast()"
Looks like the problem was a case-insensitive include of dispatch/dispatch.h.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@297392 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/builtins')
-rw-r--r-- | test/builtins/CMakeLists.txt | 15 | ||||
-rw-r--r-- | test/builtins/TestCases/Darwin/lit.local.cfg | 9 | ||||
-rw-r--r-- | test/builtins/TestCases/Darwin/os_version_check_test.c | 19 | ||||
-rw-r--r-- | test/builtins/lit.cfg | 20 | ||||
-rw-r--r-- | test/builtins/lit.site.cfg.in | 7 |
5 files changed, 70 insertions, 0 deletions
diff --git a/test/builtins/CMakeLists.txt b/test/builtins/CMakeLists.txt new file mode 100644 index 000000000..443e552f8 --- /dev/null +++ b/test/builtins/CMakeLists.txt @@ -0,0 +1,15 @@ +set(BUILTINS_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + +set(BUILTINS_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} builtins) +set(BUILTINS_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/TestCases) + +# Test cases. +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg +) + +add_lit_testsuite(check-builtins "Running the Builtins tests" + ${BUILTINS_TESTSUITES} + DEPENDS ${BUILTINS_TEST_DEPS}) +set_target_properties(check-builtins PROPERTIES FOLDER "Compiler-RT Misc") diff --git a/test/builtins/TestCases/Darwin/lit.local.cfg b/test/builtins/TestCases/Darwin/lit.local.cfg new file mode 100644 index 000000000..a85dfcd24 --- /dev/null +++ b/test/builtins/TestCases/Darwin/lit.local.cfg @@ -0,0 +1,9 @@ +def getRoot(config): + if not config.parent: + return config + return getRoot(config.parent) + +root = getRoot(config) + +if root.host_os not in ['Darwin']: + config.unsupported = True diff --git a/test/builtins/TestCases/Darwin/os_version_check_test.c b/test/builtins/TestCases/Darwin/os_version_check_test.c new file mode 100644 index 000000000..2692cd37e --- /dev/null +++ b/test/builtins/TestCases/Darwin/os_version_check_test.c @@ -0,0 +1,19 @@ +// RUN: %clang %s -o %t -mmacosx-version-min=10.5 -framework CoreFoundation -DMAJOR=%macos_version_major -DMINOR=%macos_version_minor -DSUBMINOR=%macos_version_subminor +// RUN: %run %t + +int __isOSVersionAtLeast(int Major, int Minor, int Subminor); + +int main() { + if (!__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR)) + return 1; + if (__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR + 1)) + return 1; + if (SUBMINOR && __isOSVersionAtLeast(MAJOR + 1, MINOR, SUBMINOR - 1)) + return 1; + if (SUBMINOR && !__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR - 1)) + return 1; + if (MAJOR && !__isOSVersionAtLeast(MAJOR - 1, MINOR + 1, SUBMINOR)) + return 1; + + return 0; +} diff --git a/test/builtins/lit.cfg b/test/builtins/lit.cfg new file mode 100644 index 000000000..0044df7ba --- /dev/null +++ b/test/builtins/lit.cfg @@ -0,0 +1,20 @@ +# -*- Python -*- + +import os + +# Setup config name. +config.name = 'Builtins' + +# Setup source root. +config.test_source_root = os.path.dirname(__file__) + +# Test suffixes. +config.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm'] + +# Define %clang and %clangxx substitutions to use in test RUN lines. +config.substitutions.append( ("%clang ", " " + config.clang + " ") ) + +if config.host_os == 'Darwin': + config.substitutions.append( ("%macos_version_major", str(config.darwin_osx_version[0])) ) + config.substitutions.append( ("%macos_version_minor", str(config.darwin_osx_version[1])) ) + config.substitutions.append( ("%macos_version_subminor", str(config.darwin_osx_version[2])) ) diff --git a/test/builtins/lit.site.cfg.in b/test/builtins/lit.site.cfg.in new file mode 100644 index 000000000..c7fe82f94 --- /dev/null +++ b/test/builtins/lit.site.cfg.in @@ -0,0 +1,7 @@ +@LIT_SITE_CFG_IN_HEADER@ + +# Load common config for all compiler-rt lit tests. +lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") + +# Load tool-specific config that would do the real work. +lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/lit.cfg") |