summaryrefslogtreecommitdiff
path: root/source4/torture
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture')
-rw-r--r--source4/torture/local/messaging.c51
1 files changed, 22 insertions, 29 deletions
diff --git a/source4/torture/local/messaging.c b/source4/torture/local/messaging.c
index 70bfd090f0..572ace0448 100644
--- a/source4/torture/local/messaging.c
+++ b/source4/torture/local/messaging.c
@@ -24,6 +24,7 @@
#include "lib/events/events.h"
#include "lib/messaging/irpc.h"
#include "torture/torture.h"
+#include "torture/ui.h"
static uint32_t msg_pong;
@@ -55,45 +56,46 @@ static void exit_message(struct messaging_context *msg, void *private,
/*
test ping speed
*/
-static BOOL test_ping_speed(TALLOC_CTX *mem_ctx)
+static void test_ping_speed(struct torture_context *torture)
{
struct event_context *ev;
struct messaging_context *msg_client_ctx;
struct messaging_context *msg_server_ctx;
int ping_count = 0;
int pong_count = 0;
- BOOL ret = True;
struct timeval tv;
int timelimit = lp_parm_int(-1, "torture", "timelimit", 10);
uint32_t msg_ping, msg_exit;
+ struct torture_test *test = torture_test(torture, "ping_speed", "ping speed");
lp_set_cmdline("lock dir", "lockdir.tmp");
- ev = event_context_init(mem_ctx);
+ ev = event_context_init(test);
- msg_server_ctx = messaging_init(mem_ctx, 1, ev);
+ msg_server_ctx = messaging_init(test, 1, ev);
if (!msg_server_ctx) {
- printf("Failed to init ping messaging context\n");
- talloc_free(mem_ctx);
- return False;
+ torture_fail(test, "Failed to init ping messaging context");
+ talloc_free(test);
+ return;
}
messaging_register_tmp(msg_server_ctx, NULL, ping_message, &msg_ping);
- messaging_register_tmp(msg_server_ctx, mem_ctx, exit_message, &msg_exit);
+ messaging_register_tmp(msg_server_ctx, test, exit_message, &msg_exit);
- msg_client_ctx = messaging_init(mem_ctx, 2, ev);
+ msg_client_ctx = messaging_init(test, 2, ev);
if (!msg_client_ctx) {
- printf("msg_client_ctx messaging_init() failed\n");
- return False;
+ torture_fail(test, "msg_client_ctx messaging_init() failed");
+ talloc_free(test);
+ return;
}
messaging_register_tmp(msg_client_ctx, &pong_count, pong_message, &msg_pong);
tv = timeval_current();
- printf("Sending pings for %d seconds\n", timelimit);
+ torture_comment(test, "Sending pings for %d seconds", timelimit);
while (timeval_elapsed(&tv) < timelimit) {
DATA_BLOB data;
NTSTATUS status1, status2;
@@ -105,13 +107,13 @@ static BOOL test_ping_speed(TALLOC_CTX *mem_ctx)
status2 = messaging_send(msg_client_ctx, 1, msg_ping, NULL);
if (!NT_STATUS_IS_OK(status1)) {
- printf("msg1 failed - %s\n", nt_errstr(status1));
+ torture_fail(test, "msg1 failed - %s", nt_errstr(status1));
} else {
ping_count++;
}
if (!NT_STATUS_IS_OK(status2)) {
- printf("msg2 failed - %s\n", nt_errstr(status2));
+ torture_fail(test, "msg2 failed - %s", nt_errstr(status2));
} else {
ping_count++;
}
@@ -121,40 +123,31 @@ static BOOL test_ping_speed(TALLOC_CTX *mem_ctx)
}
}
- printf("waiting for %d remaining replies (done %d)\n",
+ torture_comment(test, "waiting for %d remaining replies (done %d)",
ping_count - pong_count, pong_count);
while (timeval_elapsed(&tv) < 30 && pong_count < ping_count) {
event_loop_once(ev);
}
- printf("sending exit\n");
+ torture_comment(test, "sending exit");
messaging_send(msg_client_ctx, 1, msg_exit, NULL);
if (ping_count != pong_count) {
- printf("ping test failed! received %d, sent %d\n",
+ torture_fail(test, "ping test failed! received %d, sent %d",
pong_count, ping_count);
- ret = False;
}
- printf("ping rate of %.0f messages/sec\n",
+ torture_comment(test, "ping rate of %.0f messages/sec",
(ping_count+pong_count)/timeval_elapsed(&tv));
talloc_free(msg_client_ctx);
talloc_free(msg_server_ctx);
talloc_free(ev);
-
- return ret;
}
BOOL torture_local_messaging(struct torture_context *torture)
{
- TALLOC_CTX *mem_ctx = talloc_init("torture_local_messaging");
- BOOL ret = True;
-
- ret &= test_ping_speed(mem_ctx);
-
- talloc_free(mem_ctx);
-
- return ret;
+ test_ping_speed(torture);
+ return torture_result(torture);
}