summaryrefslogtreecommitdiff
path: root/source4/torture
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture')
-rw-r--r--source4/torture/nbt/winsreplication.c67
-rw-r--r--source4/torture/torture.c4
2 files changed, 66 insertions, 5 deletions
diff --git a/source4/torture/nbt/winsreplication.c b/source4/torture/nbt/winsreplication.c
index cf6f3d4ed7..b53c55ca08 100644
--- a/source4/torture/nbt/winsreplication.c
+++ b/source4/torture/nbt/winsreplication.c
@@ -9619,16 +9619,15 @@ static void test_conflict_owned_active_vs_replica_handler(struct nbt_name_socket
}
/*
- test WINS replication operations
+ test simple WINS replication operations
*/
-BOOL torture_nbt_winsreplication(void)
+BOOL torture_nbt_winsreplication_simple(void)
{
const char *address;
struct nbt_name name;
TALLOC_CTX *mem_ctx = talloc_new(NULL);
NTSTATUS status;
BOOL ret = True;
- struct test_wrepl_conflict_conn *ctx;
make_nbt_name_server(&name, lp_parm_string(-1, "torture", "host"));
@@ -9646,13 +9645,73 @@ BOOL torture_nbt_winsreplication(void)
ret &= test_wins_replication(mem_ctx, address);
- if (lp_parm_bool(-1, "torture", "quick", False)) goto done;
+done:
+ talloc_free(mem_ctx);
+
+ return ret;
+}
+
+/*
+ test WINS replication replica conflicts operations
+*/
+BOOL torture_nbt_winsreplication_replica(void)
+{
+ const char *address;
+ struct nbt_name name;
+ TALLOC_CTX *mem_ctx = talloc_new(NULL);
+ NTSTATUS status;
+ BOOL ret = True;
+ struct test_wrepl_conflict_conn *ctx;
+
+ make_nbt_name_server(&name, lp_parm_string(-1, "torture", "host"));
+
+ /* do an initial name resolution to find its IP */
+ status = resolve_name(&name, mem_ctx, &address, NULL);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("Failed to resolve %s - %s\n",
+ name.name, nt_errstr(status));
+ talloc_free(mem_ctx);
+ return False;
+ }
ctx = test_create_conflict_ctx(mem_ctx, address);
if (!ctx) return False;
ret &= test_conflict_same_owner(ctx);
ret &= test_conflict_different_owner(ctx);
+
+done:
+ talloc_free(mem_ctx);
+
+ return ret;
+}
+
+/*
+ test WINS replication owned conflicts operations
+*/
+BOOL torture_nbt_winsreplication_owned(void)
+{
+ const char *address;
+ struct nbt_name name;
+ TALLOC_CTX *mem_ctx = talloc_new(NULL);
+ NTSTATUS status;
+ BOOL ret = True;
+ struct test_wrepl_conflict_conn *ctx;
+
+ make_nbt_name_server(&name, lp_parm_string(-1, "torture", "host"));
+
+ /* do an initial name resolution to find its IP */
+ status = resolve_name(&name, mem_ctx, &address, NULL);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("Failed to resolve %s - %s\n",
+ name.name, nt_errstr(status));
+ talloc_free(mem_ctx);
+ return False;
+ }
+
+ ctx = test_create_conflict_ctx(mem_ctx, address);
+ if (!ctx) return False;
+
ret &= test_conflict_owned_released_vs_replica(ctx);
ret &= test_conflict_owned_active_vs_replica(ctx);
diff --git a/source4/torture/torture.c b/source4/torture/torture.c
index a7e0fdd52d..aad44e4a16 100644
--- a/source4/torture/torture.c
+++ b/source4/torture/torture.c
@@ -2346,8 +2346,10 @@ static struct {
{"NBT-REGISTER", torture_nbt_register, 0},
{"NBT-WINS", torture_nbt_wins, 0},
{"NBT-DGRAM", torture_nbt_dgram, 0},
- {"NBT-WINSREPLICATION", torture_nbt_winsreplication, 0},
{"NBT-BROWSE", torture_nbt_browse, 0},
+ {"NBT-WINSREPLICATION-SIMPLE", torture_nbt_winsreplication_simple, 0},
+ {"NBT-WINSREPLICATION-REPLICA", torture_nbt_winsreplication_replica, 0},
+ {"NBT-WINSREPLICATION-OWNED", torture_nbt_winsreplication_owned, 0},
/* libnet tests */
{"NET-USERINFO", torture_userinfo, 0},