| 359 | } |
| 360 | |
| 361 | static void ValidateLALB(LALB& lalb, size_t N) { |
| 362 | LALB::Servers* d = lalb._db_servers._data; |
| 363 | for (size_t R = 0; R < 2; ++R) { |
| 364 | ASSERT_EQ(d[R].weight_tree.size(), N); |
| 365 | ASSERT_EQ(d[R].server_map.size(), N); |
| 366 | } |
| 367 | ASSERT_EQ(lalb._left_weights.size(), N); |
| 368 | int64_t total = 0; |
| 369 | for (size_t i = 0; i < N; ++i) { |
| 370 | ASSERT_EQ(d[0].weight_tree[i].server_id, d[1].weight_tree[i].server_id); |
| 371 | ASSERT_EQ(d[0].weight_tree[i].weight, d[1].weight_tree[i].weight); |
| 372 | for (size_t R = 0; R < 2; ++R) { |
| 373 | ASSERT_EQ((int64_t*)d[R].weight_tree[i].left, &lalb._left_weights[i]); |
| 374 | size_t* pindex = d[R].server_map.seek(d[R].weight_tree[i].server_id); |
| 375 | ASSERT_TRUE(pindex != NULL && *pindex == i); |
| 376 | } |
| 377 | total += d[0].weight_tree[i].weight->volatile_value(); |
| 378 | } |
| 379 | ValidateWeightTree(d[0].weight_tree); |
| 380 | ASSERT_EQ(total, lalb._total.load()); |
| 381 | } |
| 382 | |
| 383 | TEST_F(LoadBalancerTest, la_sanity) { |
| 384 | LALB lalb; |
no test coverage detected