File: test_federated_tracker.cc

package info (click to toggle)
xgboost 3.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 13,796 kB
  • sloc: cpp: 67,502; python: 35,503; java: 4,676; ansic: 1,426; sh: 1,320; xml: 1,197; makefile: 204; javascript: 19
file content (35 lines) | stat: -rw-r--r-- 957 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 * Copyright 2023-2024, XGBoost Contributors
 */
#include <gtest/gtest.h>

#include <memory>  // for make_unique
#include <string>  // for string

#include "../../../../src/collective/tracker.h"  // for GetHostAddress
#include "federated_tracker.h"
#include "xgboost/json.h"  // for Json

namespace xgboost::collective {
TEST(FederatedTrackerTest, Basic) {
  Json config{Object()};
  config["federated_secure"] = Boolean{false};
  config["n_workers"] = Integer{3};

  auto tracker = std::make_unique<FederatedTracker>(config);
  ASSERT_FALSE(tracker->Ready());
  auto fut = tracker->Run();
  auto args = tracker->WorkerArgs();
  ASSERT_TRUE(tracker->Ready());

  ASSERT_GE(tracker->Port(), 1);
  std::string host;
  auto rc = GetHostAddress(&host);
  ASSERT_EQ(get<String const>(args["dmlc_tracker_uri"]), host);

  rc = tracker->Shutdown();
  SafeColl(rc);
  SafeColl(fut.get());
  ASSERT_FALSE(tracker->Ready());
}
}  // namespace xgboost::collective