~timkross/cjdns/cjdns

« back to all changes in this revision

Viewing changes to dht/test/DHTModules_handleIncoming_test.c

  • Committer: cjdelisle
  • Date: 2011-02-16 23:03:00 UTC
  • Revision ID: git-v1:d475c9c10adc25590bea5e7dc5383b32f66d5eb8
First commit for cjdns.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "dht/DHTModules.h"
 
2
#include <stdio.h>
 
3
 
 
4
int testInputHandler()
 
5
{
 
6
    struct DHTMessage theMessage;
 
7
 
 
8
    int handleIncoming(struct DHTMessage* message, void* vcontext) {
 
9
        int* context = (int*) vcontext;
 
10
        if (message == &theMessage) {
 
11
            *context = 0;
 
12
        } else {
 
13
            *context = -2;
 
14
        }
 
15
        return 0;
 
16
    }
 
17
 
 
18
    int context = -1;
 
19
    int context2 = -1;
 
20
 
 
21
    struct DHTModule module = {
 
22
        .name = "TestModule",
 
23
        .context = &context,
 
24
        .handleIncoming = handleIncoming
 
25
    };
 
26
    struct DHTModule module2 = {
 
27
        .name = "TestModule2",
 
28
        .context = &context2,
 
29
        .handleIncoming = handleIncoming
 
30
    };
 
31
 
 
32
    struct DHTModuleRegistry* reg = DHTModules_new();
 
33
    DHTModules_register(&module, reg);
 
34
    DHTModules_register(&module2, reg);
 
35
 
 
36
    DHTModules_handleIncoming(&theMessage, reg);
 
37
 
 
38
    /* These should be ignored. */
 
39
    DHTModules_handleOutgoing(&theMessage, reg);
 
40
    DHTModules_compareNodes((benc_bstr_t) {2, "id"},
 
41
                            (benc_bstr_t) {3, "id2"},
 
42
                            reg);
 
43
    DHTModules_free(reg);
 
44
 
 
45
    if (context == -1) {
 
46
        printf("message not received");
 
47
    } else if (context == -2){
 
48
        printf("wrong message received");
 
49
    } else if (context2 == -1) {
 
50
        printf("message not received by all handlers.");
 
51
    } else if (context2 == -2) {
 
52
        printf("wrong message received by second handler.");
 
53
    } else {
 
54
        return 0;
 
55
    }
 
56
    return -1;
 
57
}
 
58
 
 
59
int main()
 
60
{
 
61
    return testInputHandler();
 
62
}