This commit reorganizes the ivshmem-test qtest by moving common structs,
functions, and code that can be utilized by other ivshmem qtests into
two new files: ivshmem-utils.h and ivshmem-utils.c.
Enum Reg, struct ServerThread, and mktempshm() have been relocated to
these new files. Two new functions have been introduced to handle the
ivshmem server start/stop: test_ivshmem_server_{start,stop}.
To accommodate the new way for starting/stopping the ivshmem server,
struct ServerThread now includes two new members: 'server', previously
present but not a member of any struct; and 'status', a new member of a
new type, ServerStartStatus, used to track and handle service
termination properly.
Additionally, a new function, mktempsocket(), has been added to help
create a unix socket filename, similar to what mktempshm() does for the
creation of a shm file.
Finally, the ivshmem-test qtest has been adapted to use the new ivhsmem
utils. Adjustments in that sense have also been made to meson.build;
also 'rt' have been removed as a lib dependency for ivhsmem-test.c.
Two lines unrelated to these changes have had their line indentation
also fixed in meson.build.
Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
---
tests/qtest/ivshmem-test.c | 113 ++------------------------
tests/qtest/ivshmem-utils.c | 155 ++++++++++++++++++++++++++++++++++++
tests/qtest/ivshmem-utils.h | 56 +++++++++++++
tests/qtest/meson.build | 6 +-
4 files changed, 221 insertions(+), 109 deletions(-)
create mode 100644 tests/qtest/ivshmem-utils.c
create mode 100644 tests/qtest/ivshmem-utils.h