Регистрацию в Steam сервер печатает задолго до того, как мир загружен, и по ней панель показывала «Работает» на сервере, который ещё никого не пустит. Теперь готовность распознаётся только по «*** SERVER STARTED ****», а пока идёт загрузка, состояние остаётся «Запускается» с пояснением под ним и счётчиком времени загрузки. Если строки о готовности так и не будет (своя версия, свои моды), через пятнадцать минут менеджер сочтёт сервер запущенным и скажет об этом в консоли: иначе панель навсегда осталась бы без опроса игроков. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
1.3 KiB
Go
34 lines
1.3 KiB
Go
package pzserver
|
|
|
|
import "testing"
|
|
|
|
// Строка о готовности решает, когда панель перестанет писать «Запускается».
|
|
// Ошибиться в обе стороны одинаково неприятно: рано — покажем работающим
|
|
// сервер, который никого не пустит; поздно — сервер работает, а панель молчит.
|
|
func TestIsServerReady(t *testing.T) {
|
|
ready := []string{
|
|
"LOG : Network f:0 st:81,093,763> *** SERVER STARTED ****",
|
|
"*** SERVER STARTED ****",
|
|
"Server started",
|
|
}
|
|
for _, line := range ready {
|
|
if !isServerReady(line) {
|
|
t.Errorf("строка о готовности не распознана: %q", line)
|
|
}
|
|
}
|
|
|
|
// Регистрацию в Steam и загрузку мира сервер печатает задолго до того,
|
|
// как начнёт принимать подключения.
|
|
notReady := []string{
|
|
"Server Steam ID 90271993034366481",
|
|
"znet: Java_zombie_core_znet_SteamGameServer_Init",
|
|
"LOG : General f:0 st:1,234> loading world",
|
|
"Loading: SERVER settings",
|
|
}
|
|
for _, line := range notReady {
|
|
if isServerReady(line) {
|
|
t.Errorf("строка принята за готовность: %q", line)
|
|
}
|
|
}
|
|
}
|