| 112 | } |
| 113 | |
| 114 | void InitFromEnv() { |
| 115 | SyncDir_ = TFsPath(GetEnv("PORT_SYNC_PATH")); |
| 116 | if (!SyncDir_.IsDefined()) { |
| 117 | SyncDir_ = TFsPath(GetSystemTempDir()) / "testing_port_locks"; |
| 118 | } |
| 119 | Y_ABORT_UNLESS(SyncDir_.IsDefined()); |
| 120 | NFs::MakeDirectoryRecursive(SyncDir_); |
| 121 | Chmod(SyncDir_.c_str(), NFs::FP_COMMON_FILE); // override umask |
| 122 | |
| 123 | Ranges_ = GetPortRanges(); |
| 124 | TotalCount_ = 0; |
| 125 | for (auto [left, right] : Ranges_) { |
| 126 | TotalCount_ += right - left; |
| 127 | } |
| 128 | Y_ABORT_UNLESS(0 != TotalCount_); |
| 129 | |
| 130 | DisableRandomPorts_ = !GetEnv("NO_RANDOM_PORTS").empty(); |
| 131 | } |
| 132 | |
| 133 | NTesting::TPortHolder GetFreePort() const { |
| 134 | ui16 salt = RandomNumber<ui16>(); |
no test coverage detected