Skip to content

Commit 1558268

Browse files
authored
Merge pull request #55 from timohl/master
Added regex option in stop task to stop all matching domains.
2 parents beb1768 + f860614 commit 1558268

File tree

5 files changed

+44
-35
lines changed

5 files changed

+44
-35
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ set(FASTLIB "fastlib")
4444
# Define version number
4545
set(FASTLIB_VERSION_MAJOR "0")
4646
set(FASTLIB_VERSION_MINOR "3")
47-
set(FASTLIB_VERSION_PATCH "1")
47+
set(FASTLIB_VERSION_PATCH "2")
4848
set(FASTLIB_VERSION "${FASTLIB_VERSION_MAJOR}.${FASTLIB_VERSION_MINOR}.${FASTLIB_VERSION_PATCH}")
4949

5050
# Check compiler version

include/fast-lib/message/migfra/task.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ struct Stop :
144144
YAML::Node emit() const override;
145145
void load(const YAML::Node &node) override;
146146

147-
std::string vm_name;
147+
Optional<std::string> vm_name;
148+
Optional<std::string> regex;
148149
Optional<bool> force;
149150
Optional<bool> undefine;
150151
};

src/message/migfra/task.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,14 +269,17 @@ void Start::load(const YAML::Node &node)
269269
//
270270

271271
Stop::Stop() :
272+
vm_name("vm-name"),
273+
regex("regex"),
272274
force("force"),
273275
undefine("undefine")
274276
{
275277
}
276278

277279
Stop::Stop(std::string vm_name, bool force, bool undefine, bool concurrent_execution) :
278280
Task::Task(concurrent_execution),
279-
vm_name(std::move(vm_name)),
281+
vm_name("vm-name", std::move(vm_name)),
282+
regex("regex"),
280283
force("force", force),
281284
undefine("undefine", undefine)
282285
{
@@ -285,7 +288,8 @@ Stop::Stop(std::string vm_name, bool force, bool undefine, bool concurrent_execu
285288
YAML::Node Stop::emit() const
286289
{
287290
YAML::Node node = Task::emit();
288-
node["vm-name"] = vm_name;
291+
merge_node(node, vm_name.emit());
292+
merge_node(node, regex.emit());
289293
merge_node(node, force.emit());
290294
merge_node(node, undefine.emit());
291295
return node;
@@ -294,7 +298,8 @@ YAML::Node Stop::emit() const
294298
void Stop::load(const YAML::Node &node)
295299
{
296300
Task::load(node);
297-
fast::load(vm_name, node["vm-name"]);
301+
vm_name.load(node);
302+
regex.load(node);
298303
force.load(node);
299304
undefine.load(node);
300305
}

test/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@ include_directories(SYSTEM "${FRUCTOSE_INCLUDE_DIR}")
1414
########
1515

1616
set(FASTLIB_COMMUNICATION_TEST "fastlib_communication_test")
17-
set(FASTLIB_TASK_TEST "fastlib_task_test")
1817
set(FASTLIB_OPTIONAL_TEST "fastlib_optional_test")
18+
set(FASTLIB_TASK_TEST "fastlib_task_test")
1919

2020
# Include directories
2121
include_directories(SYSTEM "${EXTERNAL_INCLUDES}")
2222

2323
### Build and installation targets
2424
# Add executable
2525
add_executable(${FASTLIB_COMMUNICATION_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/communication.cpp)
26-
add_executable(${FASTLIB_TASK_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/task_test.cpp)
2726
add_executable(${FASTLIB_OPTIONAL_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/optional_test.cpp)
27+
add_executable(${FASTLIB_TASK_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/task_test.cpp)
2828

2929
# Link libraries
3030
target_link_libraries(${FASTLIB_COMMUNICATION_TEST} ${FASTLIB} -lpthread)
31-
target_link_libraries(${FASTLIB_TASK_TEST} ${FASTLIB} -lpthread)
3231
target_link_libraries(${FASTLIB_OPTIONAL_TEST} ${FASTLIB} -lpthread)
32+
target_link_libraries(${FASTLIB_TASK_TEST} ${FASTLIB} -lpthread)
3333

3434
# Add test
3535
add_test(communication ${FASTLIB_COMMUNICATION_TEST})
36-
add_test(task ${FASTLIB_TASK_TEST})
3736
add_test(optional ${FASTLIB_OPTIONAL_TEST})
37+
add_test(task ${FASTLIB_TASK_TEST})

test/task_test.cpp

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ struct Task_tester :
1818
auto buf = task1.to_string();
1919
std::cout << "Serialized string: " << buf << std::endl;
2020
task2.from_string(buf);
21-
fructose_assert(task2.concurrent_execution.is_valid());
22-
fructose_assert(task2.time_measurement.is_valid());
21+
fructose_assert(task2.concurrent_execution);
22+
fructose_assert(task2.time_measurement);
2323
fructose_assert(task2.concurrent_execution == task1.concurrent_execution);
2424
fructose_assert(task2.time_measurement == task1.time_measurement);
2525
}
@@ -32,8 +32,8 @@ struct Task_tester :
3232
auto buf = task1.to_string();
3333
std::cout << "Serialized string: " << buf << std::endl;
3434
task2.from_string(buf);
35-
fructose_assert(!task2.concurrent_execution.is_valid());
36-
fructose_assert(!task2.time_measurement.is_valid());
35+
fructose_assert(!task2.concurrent_execution);
36+
fructose_assert(!task2.time_measurement);
3737
}
3838
void start1(const std::string &test_name)
3939
{
@@ -44,24 +44,24 @@ struct Task_tester :
4444
start1.memory = 8 * 1024 * 1024;
4545
start1.pci_ids.emplace_back(0x15b3, 0x1004); // lookup emplace_back params
4646
start1.ivshmem = fast::msg::migfra::Device_ivshmem();
47-
start1.ivshmem.get().id = "test";
48-
start1.ivshmem.get().size = "512M";
47+
start1.ivshmem->id = "test";
48+
start1.ivshmem->size = "512M";
4949

5050
Start start2;
5151
auto buf = start1.to_string();
5252
std::cout << "Serialized string: " << buf << std::endl;
5353
start2.from_string(buf);
54-
fructose_assert(start2.vm_name.is_valid());
55-
fructose_assert(start2.vcpus.is_valid());
56-
fructose_assert(start2.memory.is_valid());
57-
fructose_assert(start2.ivshmem.is_valid());
54+
fructose_assert(start2.vm_name);
55+
fructose_assert(start2.vcpus);
56+
fructose_assert(start2.memory);
57+
fructose_assert(start2.ivshmem);
5858
fructose_assert_eq(start2.pci_ids.size(), 1);
59-
fructose_assert(!start2.xml.is_valid());
59+
fructose_assert(!start2.xml);
6060
fructose_assert(start2.vm_name == start1.vm_name);
6161
fructose_assert(start2.vcpus == start1.vcpus);
6262
fructose_assert(start2.memory == start1.memory);
63-
fructose_assert(start2.ivshmem.get().id == start1.ivshmem.get().id);
64-
fructose_assert(start2.ivshmem.get().size == start1.ivshmem.get().size);
63+
fructose_assert(start2.ivshmem->id == start1.ivshmem->id);
64+
fructose_assert(start2.ivshmem->size == start1.ivshmem->size);
6565
fructose_assert_eq(start2.pci_ids[0], start1.pci_ids[0]);
6666
}
6767

@@ -75,11 +75,11 @@ struct Task_tester :
7575
auto buf = start1.to_string();
7676
std::cout << "Serialized string: " << buf << std::endl;
7777
start2.from_string(buf);
78-
fructose_assert(!start2.vm_name.is_valid());
79-
fructose_assert(!start2.vcpus.is_valid());
80-
fructose_assert(!start2.memory.is_valid());
78+
fructose_assert(!start2.vm_name);
79+
fructose_assert(!start2.vcpus);
80+
fructose_assert(!start2.memory);
8181
fructose_assert_eq(start2.pci_ids.size(), 0);
82-
fructose_assert(start2.xml.is_valid());
82+
fructose_assert(start2.xml);
8383
fructose_assert(start2.xml == start1.xml);
8484
}
8585

@@ -95,8 +95,8 @@ struct Task_tester :
9595
auto buf = stop1.to_string();
9696
std::cout << "Serialized string: " << buf << std::endl;
9797
stop2.from_string(buf);
98-
fructose_assert(stop2.force.is_valid());
99-
fructose_assert(stop2.undefine.is_valid());
98+
fructose_assert(stop2.force);
99+
fructose_assert(stop2.undefine);
100100
fructose_assert_eq(stop2.vm_name, stop1.vm_name);
101101
fructose_assert(stop2.force == stop1.force);
102102
fructose_assert(stop2.undefine == stop1.undefine);
@@ -106,14 +106,17 @@ struct Task_tester :
106106
{
107107
(void) test_name;
108108
Stop stop1;
109-
stop1.vm_name = "vm1";
109+
stop1.regex = "vm\\d";
110110

111111
Stop stop2;
112112
auto buf = stop1.to_string();
113113
std::cout << "Serialized string: " << buf << std::endl;
114114
stop2.from_string(buf);
115-
fructose_assert(!stop2.force.is_valid());
116-
fructose_assert_eq(stop2.vm_name, stop1.vm_name);
115+
fructose_assert(!stop2.force);
116+
fructose_assert(!stop2.undefine);
117+
fructose_assert(!stop2.vm_name);
118+
fructose_assert(stop2.regex);
119+
fructose_assert_eq(stop2.regex, stop1.regex);
117120
}
118121

119122
void migrate(const std::string &test_name)
@@ -131,10 +134,10 @@ struct Task_tester :
131134
auto buf = mig1.to_string();
132135
std::cout << "Serialized string: " << buf << std::endl;
133136
mig2.from_string(buf);
134-
fructose_assert(mig2.migration_type.is_valid());
135-
fructose_assert(mig2.rdma_migration.is_valid());
136-
fructose_assert(mig2.pscom_hook_procs.is_valid());
137-
fructose_assert(mig2.vcpu_map.is_valid());
137+
fructose_assert(mig2.migration_type);
138+
fructose_assert(mig2.rdma_migration);
139+
fructose_assert(mig2.pscom_hook_procs);
140+
fructose_assert(mig2.vcpu_map);
138141
fructose_assert_eq(mig2.vm_name, mig1.vm_name);
139142
fructose_assert_eq(mig2.dest_hostname, mig1.dest_hostname);
140143
fructose_assert(mig2.migration_type == mig1.migration_type);

0 commit comments

Comments
 (0)