summaryrefslogtreecommitdiff
path: root/test/builtins
diff options
context:
space:
mode:
authorErik Pilkington <erik.pilkington@gmail.com>2017-03-09 17:02:16 +0000
committerErik Pilkington <erik.pilkington@gmail.com>2017-03-09 17:02:16 +0000
commiteb8480377129675b6a1e9ae8e56bf4ca2dfb481b (patch)
tree41166439b5387b5de1583b52aa56e761ca6d5421 /test/builtins
parent9a110981fc8e0d28844afd76f655cf5cd1c72754 (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.txt15
-rw-r--r--test/builtins/TestCases/Darwin/lit.local.cfg9
-rw-r--r--test/builtins/TestCases/Darwin/os_version_check_test.c19
-rw-r--r--test/builtins/lit.cfg20
-rw-r--r--test/builtins/lit.site.cfg.in7
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")