Commit 56a77f3a13ff8b32703756585760c890392950f0
1 parent
2e35cebd
Pair of virtual serial ports are now being created by unit test executable.
Showing
2 changed files
with
27 additions
and
11 deletions
test/unit/CMakeLists.txt
| ... | ... | @@ -17,7 +17,9 @@ file(GLOB_RECURSE CppLinuxSerialUnitTests_SRC |
| 17 | 17 | "*.cpp" |
| 18 | 18 | "*.hpp") |
| 19 | 19 | |
| 20 | -add_executable(CppLinuxSerialUnitTests ${CppLinuxSerialUnitTests_SRC}) | |
| 20 | + | |
| 21 | + | |
| 22 | +add_executable(CppLinuxSerialUnitTests ${CppLinuxSerialUnitTests_SRC} "run.sh") | |
| 21 | 23 | |
| 22 | 24 | target_link_libraries(CppLinuxSerialUnitTests LINK_PUBLIC CppLinuxSerial ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) |
| 23 | 25 | |
| ... | ... | @@ -30,4 +32,10 @@ add_custom_target( |
| 30 | 32 | |
| 31 | 33 | add_custom_command( |
| 32 | 34 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/CppLinuxSerialUnitTests.touch |
| 33 | - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CppLinuxSerialUnitTests) | |
| 34 | 35 | \ No newline at end of file |
| 36 | + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CppLinuxSerialUnitTests) | |
| 37 | + | |
| 38 | +add_custom_command(TARGET CppLinuxSerialUnitTests POST_BUILD | |
| 39 | + COMMAND ${CMAKE_COMMAND} -E copy_if_different | |
| 40 | + ${CMAKE_CURRENT_SOURCE_DIR}/run.sh | |
| 41 | + $<TARGET_FILE_DIR:CppLinuxSerialUnitTests> | |
| 42 | + ) | |
| 35 | 43 | \ No newline at end of file | ... | ... |
test/unit/TestUtil.hpp
| ... | ... | @@ -136,19 +136,27 @@ namespace mn { |
| 136 | 136 | |
| 137 | 137 | void CreateVirtualSerialPortPair() { |
| 138 | 138 | std::cout << "Creating virtual serial port pair..." << std::endl; |
| 139 | - StartProcess("sudo socat -d -d pty,raw,echo=0,link=/dev/ttyS10 pty,raw,echo=0,link=/dev/ttyS11"); | |
| 139 | +// StartProcess("sudo socat -d -d pty,raw,echo=0,link=/dev/ttyS10 pty,raw,echo=0,link=/dev/ttyS11"); | |
| 140 | +// std::this_thread::sleep_for(1s); | |
| 141 | +// StartProcess("sudo chmod a+rw /dev/ttyS10"); | |
| 142 | +// StartProcess("sudo chmod a+rw /dev/ttyS11"); | |
| 143 | +// std::this_thread::sleep_for(1s); | |
| 144 | +// std::cout << "Finished creating virtual serial port pair." << std::endl; | |
| 145 | +// std::system("./run.sh"); | |
| 146 | + std::system("nohup sudo socat -d -d pty,raw,echo=0,link=/dev/ttyS10 pty,raw,echo=0,link=/dev/ttyS11 &"); | |
| 140 | 147 | std::this_thread::sleep_for(1s); |
| 141 | - StartProcess("sudo chmod a+rw /dev/ttyS10"); | |
| 142 | - StartProcess("sudo chmod a+rw /dev/ttyS11"); | |
| 143 | - std::this_thread::sleep_for(1s); | |
| 144 | - std::cout << "Finished creating virtual serial port pair." << std::endl; | |
| 148 | + std::system("sudo chmod a+rw /dev/ttyS10"); | |
| 149 | + std::system("sudo chmod a+rw /dev/ttyS11"); | |
| 145 | 150 | } |
| 146 | 151 | |
| 147 | 152 | void CloseSerialPorts() { |
| 148 | - for(const auto& filePointer : processes_) { | |
| 149 | - kill(filePointer.pid, SIGKILL); | |
| 150 | - pclose2(filePointer.fp, filePointer.pid); | |
| 151 | - } | |
| 153 | +// for(const auto& filePointer : processes_) { | |
| 154 | +// std::cout << "Sending SIGINT..." << std::endl; | |
| 155 | +// kill(filePointer.pid, SIGINT); | |
| 156 | +// std::cout << "Calling pclose2()..." << std::endl; | |
| 157 | +// pclose2(filePointer.fp, filePointer.pid); | |
| 158 | +// } | |
| 159 | + std::system("sudo pkill socat"); | |
| 152 | 160 | } |
| 153 | 161 | |
| 154 | 162 | std::vector<ProcessInfo> processes_; | ... | ... |