summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-01-26 21:52:22 (GMT)
committerBrad King <brad.king@kitware.com>2023-01-28 11:30:08 (GMT)
commit9596305c0b78b1589703bcd4ace1e764e27dd630 (patch)
treefd30c158237bcdf03fa3ccb7af297f51d905f959 /Tests/RunCMake
parentc6dd4fa21d83f1dbbc4489de3a8a7fcd20e45c84 (diff)
downloadCMake-9596305c0b78b1589703bcd4ace1e764e27dd630.zip
CMake-9596305c0b78b1589703bcd4ace1e764e27dd630.tar.gz
CMake-9596305c0b78b1589703bcd4ace1e764e27dd630.tar.bz2
Tests: Generalize RunCMake.Ninja ShowIncludes test infrastructure
Prepare to add support for more languages.
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r--Tests/RunCMake/Ninja/RunCMakeTest.cmake4
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-check.cmake (renamed from Tests/RunCMake/Ninja/ShowIncludes-54936-check.cmake)0
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-stdout.txt (renamed from Tests/RunCMake/Ninja/ShowIncludes-65001-stdout.txt)0
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese.cmake (renamed from Tests/RunCMake/Ninja/ShowIncludes-54936.cmake)1
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-check.cmake (renamed from Tests/RunCMake/Ninja/ShowIncludes-65001-check.cmake)0
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-stdout.txt (renamed from Tests/RunCMake/Ninja/ShowIncludes-54936-stdout.txt)0
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese.cmake (renamed from Tests/RunCMake/Ninja/ShowIncludes-65001.cmake)1
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes-cmake.cmake4
-rw-r--r--Tests/RunCMake/Ninja/ShowIncludes.cmake2
-rw-r--r--Tests/RunCMake/showIncludes.c38
10 files changed, 35 insertions, 15 deletions
diff --git a/Tests/RunCMake/Ninja/RunCMakeTest.cmake b/Tests/RunCMake/Ninja/RunCMakeTest.cmake
index b94466c..73a9d15 100644
--- a/Tests/RunCMake/Ninja/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Ninja/RunCMakeTest.cmake
@@ -46,8 +46,8 @@ if(WIN32)
if(RunCMake_MAKE_PROGRAM)
set(maybe_MAKE_PROGRAM "-DRunCMake_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
endif()
- run_cmake_script(ShowIncludes-54936 -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
- run_cmake_script(ShowIncludes-65001 -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
+ run_cmake_script(ShowIncludes-54936-Chinese -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
+ run_cmake_script(ShowIncludes-65001-Chinese -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
unset(maybe_MAKE_PROGRAM)
endif()
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-54936-check.cmake b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-check.cmake
index c5744b7..c5744b7 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-54936-check.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-check.cmake
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-65001-stdout.txt b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-stdout.txt
index b9ac962..b9ac962 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-65001-stdout.txt
+++ b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese-stdout.txt
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-54936.cmake b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese.cmake
index 07b4192..77a4014 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-54936.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes-54936-Chinese.cmake
@@ -1,2 +1,3 @@
set(CODEPAGE 54936)
+set(VSLANG 2052)
include(${CMAKE_CURRENT_LIST_DIR}/ShowIncludes.cmake)
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-65001-check.cmake b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-check.cmake
index 6f61d3c..6f61d3c 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-65001-check.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-check.cmake
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-54936-stdout.txt b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-stdout.txt
index b9ac962..b9ac962 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-54936-stdout.txt
+++ b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese-stdout.txt
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-65001.cmake b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese.cmake
index 0eebd61..0e61c4a 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-65001.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes-65001-Chinese.cmake
@@ -1,2 +1,3 @@
set(CODEPAGE 65001)
+set(VSLANG 2052)
include(${CMAKE_CURRENT_LIST_DIR}/ShowIncludes.cmake)
diff --git a/Tests/RunCMake/Ninja/ShowIncludes-cmake.cmake b/Tests/RunCMake/Ninja/ShowIncludes-cmake.cmake
index 672a89f..5ed9970 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes-cmake.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes-cmake.cmake
@@ -1,6 +1,10 @@
# Set the console code page.
execute_process(COMMAND cmd /c chcp "${CODEPAGE}")
+if(VSLANG)
+ set(ENV{VSLANG} "${VSLANG}")
+endif()
+
if(RunCMake_MAKE_PROGRAM)
set(maybe_MAKE_PROGRAM "-DCMAKE_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
endif()
diff --git a/Tests/RunCMake/Ninja/ShowIncludes.cmake b/Tests/RunCMake/Ninja/ShowIncludes.cmake
index b9f89fe..a75c9bc 100644
--- a/Tests/RunCMake/Ninja/ShowIncludes.cmake
+++ b/Tests/RunCMake/Ninja/ShowIncludes.cmake
@@ -15,7 +15,7 @@ endif()
# Run cmake in a new Window to isolate its console code page.
execute_process(COMMAND cmd /c start /min /wait ""
- ${CMAKE_COMMAND} -DCODEPAGE=${CODEPAGE} ${maybe_MAKE_PROGRAM} -P ${CMAKE_CURRENT_LIST_DIR}/ShowIncludes-cmake.cmake)
+ ${CMAKE_COMMAND} -DCODEPAGE=${CODEPAGE} -DVSLANG=${VSLANG} ${maybe_MAKE_PROGRAM} -P ${CMAKE_CURRENT_LIST_DIR}/ShowIncludes-cmake.cmake)
# Print our internal UTF-8 representation of the showIncludes prefix.
file(READ "${CMAKE_CURRENT_BINARY_DIR}/showIncludes.txt" showIncludes_txt)
diff --git a/Tests/RunCMake/showIncludes.c b/Tests/RunCMake/showIncludes.c
index 82b1416..922254d 100644
--- a/Tests/RunCMake/showIncludes.c
+++ b/Tests/RunCMake/showIncludes.c
@@ -1,33 +1,47 @@
+#ifndef _CRT_SECURE_NO_WARNINGS
+# define _CRT_SECURE_NO_WARNINGS
+#endif
+
#if defined(_MSC_VER) && _MSC_VER >= 1928
# pragma warning(disable : 5105) /* macro expansion warning in windows.h */
#endif
#include <windows.h>
#include <stdio.h>
+#include <stdlib.h>
int main()
{
/* 'cl /showIncludes' encodes output in the console output code page. */
unsigned int cp = GetConsoleOutputCP();
+
+ /* 'cl /showIncludes' prints output in the VS language. */
+ const char* vslang = getenv("VSLANG");
+ if (!vslang) {
+ fprintf(stderr, "VSLANG is not set.\n");
+ return 1;
+ }
+
printf("Console output code page: %u\n", cp);
printf("Console input code page: %u\n", GetConsoleCP());
printf("ANSI code page: %u\n", GetACP());
printf("OEM code page: %u\n", GetOEMCP());
+ printf("VSLANG: %s\n", vslang);
- if (cp == 54936 || cp == 936) {
- /* VSLANG=2052 */
- printf("\xd7\xa2\xd2\xe2: "
- "\xb0\xfc\xba\xac\xce\xc4\xbc\xfe: C:\\foo.h\n");
- return 0;
- }
+ if (strcmp(vslang, "2052") == 0) {
+ if (cp == 54936 || cp == 936) {
+ printf("\xd7\xa2\xd2\xe2: "
+ "\xb0\xfc\xba\xac\xce\xc4\xbc\xfe: C:\\foo.h\n");
+ return 0;
+ }
- if (cp == 65001) {
- /* VSLANG=2052 */
- printf("\xe6\xb3\xa8\xe6\x84\x8f: "
- "\xe5\x8c\x85\xe5\x90\xab\xe6\x96\x87\xe4\xbb\xb6: C:\\foo.h\n");
- return 0;
+ if (cp == 65001) {
+ printf("\xe6\xb3\xa8\xe6\x84\x8f: "
+ "\xe5\x8c\x85\xe5\x90\xab\xe6\x96\x87\xe4\xbb\xb6: C:\\foo.h\n");
+ return 0;
+ }
}
- fprintf(stderr, "No example showIncludes for console's output code page.\n");
+ fprintf(stderr, "No example showIncludes for this code page and VSLANG.\n");
return 1;
}