| 30 | } |
| 31 | |
| 32 | TEST(Van, Message) { |
| 33 | pid_t pid = fork(); |
| 34 | if (pid == 0) { |
| 35 | my_rank ++; |
| 36 | pid_t pid2 = fork(); |
| 37 | if (pid2 == 0) |
| 38 | my_rank ++; |
| 39 | } |
| 40 | |
| 41 | std::vector<string> local = { |
| 42 | "role:CLIENT,hostname:'localhost',port:7000", |
| 43 | "role:CLIENT,hostname:'localhost',port:7001", |
| 44 | "role:CLIENT,hostname:'localhost',port:7002", |
| 45 | "role:CLIENT,hostname:'localhost',port:7003", |
| 46 | "role:CLIENT,hostname:'localhost',port:7004" |
| 47 | }; |
| 48 | for (int i = 0; i < rank_size; ++i) { |
| 49 | nodes.push_back(Van::parseNode(local[i])); |
| 50 | } |
| 51 | FLAGS_my_node = local[my_rank]; |
| 52 | Van van; |
| 53 | van.init(); |
| 54 | for (int i = 0; i < rank_size; ++i) { |
| 55 | if (i != my_rank) { |
| 56 | EXPECT_TRUE(van.connect(nodes[i]).ok()); |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | |
| 61 | |
| 62 | // std::vector<int> a = {my_rank * 10, my_rank * 20}; |
| 63 | // SArray<int> sa; sa.copyFrom(a.begin(), a.end()); |
| 64 | // std::vector<double> b = {my_rank * .1, my_rank * .2}; |
| 65 | // SArray<double> sb; sb.copyFrom(b.begin(), b.end()); |
| 66 | |
| 67 | Message p1; |
| 68 | // PackedTask task; |
| 69 | // Message p1(task); |
| 70 | // Message p2(task); p2.add(sa); |
| 71 | // Message p3(task); p3.add(sa); p3.add(sb); |
| 72 | |
| 73 | Message recv; |
| 74 | recv = Ring(p1, &van); |
| 75 | // EXPECT_TRUE(recv.body().empty()); |
| 76 | |
| 77 | // recv = Ring(p2, &van); |
| 78 | // EXPECT_TRUE(recv.body()[0] == sa); |
| 79 | |
| 80 | // recv = Ring(p3, &van); |
| 81 | // EXPECT_TRUE(recv.body()[0] == sa); |
| 82 | // EXPECT_TRUE(recv.body()[1] == sb); |
| 83 | |
| 84 | usleep(100); |
| 85 | van.destroy(); |
| 86 | int ret; |
| 87 | wait(&ret); |
| 88 | } |