mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
Merge remote-tracking branch 'bpodrygajlo/test_vrtsim_stability' into integration_2026_w26
fix: Make test_vrtsim stable (#241) Ensure all resources used by test_vrtsim are unique so that there is no overlap, which might cause an issue in CI. Reviewed-by: Robert Schmidt <robert.schmidt@openairinterface.org>
This commit is contained in:
@@ -44,16 +44,26 @@ class VRTSIMTest : public ::testing::TestWithParam<VRTSIMTestCase> {
|
|||||||
openair0_device_t client_device = {0};
|
openair0_device_t client_device = {0};
|
||||||
openair0_config_t server_config = {0};
|
openair0_config_t server_config = {0};
|
||||||
openair0_config_t client_config = {0};
|
openair0_config_t client_config = {0};
|
||||||
|
std::string socket_path;
|
||||||
|
std::string shm_name;
|
||||||
|
|
||||||
void SetUp() override
|
void SetUp() override
|
||||||
{
|
{
|
||||||
const auto ¶m = GetParam();
|
const auto ¶m = GetParam();
|
||||||
|
|
||||||
|
std::string unique_suffix = std::to_string(getpid()) + "_" + std::to_string(rand());
|
||||||
|
socket_path = "/tmp/vrtsim_connection_" + unique_suffix;
|
||||||
|
shm_name = "vrtsim_channel_" + unique_suffix;
|
||||||
|
|
||||||
// Setup server
|
// Setup server
|
||||||
std::vector<const char *> server_argv = {"--vrtsim.role",
|
std::vector<const char *> server_argv = {"--vrtsim.role",
|
||||||
"server",
|
"server",
|
||||||
"--vrtsim.disable-timing-thread",
|
"--vrtsim.disable-timing-thread",
|
||||||
"1",
|
"1",
|
||||||
|
"--vrtsim.connection_descriptor",
|
||||||
|
socket_path.c_str(),
|
||||||
|
"--vrtsim.shm_channel_name",
|
||||||
|
shm_name.c_str(),
|
||||||
"--vrtsim.ue_config.[0].antennas",
|
"--vrtsim.ue_config.[0].antennas",
|
||||||
param.ue_antennas.c_str()};
|
param.ue_antennas.c_str()};
|
||||||
cfg1 = load_configmodule(server_argv.size(), (char **)server_argv.data(), CONFIG_ENABLECMDLINEONLY);
|
cfg1 = load_configmodule(server_argv.size(), (char **)server_argv.data(), CONFIG_ENABLECMDLINEONLY);
|
||||||
@@ -65,7 +75,12 @@ class VRTSIMTest : public ::testing::TestWithParam<VRTSIMTestCase> {
|
|||||||
ASSERT_EQ(server_device.trx_start_func(&server_device), 0);
|
ASSERT_EQ(server_device.trx_start_func(&server_device), 0);
|
||||||
|
|
||||||
// Setup client
|
// Setup client
|
||||||
std::vector<const char *> client_argv = {"--vrtsim.role", "client"};
|
std::vector<const char *> client_argv = {"--vrtsim.role",
|
||||||
|
"client",
|
||||||
|
"--vrtsim.connection_descriptor",
|
||||||
|
socket_path.c_str(),
|
||||||
|
"--vrtsim.shm_channel_name",
|
||||||
|
shm_name.c_str()};
|
||||||
cfg2 = load_configmodule(client_argv.size(), (char **)client_argv.data(), CONFIG_ENABLECMDLINEONLY);
|
cfg2 = load_configmodule(client_argv.size(), (char **)client_argv.data(), CONFIG_ENABLECMDLINEONLY);
|
||||||
uniqCfg = cfg2;
|
uniqCfg = cfg2;
|
||||||
client_config.tx_num_channels = param.client_tx;
|
client_config.tx_num_channels = param.client_tx;
|
||||||
@@ -85,6 +100,7 @@ class VRTSIMTest : public ::testing::TestWithParam<VRTSIMTestCase> {
|
|||||||
end_configmodule(cfg1);
|
end_configmodule(cfg1);
|
||||||
if (cfg2)
|
if (cfg2)
|
||||||
end_configmodule(cfg2);
|
end_configmodule(cfg2);
|
||||||
|
uniqCfg = nullptr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -180,17 +196,27 @@ class VRTSIMMultiUETest : public ::testing::TestWithParam<VRTSIMMultiTestCase> {
|
|||||||
std::vector<openair0_device_t> client_devices;
|
std::vector<openair0_device_t> client_devices;
|
||||||
openair0_config_t server_config = {0};
|
openair0_config_t server_config = {0};
|
||||||
std::vector<openair0_config_t> client_configs;
|
std::vector<openair0_config_t> client_configs;
|
||||||
|
std::string socket_path;
|
||||||
|
std::string shm_name;
|
||||||
|
|
||||||
void SetUp() override
|
void SetUp() override
|
||||||
{
|
{
|
||||||
const auto ¶m = GetParam();
|
const auto ¶m = GetParam();
|
||||||
|
|
||||||
|
std::string unique_suffix = std::to_string(getpid()) + "_" + std::to_string(rand());
|
||||||
|
socket_path = "/tmp/vrtsim_connection_" + unique_suffix;
|
||||||
|
shm_name = "vrtsim_channel_" + unique_suffix;
|
||||||
|
|
||||||
// Setup server
|
// Setup server
|
||||||
std::vector<std::string> server_args_store = {"test_vrtsim",
|
std::vector<std::string> server_args_store = {"test_vrtsim",
|
||||||
"--vrtsim.role",
|
"--vrtsim.role",
|
||||||
"server",
|
"server",
|
||||||
"--vrtsim.disable-timing-thread",
|
"--vrtsim.disable-timing-thread",
|
||||||
"1",
|
"1",
|
||||||
|
"--vrtsim.connection_descriptor",
|
||||||
|
socket_path,
|
||||||
|
"--vrtsim.shm_channel_name",
|
||||||
|
shm_name,
|
||||||
"--vrtsim.num_ues",
|
"--vrtsim.num_ues",
|
||||||
std::to_string(param.num_ues)};
|
std::to_string(param.num_ues)};
|
||||||
for (int i = 0; i < param.num_ues; i++) {
|
for (int i = 0; i < param.num_ues; i++) {
|
||||||
@@ -217,7 +243,15 @@ class VRTSIMMultiUETest : public ::testing::TestWithParam<VRTSIMMultiTestCase> {
|
|||||||
cfg_clients.resize(param.num_ues);
|
cfg_clients.resize(param.num_ues);
|
||||||
|
|
||||||
for (int i = 0; i < param.num_ues; i++) {
|
for (int i = 0; i < param.num_ues; i++) {
|
||||||
std::vector<std::string> client_args_store = {"test_vrtsim", "--vrtsim.role", "client", "--vrtsim.ue_id", std::to_string(i)};
|
std::vector<std::string> client_args_store = {"test_vrtsim",
|
||||||
|
"--vrtsim.role",
|
||||||
|
"client",
|
||||||
|
"--vrtsim.connection_descriptor",
|
||||||
|
socket_path,
|
||||||
|
"--vrtsim.shm_channel_name",
|
||||||
|
shm_name,
|
||||||
|
"--vrtsim.ue_id",
|
||||||
|
std::to_string(i)};
|
||||||
std::vector<const char *> client_argv;
|
std::vector<const char *> client_argv;
|
||||||
for (const auto &arg : client_args_store) {
|
for (const auto &arg : client_args_store) {
|
||||||
client_argv.push_back(arg.c_str());
|
client_argv.push_back(arg.c_str());
|
||||||
@@ -254,6 +288,7 @@ class VRTSIMMultiUETest : public ::testing::TestWithParam<VRTSIMMultiTestCase> {
|
|||||||
if (cfg_server) {
|
if (cfg_server) {
|
||||||
end_configmodule(cfg_server);
|
end_configmodule(cfg_server);
|
||||||
}
|
}
|
||||||
|
uniqCfg = nullptr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user