2021-10-06 21:55:39 +00:00
|
|
|
defmodule T2ServerQueryTest do
|
|
|
|
|
use ExUnit.Case, async: true
|
|
|
|
|
|
2021-10-07 20:06:22 +00:00
|
|
|
# doctest T2ServerQuery
|
2021-10-06 21:55:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
test "Gracefully handle timeouts and unreachable servers" do
|
|
|
|
|
# We know this query is going to timeout, so lets not wait around :)
|
|
|
|
|
timeout = 250
|
|
|
|
|
|
|
|
|
|
port = Enum.random(28_000..28_999)
|
2021-10-07 20:06:22 +00:00
|
|
|
{:error, result} = T2ServerQuery.query("127.0.0.1", port, timeout)
|
2021-10-06 21:55:39 +00:00
|
|
|
|> T2ServerQuery.log
|
|
|
|
|
|
|
|
|
|
assert result.server_status == :offline
|
|
|
|
|
assert result.server_description == "Host unreachable, timed out."
|
|
|
|
|
assert result.server_name == "127.0.0.1:#{port}"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test "Live test a number of Tribes 2 servers" do
|
|
|
|
|
tasks = [
|
2021-10-13 17:01:04 +00:00
|
|
|
Task.async(T2ServerQuery, :query, ["35.239.88.241", 28_000]),
|
2021-10-07 20:06:22 +00:00
|
|
|
Task.async(T2ServerQuery, :query, ["67.222.138.13"])
|
2021-10-06 21:55:39 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
server_list = Task.yield_many(tasks)
|
|
|
|
|
|> Enum.map(fn {task, result} ->
|
|
|
|
|
#|> Enum.with_index(fn {task, result}, index ->
|
|
|
|
|
# :ok should be returned for each task and result
|
|
|
|
|
# assert {task, {:ok, result}} == Enum.at(server_list, index)
|
|
|
|
|
test_server_status(result)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
defp test_server_status({:ok, _}) do
|
|
|
|
|
assert true
|
|
|
|
|
end
|
|
|
|
|
defp test_server_status({:error, _}) do
|
|
|
|
|
assert false
|
|
|
|
|
end
|
|
|
|
|
defp test_server_status(nil) do
|
|
|
|
|
assert false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-07 20:06:22 +00:00
|
|
|
#qry_test = T2ServerQuery.query("127.0.0.1")
|
2021-10-06 21:55:39 +00:00
|
|
|
#IO.inspect qry_test
|
|
|
|
|
|
2021-10-07 20:06:22 +00:00
|
|
|
#qry_test2 = T2ServerQuery.query("35.239.88.241")
|
2021-10-06 21:55:39 +00:00
|
|
|
#IO.inspect qry_test2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# tasks = [
|
2021-10-07 20:06:22 +00:00
|
|
|
# Task.async(T2ServerQuery, :query, ["127.0.0.1"]),
|
|
|
|
|
# Task.async(T2ServerQuery, :query, ["35.239.88.241"]),
|
|
|
|
|
# Task.async(T2ServerQuery, :query, ["97.99.172.12", 28001]),
|
|
|
|
|
# Task.async(T2ServerQuery, :query, ["67.222.138.13"]),
|
|
|
|
|
# Task.async(T2ServerQuery, :query, ["91.55.51.94"]),
|
2021-10-06 21:55:39 +00:00
|
|
|
# ]
|
|
|
|
|
|
|
|
|
|
# IO.inspect Task.yield_many(tasks)
|
|
|
|
|
|
2021-10-07 20:06:22 +00:00
|
|
|
# task0 = Task.async(T2ServerQuery, :query, ["127.0.0.1"])
|
|
|
|
|
# task1 = Task.async(T2ServerQuery, :query, ["35.239.88.241"])
|
|
|
|
|
# task2 = Task.async(T2ServerQuery, :query, ["97.99.172.12", 28001])
|
|
|
|
|
# task3 = Task.async(T2ServerQuery, :query, ["67.222.138.13"])
|
|
|
|
|
# task4 = Task.async(T2ServerQuery, :query, ["91.55.51.94"])
|
2021-10-06 21:55:39 +00:00
|
|
|
# # res4 = Task.await(task4)
|
|
|
|
|
# # IO.inspect res4.server_name
|
|
|
|
|
|
|
|
|
|
# res0 = Task.await(task0)
|
|
|
|
|
# res1 = Task.await(task1)
|
|
|
|
|
# res2 = Task.await(task2)
|
|
|
|
|
# res3 = Task.await(task3)
|
|
|
|
|
# res4 = Task.await(task4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# IO.inspect res1.server_name
|
|
|
|
|
# IO.inspect res2.server_name
|
|
|
|
|
# IO.inspect res3.server_name
|
|
|
|
|
# IO.inspect res4.server_name
|
|
|
|
|
|
2021-10-07 20:06:22 +00:00
|
|
|
# T2ServerQuery.query("35.239.88.241")
|
|
|
|
|
# T2ServerQuery.query("97.99.172.12", 28001)
|
|
|
|
|
# T2ServerQuery.query("67.222.138.13")
|
|
|
|
|
# T2ServerQuery.query("91.55.51.94")
|