summaryrefslogtreecommitdiff
path: root/source4/torture/nbt/winsreplication.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture/nbt/winsreplication.c')
-rw-r--r--source4/torture/nbt/winsreplication.c67
1 files changed, 63 insertions, 4 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);