bson_ext 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,19 +0,0 @@
1
- #include <stdlib.h>
2
-
3
- #define ASSERT(x) \
4
- do{ \
5
- if(!(x)){ \
6
- printf("failed assert (%d): %s\n", __LINE__, #x); \
7
- exit(1); \
8
- }\
9
- }while(0)
10
-
11
- #ifdef _WIN32
12
- #define INIT_SOCKETS_FOR_WINDOWS \
13
- do{ \
14
- WSADATA out; \
15
- WSAStartup(MAKEWORD(2,2), &out); \
16
- } while(0)
17
- #else
18
- #define INIT_SOCKETS_FOR_WINDOWS do {} while(0)
19
- #endif
@@ -1,107 +0,0 @@
1
- #include "test.h"
2
- #include "mongo.h"
3
- #include <stdio.h>
4
- #include <string.h>
5
- #include <stdlib.h>
6
-
7
- int main(){
8
- mongo_connection conn[1];
9
- bson_buffer bb;
10
- bson obj;
11
- bson cond;
12
- int i;
13
- bson_oid_t oid;
14
- const char* col = "c.update_test";
15
- const char* ns = "test.c.update_test";
16
-
17
- INIT_SOCKETS_FOR_WINDOWS;
18
-
19
- if (mongo_connect( conn , TEST_SERVER, 27017 )){
20
- printf("failed to connect\n");
21
- exit(1);
22
- }
23
-
24
- /* if the collection doesn't exist dropping it will fail */
25
- if (!mongo_cmd_drop_collection(conn, "test", col, NULL)
26
- && mongo_find_one(conn, ns, bson_empty(&obj), bson_empty(&obj), NULL)){
27
- printf("failed to drop collection\n");
28
- exit(1);
29
- }
30
-
31
- bson_oid_gen(&oid);
32
-
33
- { /* insert */
34
- bson_buffer_init(&bb);
35
- bson_append_oid(&bb, "_id", &oid);
36
- bson_append_int(&bb, "a", 3 );
37
- bson_from_buffer(&obj, &bb);
38
- mongo_insert(conn, ns, &obj);
39
- bson_destroy(&obj);
40
- }
41
-
42
- { /* insert */
43
- bson op;
44
-
45
- bson_buffer_init(&bb);
46
- bson_append_oid(&bb, "_id", &oid);
47
- bson_from_buffer(&cond, &bb);
48
-
49
- bson_buffer_init(&bb);
50
- {
51
- bson_buffer * sub = bson_append_start_object(&bb, "$inc");
52
- bson_append_int(sub, "a", 2 );
53
- bson_append_finish_object(sub);
54
- }
55
- {
56
- bson_buffer * sub = bson_append_start_object(&bb, "$set");
57
- bson_append_double(sub, "b", -1.5 );
58
- bson_append_finish_object(sub);
59
- }
60
- bson_from_buffer(&op, &bb);
61
-
62
- for (i=0; i<5; i++)
63
- mongo_update(conn, ns, &cond, &op, 0);
64
-
65
- /* cond is used later */
66
- bson_destroy(&op);
67
- }
68
-
69
- if(!mongo_find_one(conn, ns, &cond, 0, &obj)){
70
- printf("Failed to find object\n");
71
- exit(1);
72
- } else {
73
- int fields = 0;
74
- bson_iterator it;
75
- bson_iterator_init(&it, obj.data);
76
-
77
- bson_destroy(&cond);
78
-
79
- while(bson_iterator_next(&it)){
80
- switch(bson_iterator_key(&it)[0]){
81
- case '_': /* id */
82
- ASSERT(bson_iterator_type(&it) == bson_oid);
83
- ASSERT(!memcmp(bson_iterator_oid(&it)->bytes, oid.bytes, 12));
84
- fields++;
85
- break;
86
- case 'a':
87
- ASSERT(bson_iterator_type(&it) == bson_int);
88
- ASSERT(bson_iterator_int(&it) == 3 + 5*2);
89
- fields++;
90
- break;
91
- case 'b':
92
- ASSERT(bson_iterator_type(&it) == bson_double);
93
- ASSERT(bson_iterator_double(&it) == -1.5);
94
- fields++;
95
- break;
96
- }
97
- }
98
-
99
- ASSERT(fields == 3);
100
- }
101
-
102
- bson_destroy(&obj);
103
-
104
- mongo_cmd_drop_db(conn, "test");
105
- mongo_destroy(conn);
106
- return 0;
107
- }