From ad85e85a72c7ef69c59a7c1099620986fee6cbc4 Mon Sep 17 00:00:00 2001 From: Tim Ohliger Date: Wed, 1 Feb 2017 23:01:20 +0100 Subject: [PATCH 1/2] Added regex option in stop task to stop all matching domains. --- include/fast-lib/message/migfra/task.hpp | 3 +- src/message/migfra/task.cpp | 11 +++-- test/CMakeLists.txt | 8 ++-- test/task_test.cpp | 55 +++++++++++++----------- 4 files changed, 43 insertions(+), 34 deletions(-) diff --git a/include/fast-lib/message/migfra/task.hpp b/include/fast-lib/message/migfra/task.hpp index 50037ce..d084aea 100644 --- a/include/fast-lib/message/migfra/task.hpp +++ b/include/fast-lib/message/migfra/task.hpp @@ -144,7 +144,8 @@ struct Stop : YAML::Node emit() const override; void load(const YAML::Node &node) override; - std::string vm_name; + Optional vm_name; + Optional regex; Optional force; Optional undefine; }; diff --git a/src/message/migfra/task.cpp b/src/message/migfra/task.cpp index 93f7eed..19e830c 100644 --- a/src/message/migfra/task.cpp +++ b/src/message/migfra/task.cpp @@ -269,6 +269,8 @@ void Start::load(const YAML::Node &node) // Stop::Stop() : + vm_name("vm-name"), + regex("regex"), force("force"), undefine("undefine") { @@ -276,7 +278,8 @@ Stop::Stop() : Stop::Stop(std::string vm_name, bool force, bool undefine, bool concurrent_execution) : Task::Task(concurrent_execution), - vm_name(std::move(vm_name)), + vm_name("vm-name", std::move(vm_name)), + regex("regex"), force("force", force), undefine("undefine", undefine) { @@ -285,7 +288,8 @@ Stop::Stop(std::string vm_name, bool force, bool undefine, bool concurrent_execu YAML::Node Stop::emit() const { YAML::Node node = Task::emit(); - node["vm-name"] = vm_name; + merge_node(node, vm_name.emit()); + merge_node(node, regex.emit()); merge_node(node, force.emit()); merge_node(node, undefine.emit()); return node; @@ -294,7 +298,8 @@ YAML::Node Stop::emit() const void Stop::load(const YAML::Node &node) { Task::load(node); - fast::load(vm_name, node["vm-name"]); + vm_name.load(node); + regex.load(node); force.load(node); undefine.load(node); } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ca010a0..66e247b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -14,8 +14,8 @@ include_directories(SYSTEM "${FRUCTOSE_INCLUDE_DIR}") ######## set(FASTLIB_COMMUNICATION_TEST "fastlib_communication_test") -set(FASTLIB_TASK_TEST "fastlib_task_test") set(FASTLIB_OPTIONAL_TEST "fastlib_optional_test") +set(FASTLIB_TASK_TEST "fastlib_task_test") # Include directories include_directories(SYSTEM "${EXTERNAL_INCLUDES}") @@ -23,15 +23,15 @@ include_directories(SYSTEM "${EXTERNAL_INCLUDES}") ### Build and installation targets # Add executable add_executable(${FASTLIB_COMMUNICATION_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/communication.cpp) -add_executable(${FASTLIB_TASK_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/task_test.cpp) add_executable(${FASTLIB_OPTIONAL_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/optional_test.cpp) +add_executable(${FASTLIB_TASK_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/task_test.cpp) # Link libraries target_link_libraries(${FASTLIB_COMMUNICATION_TEST} ${FASTLIB} -lpthread) -target_link_libraries(${FASTLIB_TASK_TEST} ${FASTLIB} -lpthread) target_link_libraries(${FASTLIB_OPTIONAL_TEST} ${FASTLIB} -lpthread) +target_link_libraries(${FASTLIB_TASK_TEST} ${FASTLIB} -lpthread) # Add test add_test(communication ${FASTLIB_COMMUNICATION_TEST}) -add_test(task ${FASTLIB_TASK_TEST}) add_test(optional ${FASTLIB_OPTIONAL_TEST}) +add_test(task ${FASTLIB_TASK_TEST}) diff --git a/test/task_test.cpp b/test/task_test.cpp index 73a593f..50df3b8 100644 --- a/test/task_test.cpp +++ b/test/task_test.cpp @@ -18,8 +18,8 @@ struct Task_tester : auto buf = task1.to_string(); std::cout << "Serialized string: " << buf << std::endl; task2.from_string(buf); - fructose_assert(task2.concurrent_execution.is_valid()); - fructose_assert(task2.time_measurement.is_valid()); + fructose_assert(task2.concurrent_execution); + fructose_assert(task2.time_measurement); fructose_assert(task2.concurrent_execution == task1.concurrent_execution); fructose_assert(task2.time_measurement == task1.time_measurement); } @@ -32,8 +32,8 @@ struct Task_tester : auto buf = task1.to_string(); std::cout << "Serialized string: " << buf << std::endl; task2.from_string(buf); - fructose_assert(!task2.concurrent_execution.is_valid()); - fructose_assert(!task2.time_measurement.is_valid()); + fructose_assert(!task2.concurrent_execution); + fructose_assert(!task2.time_measurement); } void start1(const std::string &test_name) { @@ -44,24 +44,24 @@ struct Task_tester : start1.memory = 8 * 1024 * 1024; start1.pci_ids.emplace_back(0x15b3, 0x1004); // lookup emplace_back params start1.ivshmem = fast::msg::migfra::Device_ivshmem(); - start1.ivshmem.get().id = "test"; - start1.ivshmem.get().size = "512M"; + start1.ivshmem->id = "test"; + start1.ivshmem->size = "512M"; Start start2; auto buf = start1.to_string(); std::cout << "Serialized string: " << buf << std::endl; start2.from_string(buf); - fructose_assert(start2.vm_name.is_valid()); - fructose_assert(start2.vcpus.is_valid()); - fructose_assert(start2.memory.is_valid()); - fructose_assert(start2.ivshmem.is_valid()); + fructose_assert(start2.vm_name); + fructose_assert(start2.vcpus); + fructose_assert(start2.memory); + fructose_assert(start2.ivshmem); fructose_assert_eq(start2.pci_ids.size(), 1); - fructose_assert(!start2.xml.is_valid()); + fructose_assert(!start2.xml); fructose_assert(start2.vm_name == start1.vm_name); fructose_assert(start2.vcpus == start1.vcpus); fructose_assert(start2.memory == start1.memory); - fructose_assert(start2.ivshmem.get().id == start1.ivshmem.get().id); - fructose_assert(start2.ivshmem.get().size == start1.ivshmem.get().size); + fructose_assert(start2.ivshmem->id == start1.ivshmem->id); + fructose_assert(start2.ivshmem->size == start1.ivshmem->size); fructose_assert_eq(start2.pci_ids[0], start1.pci_ids[0]); } @@ -75,11 +75,11 @@ struct Task_tester : auto buf = start1.to_string(); std::cout << "Serialized string: " << buf << std::endl; start2.from_string(buf); - fructose_assert(!start2.vm_name.is_valid()); - fructose_assert(!start2.vcpus.is_valid()); - fructose_assert(!start2.memory.is_valid()); + fructose_assert(!start2.vm_name); + fructose_assert(!start2.vcpus); + fructose_assert(!start2.memory); fructose_assert_eq(start2.pci_ids.size(), 0); - fructose_assert(start2.xml.is_valid()); + fructose_assert(start2.xml); fructose_assert(start2.xml == start1.xml); } @@ -95,8 +95,8 @@ struct Task_tester : auto buf = stop1.to_string(); std::cout << "Serialized string: " << buf << std::endl; stop2.from_string(buf); - fructose_assert(stop2.force.is_valid()); - fructose_assert(stop2.undefine.is_valid()); + fructose_assert(stop2.force); + fructose_assert(stop2.undefine); fructose_assert_eq(stop2.vm_name, stop1.vm_name); fructose_assert(stop2.force == stop1.force); fructose_assert(stop2.undefine == stop1.undefine); @@ -106,14 +106,17 @@ struct Task_tester : { (void) test_name; Stop stop1; - stop1.vm_name = "vm1"; + stop1.regex = "vm\\d"; Stop stop2; auto buf = stop1.to_string(); std::cout << "Serialized string: " << buf << std::endl; stop2.from_string(buf); - fructose_assert(!stop2.force.is_valid()); - fructose_assert_eq(stop2.vm_name, stop1.vm_name); + fructose_assert(!stop2.force); + fructose_assert(!stop2.undefine); + fructose_assert(!stop2.vm_name); + fructose_assert(stop2.regex); + fructose_assert_eq(stop2.regex, stop1.regex); } void migrate(const std::string &test_name) @@ -131,10 +134,10 @@ struct Task_tester : auto buf = mig1.to_string(); std::cout << "Serialized string: " << buf << std::endl; mig2.from_string(buf); - fructose_assert(mig2.migration_type.is_valid()); - fructose_assert(mig2.rdma_migration.is_valid()); - fructose_assert(mig2.pscom_hook_procs.is_valid()); - fructose_assert(mig2.vcpu_map.is_valid()); + fructose_assert(mig2.migration_type); + fructose_assert(mig2.rdma_migration); + fructose_assert(mig2.pscom_hook_procs); + fructose_assert(mig2.vcpu_map); fructose_assert_eq(mig2.vm_name, mig1.vm_name); fructose_assert_eq(mig2.dest_hostname, mig1.dest_hostname); fructose_assert(mig2.migration_type == mig1.migration_type); From f8606146302b324a0cb841f8d373d6f5f6bd15a5 Mon Sep 17 00:00:00 2001 From: Tim Ohliger Date: Thu, 2 Feb 2017 00:04:46 +0100 Subject: [PATCH 2/2] Changed CMakeLists.txt to version 0.3.2 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db336b7..4ee205f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ set(FASTLIB "fastlib") # Define version number set(FASTLIB_VERSION_MAJOR "0") set(FASTLIB_VERSION_MINOR "3") -set(FASTLIB_VERSION_PATCH "1") +set(FASTLIB_VERSION_PATCH "2") set(FASTLIB_VERSION "${FASTLIB_VERSION_MAJOR}.${FASTLIB_VERSION_MINOR}.${FASTLIB_VERSION_PATCH}") # Check compiler version