diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2022-02-14 15:23:46 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-02-16 17:11:33 (GMT) |
commit | f73457ca2ecb7abe66050910d74a37f80d10de2e (patch) | |
tree | e629aff9fdbe7956852b94746d22c690ed21597c /Tests/RunCMake/CommandLine | |
parent | 67f97f54789413f47a0f03a36c3bb32518a2e922 (diff) | |
download | CMake-f73457ca2ecb7abe66050910d74a37f80d10de2e.zip CMake-f73457ca2ecb7abe66050910d74a37f80d10de2e.tar.gz CMake-f73457ca2ecb7abe66050910d74a37f80d10de2e.tar.bz2 |
cmake: Ignore any empty "" command line arguments
Don't treat empty quote arguments("") as the current working
directory but instead ignore them.
Fixes #23217
Diffstat (limited to 'Tests/RunCMake/CommandLine')
13 files changed, 23 insertions, 2 deletions
diff --git a/Tests/RunCMake/CommandLine/B-S-extra-path-stderr.txt b/Tests/RunCMake/CommandLine/B-S-extra-path-stderr.txt index 8794f74..e168a1b 100644 --- a/Tests/RunCMake/CommandLine/B-S-extra-path-stderr.txt +++ b/Tests/RunCMake/CommandLine/B-S-extra-path-stderr.txt @@ -1,4 +1,4 @@ ^CMake Warning: Ignoring extra path from command line: - /extra/path/$ + "/extra/path/"$ diff --git a/Tests/RunCMake/CommandLine/B-no-arg3-result.txt b/Tests/RunCMake/CommandLine/B-no-arg3-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/B-no-arg3-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/B-no-arg3-stderr.txt b/Tests/RunCMake/CommandLine/B-no-arg3-stderr.txt new file mode 100644 index 0000000..cf63fdd --- /dev/null +++ b/Tests/RunCMake/CommandLine/B-no-arg3-stderr.txt @@ -0,0 +1 @@ +^CMake Error: No build directory specified for -B diff --git a/Tests/RunCMake/CommandLine/C-no-arg2-result.txt b/Tests/RunCMake/CommandLine/C-no-arg2-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/C-no-arg2-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/C-no-arg2-stderr.txt b/Tests/RunCMake/CommandLine/C-no-arg2-stderr.txt new file mode 100644 index 0000000..5992dcd --- /dev/null +++ b/Tests/RunCMake/CommandLine/C-no-arg2-stderr.txt @@ -0,0 +1,2 @@ +^CMake Error: -C must be followed by a file name. +CMake Error: Run 'cmake --help' for all supported options.$ diff --git a/Tests/RunCMake/CommandLine/C-no-arg3-result.txt b/Tests/RunCMake/CommandLine/C-no-arg3-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/C-no-arg3-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/C-no-arg3-stderr.txt b/Tests/RunCMake/CommandLine/C-no-arg3-stderr.txt new file mode 100644 index 0000000..e80d89f --- /dev/null +++ b/Tests/RunCMake/CommandLine/C-no-arg3-stderr.txt @@ -0,0 +1 @@ +^CMake Error: No file name specified for -C diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index 033fbe6..5944d2d 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -7,6 +7,10 @@ run_cmake_command(InvalidArg1 ${CMAKE_COMMAND} -invalid) run_cmake_command(InvalidArg2 ${CMAKE_COMMAND} --invalid) run_cmake_command(Wizard ${CMAKE_COMMAND} -i) run_cmake_command(C-no-arg ${CMAKE_COMMAND} -B DummyBuildDir -C) +run_cmake_command(C-no-arg2 ${CMAKE_COMMAND} -B DummyBuildDir -C -T) +set(RunCMake_TEST_RAW_ARGS [[-C ""]]) +run_cmake_command(C-no-arg3 ${CMAKE_COMMAND} -B DummyBuildDir) +unset(RunCMake_TEST_RAW_ARGS) run_cmake_command(C-no-file ${CMAKE_COMMAND} -B DummyBuildDir -C nosuchcachefile.txt) run_cmake_command(Cno-file ${CMAKE_COMMAND} -B DummyBuildDir -Cnosuchcachefile.txt) run_cmake_command(cache-no-file ${CMAKE_COMMAND} nosuchsubdir/CMakeCache.txt) @@ -158,8 +162,11 @@ endif() run_cmake_with_options(S-arg-reverse-order ${binary_dir} -S${source_dir} ) run_cmake_with_options(S-no-arg -S ) run_cmake_with_options(S-no-arg2 -S -T) + run_cmake_with_raw_args(S-no-arg3 [[-S ""]]) run_cmake_with_options(S-B -S ${source_dir} -B ${binary_dir}) run_cmake_with_options(S-B-extra-path -S ${source_dir} -B ${binary_dir} /extra/path/) + run_cmake_with_raw_args(S-B-non-path "-S \"${source_dir}\" -B \"${binary_dir}\" \"\"") + run_cmake_with_raw_args(S-B-non-path2 "-S \"${source_dir}\" \"\" -B \"${binary_dir}\"") # make sure that -B can explicitly construct build directories file(REMOVE_RECURSE "${binary_dir}") @@ -168,6 +175,7 @@ endif() run_cmake_with_options(B-arg-reverse-order ${source_dir} -B${binary_dir}) run_cmake_with_options(B-no-arg -B ) run_cmake_with_options(B-no-arg2 -B -T) + run_cmake_with_raw_args(B-no-arg3 [[-B ""]]) file(REMOVE_RECURSE "${binary_dir}") run_cmake_with_options(B-S -B${binary_dir} -S${source_dir}) run_cmake_with_options(B-S-extra-path -B${binary_dir} -S${source_dir} /extra/path/) diff --git a/Tests/RunCMake/CommandLine/S-B-extra-path-stderr.txt b/Tests/RunCMake/CommandLine/S-B-extra-path-stderr.txt index 8794f74..e168a1b 100644 --- a/Tests/RunCMake/CommandLine/S-B-extra-path-stderr.txt +++ b/Tests/RunCMake/CommandLine/S-B-extra-path-stderr.txt @@ -1,4 +1,4 @@ ^CMake Warning: Ignoring extra path from command line: - /extra/path/$ + "/extra/path/"$ diff --git a/Tests/RunCMake/CommandLine/S-B-non-path-stderr.txt b/Tests/RunCMake/CommandLine/S-B-non-path-stderr.txt new file mode 100644 index 0000000..6fa4341 --- /dev/null +++ b/Tests/RunCMake/CommandLine/S-B-non-path-stderr.txt @@ -0,0 +1,2 @@ +^CMake Warning: + Ignoring empty string \(""\) provided on the command line\.$ diff --git a/Tests/RunCMake/CommandLine/S-B-non-path2-stderr.txt b/Tests/RunCMake/CommandLine/S-B-non-path2-stderr.txt new file mode 100644 index 0000000..6fa4341 --- /dev/null +++ b/Tests/RunCMake/CommandLine/S-B-non-path2-stderr.txt @@ -0,0 +1,2 @@ +^CMake Warning: + Ignoring empty string \(""\) provided on the command line\.$ diff --git a/Tests/RunCMake/CommandLine/S-no-arg3-result.txt b/Tests/RunCMake/CommandLine/S-no-arg3-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/S-no-arg3-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/S-no-arg3-stderr.txt b/Tests/RunCMake/CommandLine/S-no-arg3-stderr.txt new file mode 100644 index 0000000..d4fe65e --- /dev/null +++ b/Tests/RunCMake/CommandLine/S-no-arg3-stderr.txt @@ -0,0 +1 @@ +^CMake Error: No source directory specified for -S |