diff options
author | Brad King <brad.king@kitware.com> | 2020-11-06 13:48:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-11-06 14:17:30 (GMT) |
commit | fcc89bda1d726e59e2f021f8d094ab6159b48e57 (patch) | |
tree | 4de15df345e183b34f5635a3cbd08f7f987cdd3c /Tests/RunCMake/ABI | |
parent | 412ce907a2099b8e65052edcc1f6dbc031b57cdd (diff) | |
download | CMake-fcc89bda1d726e59e2f021f8d094ab6159b48e57.zip CMake-fcc89bda1d726e59e2f021f8d094ab6159b48e57.tar.gz CMake-fcc89bda1d726e59e2f021f8d094ab6159b48e57.tar.bz2 |
TestBigEndian: Re-implement using byte order detected from ABI check
Document the module as deprecated in favor of the ABI check results.
Diffstat (limited to 'Tests/RunCMake/ABI')
-rw-r--r-- | Tests/RunCMake/ABI/C-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/C.cmake | 15 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CUDA.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CXX-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/CXX.cmake | 15 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/OBJC.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/OBJCXX.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/RunCMakeTest.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt | 8 | ||||
-rw-r--r-- | Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake | 2 |
11 files changed, 63 insertions, 0 deletions
diff --git a/Tests/RunCMake/ABI/C-stdout.txt b/Tests/RunCMake/ABI/C-stdout.txt new file mode 100644 index 0000000..5b67b84 --- /dev/null +++ b/Tests/RunCMake/ABI/C-stdout.txt @@ -0,0 +1 @@ +-- Check if the system is big endian diff --git a/Tests/RunCMake/ABI/C.cmake b/Tests/RunCMake/ABI/C.cmake index a90c766..92f5da4 100644 --- a/Tests/RunCMake/ABI/C.cmake +++ b/Tests/RunCMake/ABI/C.cmake @@ -5,3 +5,18 @@ if(NOT CMAKE_C_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") endif() message(FATAL_ERROR "CMAKE_C_BYTE_ORDER has unexpected value '${CMAKE_C_BYTE_ORDER}'") endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() + +# Test legacy check. +set(byte_order "${CMAKE_C_BYTE_ORDER}") +unset(CMAKE_C_BYTE_ORDER) +include(TestBigEndian) +test_big_endian(IS_BIG) +if(IS_BIG AND NOT byte_order STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/CUDA.cmake b/Tests/RunCMake/ABI/CUDA.cmake index d1e06f7..8ede3a9 100644 --- a/Tests/RunCMake/ABI/CUDA.cmake +++ b/Tests/RunCMake/ABI/CUDA.cmake @@ -5,3 +5,9 @@ if(NOT CMAKE_CUDA_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") endif() message(FATAL_ERROR "CMAKE_CUDA_BYTE_ORDER has unexpected value '${CMAKE_CUDA_BYTE_ORDER}'") endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_CUDA_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/CXX-stdout.txt b/Tests/RunCMake/ABI/CXX-stdout.txt new file mode 100644 index 0000000..5b67b84 --- /dev/null +++ b/Tests/RunCMake/ABI/CXX-stdout.txt @@ -0,0 +1 @@ +-- Check if the system is big endian diff --git a/Tests/RunCMake/ABI/CXX.cmake b/Tests/RunCMake/ABI/CXX.cmake index 4fd9a0d..2310002 100644 --- a/Tests/RunCMake/ABI/CXX.cmake +++ b/Tests/RunCMake/ABI/CXX.cmake @@ -5,3 +5,18 @@ if(NOT CMAKE_CXX_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") endif() message(FATAL_ERROR "CMAKE_CXX_BYTE_ORDER has unexpected value '${CMAKE_CXX_BYTE_ORDER}'") endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() + +# Test legacy check. +set(byte_order "${CMAKE_CXX_BYTE_ORDER}") +unset(CMAKE_CXX_BYTE_ORDER) +include(TestBigEndian) +test_big_endian(IS_BIG) +if(IS_BIG AND NOT byte_order STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/OBJC.cmake b/Tests/RunCMake/ABI/OBJC.cmake index 623b12e..ab67459 100644 --- a/Tests/RunCMake/ABI/OBJC.cmake +++ b/Tests/RunCMake/ABI/OBJC.cmake @@ -5,3 +5,9 @@ if(NOT CMAKE_OBJC_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") endif() message(FATAL_ERROR "CMAKE_OBJC_BYTE_ORDER has unexpected value '${CMAKE_OBJC_BYTE_ORDER}'") endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_OBJC_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/OBJCXX.cmake b/Tests/RunCMake/ABI/OBJCXX.cmake index de09a6a..41a719e 100644 --- a/Tests/RunCMake/ABI/OBJCXX.cmake +++ b/Tests/RunCMake/ABI/OBJCXX.cmake @@ -5,3 +5,9 @@ if(NOT CMAKE_OBJCXX_BYTE_ORDER MATCHES "^(BIG_ENDIAN|LITTLE_ENDIAN)$") endif() message(FATAL_ERROR "CMAKE_OBJCXX_BYTE_ORDER has unexpected value '${CMAKE_OBJCXX_BYTE_ORDER}'") endif() + +include(TestBigEndian) +test_big_endian(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN AND NOT CMAKE_OBJCXX_BYTE_ORDER STREQUAL "BIG_ENDIAN") + message(FATAL_ERROR "test_big_endian result does not match ABI result") +endif() diff --git a/Tests/RunCMake/ABI/RunCMakeTest.cmake b/Tests/RunCMake/ABI/RunCMakeTest.cmake index 883b849..d9eabb7 100644 --- a/Tests/RunCMake/ABI/RunCMakeTest.cmake +++ b/Tests/RunCMake/ABI/RunCMakeTest.cmake @@ -11,3 +11,5 @@ endif() if(CMake_TEST_CUDA) run_cmake(CUDA) endif() + +run_cmake(TestBigEndian-NoLang) diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt b/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt b/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt new file mode 100644 index 0000000..d0aa899 --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang-stderr.txt @@ -0,0 +1,8 @@ +^CMake Error at [^ +]*/Modules/TestBigEndian.cmake:[0-9]+ \(message\): + TEST_BIG_ENDIAN needs either C or CXX language enabled +Call Stack \(most recent call first\): + [^ +]*/Modules/TestBigEndian.cmake:[0-9]+ \(__TEST_BIG_ENDIAN_LEGACY_IMPL\) + TestBigEndian-NoLang.cmake:[0-9]+ \(test_big_endian\) + CMakeLists.txt:3 \(include\)$ diff --git a/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake b/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake new file mode 100644 index 0000000..8c10201 --- /dev/null +++ b/Tests/RunCMake/ABI/TestBigEndian-NoLang.cmake @@ -0,0 +1,2 @@ +include(TestBigEndian) +test_big_endian(var) |