mirror of
https://github.com/reactos/CMake.git
synced 2024-12-05 10:16:50 +00:00
Merge branch 'list-empty-error' into enhance-include_external_msproject
Resolve conflict in Tests/RunCMake/CMakeLists.txt by adding both tests.
This commit is contained in:
commit
8787f946b7
@ -204,6 +204,12 @@ bool cmListCommand::HandleGetCommand(std::vector<std::string> const& args)
|
|||||||
this->Makefile->AddDefinition(variableName.c_str(), "NOTFOUND");
|
this->Makefile->AddDefinition(variableName.c_str(), "NOTFOUND");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// FIXME: Add policy to make non-existing lists an error like empty lists.
|
||||||
|
if(varArgsExpanded.empty())
|
||||||
|
{
|
||||||
|
this->SetError("GET given empty list");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
std::string value;
|
std::string value;
|
||||||
size_t cc;
|
size_t cc;
|
||||||
@ -318,7 +324,8 @@ bool cmListCommand::HandleInsertCommand(std::vector<std::string> const& args)
|
|||||||
// expand the variable
|
// expand the variable
|
||||||
int item = atoi(args[2].c_str());
|
int item = atoi(args[2].c_str());
|
||||||
std::vector<std::string> varArgsExpanded;
|
std::vector<std::string> varArgsExpanded;
|
||||||
if ( !this->GetList(varArgsExpanded, listName.c_str()) && item != 0)
|
if((!this->GetList(varArgsExpanded, listName.c_str())
|
||||||
|
|| varArgsExpanded.empty()) && item != 0)
|
||||||
{
|
{
|
||||||
cmOStringStream str;
|
cmOStringStream str;
|
||||||
str << "index: " << item << " out of range (0, 0)";
|
str << "index: " << item << " out of range (0, 0)";
|
||||||
@ -544,6 +551,12 @@ bool cmListCommand::HandleRemoveAtCommand(
|
|||||||
this->SetError("sub-command REMOVE_AT requires list to be present.");
|
this->SetError("sub-command REMOVE_AT requires list to be present.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// FIXME: Add policy to make non-existing lists an error like empty lists.
|
||||||
|
if(varArgsExpanded.empty())
|
||||||
|
{
|
||||||
|
this->SetError("REMOVE_AT given empty list");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
size_t cc;
|
size_t cc;
|
||||||
std::vector<size_t> removed;
|
std::vector<size_t> removed;
|
||||||
|
@ -49,6 +49,7 @@ add_RunCMake_test(ObjectLibrary)
|
|||||||
|
|
||||||
add_RunCMake_test(build_command)
|
add_RunCMake_test(build_command)
|
||||||
add_RunCMake_test(find_package)
|
add_RunCMake_test(find_package)
|
||||||
|
add_RunCMake_test(list)
|
||||||
|
|
||||||
if("${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio [^6]")
|
if("${CMAKE_TEST_GENERATOR}" MATCHES "Visual Studio [^6]")
|
||||||
add_RunCMake_test(include_external_msproject)
|
add_RunCMake_test(include_external_msproject)
|
||||||
|
3
Tests/RunCMake/list/CMakeLists.txt
Normal file
3
Tests/RunCMake/list/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
project(${RunCMake_TEST} NONE)
|
||||||
|
include(${RunCMake_TEST}.cmake)
|
1
Tests/RunCMake/list/EmptyGet0-result.txt
Normal file
1
Tests/RunCMake/list/EmptyGet0-result.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
4
Tests/RunCMake/list/EmptyGet0-stderr.txt
Normal file
4
Tests/RunCMake/list/EmptyGet0-stderr.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
CMake Error at EmptyGet0.cmake:2 \(list\):
|
||||||
|
list GET given empty list
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:3 \(include\)$
|
2
Tests/RunCMake/list/EmptyGet0.cmake
Normal file
2
Tests/RunCMake/list/EmptyGet0.cmake
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
set(mylist "")
|
||||||
|
list(GET mylist 0 result)
|
1
Tests/RunCMake/list/EmptyInsert-1-result.txt
Normal file
1
Tests/RunCMake/list/EmptyInsert-1-result.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
4
Tests/RunCMake/list/EmptyInsert-1-stderr.txt
Normal file
4
Tests/RunCMake/list/EmptyInsert-1-stderr.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
CMake Error at EmptyInsert-1.cmake:2 \(list\):
|
||||||
|
list index: -1 out of range \(0, 0\)
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:3 \(include\)$
|
2
Tests/RunCMake/list/EmptyInsert-1.cmake
Normal file
2
Tests/RunCMake/list/EmptyInsert-1.cmake
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
set(mylist "")
|
||||||
|
list(INSERT mylist -1 x)
|
1
Tests/RunCMake/list/EmptyRemoveAt0-result.txt
Normal file
1
Tests/RunCMake/list/EmptyRemoveAt0-result.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
4
Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt
Normal file
4
Tests/RunCMake/list/EmptyRemoveAt0-stderr.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
CMake Error at EmptyRemoveAt0.cmake:2 \(list\):
|
||||||
|
list REMOVE_AT given empty list
|
||||||
|
Call Stack \(most recent call first\):
|
||||||
|
CMakeLists.txt:3 \(include\)$
|
2
Tests/RunCMake/list/EmptyRemoveAt0.cmake
Normal file
2
Tests/RunCMake/list/EmptyRemoveAt0.cmake
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
set(mylist "")
|
||||||
|
list(REMOVE_AT mylist 0)
|
5
Tests/RunCMake/list/RunCMakeTest.cmake
Normal file
5
Tests/RunCMake/list/RunCMakeTest.cmake
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
include(RunCMake)
|
||||||
|
|
||||||
|
run_cmake(EmptyGet0)
|
||||||
|
run_cmake(EmptyRemoveAt0)
|
||||||
|
run_cmake(EmptyInsert-1)
|
Loading…
Reference in New Issue
Block a user