7
#include "libmongo-private.h"
10
test_func_mongo_sync_safe_mode (void)
12
mongo_sync_connection *conn;
14
bson *b1, *b2, *b3, *b4, *cmd;
18
mongo_util_oid_init (0);
21
bson_append_string (b1, "func_mongo_sync_safe_mode", "works", -1);
25
bson_append_int32 (b2, "int32", 1984);
28
b3 = test_bson_generate_full ();
29
b4 = test_bson_generate_full ();
36
conn = mongo_sync_connect (config.primary_host, config.primary_port,
40
mongo_sync_conn_set_safe_mode (conn, FALSE);
41
ok (mongo_sync_cmd_insert_n (conn, config.ns, 4, docs) == TRUE,
42
"mongo_sync_cmd_insert_n() should not fail with safe mode off");
44
mongo_sync_conn_set_safe_mode (conn, TRUE);
45
ok (mongo_sync_cmd_insert_n (conn, config.ns, 4, docs) == FALSE,
46
"mongo_sync_cmd_insert_n() should fail with safe mode on");
48
/* Test a custom command */
50
bson_append_int32 (cmd, "bogusCommand", 1);
53
mongo_sync_cmd_reset_error (conn, config.db);
54
mongo_sync_conn_set_safe_mode (conn, FALSE);
55
p = mongo_sync_cmd_custom (conn, config.db, cmd);
56
mongo_sync_cmd_get_last_error (conn, config.db, &error);
57
ok (p == NULL && strcmp (error, "no such cmd: bogusCommand") == 0,
58
"mongo_sync_cmd_custom() with a bogus command fails with safe-mode off");
62
bson_append_int32 (cmd, "bogusCommand2", 1);
64
mongo_sync_cmd_reset_error (conn, config.db);
65
mongo_sync_conn_set_safe_mode (conn, TRUE);
66
p = mongo_sync_cmd_custom (conn, config.db, cmd);
67
mongo_sync_cmd_get_last_error (conn, config.db, &error);
68
ok (p == NULL && strcmp (error, "no such cmd: bogusCommand2") == 0,
69
"mongo_sync_cmd_custom() with a bogus command fails with safe-mode on");
72
mongo_sync_disconnect (conn);
79
RUN_NET_TEST (4, func_mongo_sync_safe_mode);