tests: assign JOIN, member files and DM endpoints dynamically
This commit is contained in:
1 parent
e4fe534382
commit
45a6320b5e
3 files changed
+34
-22
No files matched your search
+12
-4
@@ -30,6 +30,7 @@
|
||||
#include "../lib/platform_compat.h"
|
||||
#include "test_utils.h"
|
||||
#include "test_clock.h"
|
||||
#include "test_net.h"
|
||||
|
||||
#include <sqlite3.h>
|
||||
#define OPENSSL_API_COMPAT 0x10100000L
|
||||
@@ -124,14 +125,13 @@ static int wf(const char* p, const char* f, ...) {
|
||||
|
||||
/* ── генерация данных сценария + конфигов ── */
|
||||
|
||||
static void fill_shared(int base_port) {
|
||||
static void fill_shared(void) {
|
||||
memset(&g_sh, 0, sizeof(g_sh));
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
gen_x25519(g_sh.x_pub[i], g_sh.x_priv[i]);
|
||||
sc_derive_ed25519_pubkey(g_sh.x_priv[i], g_sh.ed_pub[i]);
|
||||
g_sh.nid[i] = sc_derive_node_id_from_pubkey(g_sh.x_pub[i]);
|
||||
g_sh.port[i] = base_port + i * 1000;
|
||||
}
|
||||
|
||||
{ uint8_t ch_x_priv[32]; gen_x25519(g_sh.ch_x_pub, ch_x_priv); }
|
||||
@@ -673,7 +673,7 @@ int main(int argc, char** argv) {
|
||||
if (test_mkdtemp(dir) != 0) { fprintf(stderr, "mkdtemp failed\n"); return 1; }
|
||||
test_setenv("UTUN_TEST_DIR", dir, 1);
|
||||
|
||||
fill_shared(58000 + (getpid() % 2000));
|
||||
fill_shared();
|
||||
write_configs(dir);
|
||||
|
||||
printf("=== test_dm_e2e ===\n"); fflush(stdout);
|
||||
@@ -702,6 +702,10 @@ int main(int argc, char** argv) {
|
||||
uasync_destroy(ua, 0);
|
||||
return 1;
|
||||
}
|
||||
for (int i = 0; i < 3; i++) g_sh.port[i] = ss_get_port(&test_etcp_bound_socket(t.inst[i], "s1")->local_addr);
|
||||
write_configs(dir); // Сохраняем назначенные endpoint для всех restart в этом сценарии.
|
||||
test_etcp_set_peer(t.inst[IDX_C], "to_a", t.inst[IDX_A], "s1");
|
||||
test_etcp_set_peer(t.inst[IDX_B], "to_c", t.inst[IDX_C], "s1");
|
||||
utun_instance_init(t.inst[IDX_A]);
|
||||
utun_instance_init(t.inst[IDX_C]);
|
||||
/* B стартует после C, чтобы B→C пришлось на уже поднятый C (как в сценарии) */
|
||||
@@ -726,7 +730,7 @@ int main(int argc, char** argv) {
|
||||
char dir2[512]; snprintf(dir2, sizeof(dir2), "/tmp/utun_dm_e2e2_XXXXXX");
|
||||
if (test_mkdtemp(dir2) != 0) { fprintf(stderr, "mkdtemp dir2 failed\n"); return 1; }
|
||||
test_setenv("UTUN_TEST_DIR", dir2, 1);
|
||||
fill_shared(61000 + (getpid() % 1000));
|
||||
fill_shared();
|
||||
write_configs(dir2);
|
||||
|
||||
TEST("first offline DM: supernode restart, sender remains offline"); {
|
||||
@@ -753,6 +757,10 @@ int main(int argc, char** argv) {
|
||||
uasync_destroy(ua, 0);
|
||||
return 1;
|
||||
}
|
||||
for (int i = 0; i < 3; i++) g_sh.port[i] = ss_get_port(&test_etcp_bound_socket(t.inst[i], "s1")->local_addr);
|
||||
write_configs(dir2);
|
||||
test_etcp_set_peer(t.inst[IDX_C], "to_a", t.inst[IDX_A], "s1");
|
||||
test_etcp_set_peer(t.inst[IDX_B], "to_c", t.inst[IDX_C], "s1");
|
||||
utun_instance_init(t.inst[IDX_A]);
|
||||
utun_instance_init(t.inst[IDX_C]);
|
||||
utun_instance_init(t.inst[IDX_B]);
|
||||
|
||||
Reference in new issue
Block a user