add device_handler test

This commit is contained in:
anlicheng 2025-04-11 16:36:25 +08:00
parent 5d0f931d24
commit 0b42353ac0

View File

@ -99,10 +99,10 @@ test(HostUUID, DeviceUUID) when is_binary(HostUUID), is_binary(DeviceUUID) ->
lager:debug("[device_handler] host_id: ~p, will query_edge_status uuid: ~p", [HostUUID, DeviceUUID]), lager:debug("[device_handler] host_id: ~p, will query_edge_status uuid: ~p", [HostUUID, DeviceUUID]),
case iot_host:get_pid(HostUUID) of case iot_host:get_pid(HostUUID) of
undefined -> undefined ->
{ok, 200, iot_util:json_error(404, <<"query_edge_status failed">>)}; {ok, <<"host not found">>};
HostPid when is_pid(HostPid) -> HostPid when is_pid(HostPid) ->
Ref = make_ref(), Ref = make_ref(),
{ok, {TaskPid, _}} = iot_device_poll_task:start_monitor(), {ok, {TaskPid, MRef}} = iot_device_poll_task:start_monitor(),
iot_device_poll_task:poll_task(TaskPid, Ref, HostPid, self(), DeviceUUID, Timeout), iot_device_poll_task:poll_task(TaskPid, Ref, HostPid, self(), DeviceUUID, Timeout),
receive receive
{poll_task_reply, Ref, {ok, EdgeStatus}} -> {poll_task_reply, Ref, {ok, EdgeStatus}} ->
@ -110,9 +110,10 @@ test(HostUUID, DeviceUUID) when is_binary(HostUUID), is_binary(DeviceUUID) ->
{ok, 200, iot_util:json_data(#{<<"edge_status">> => EdgeStatus})}; {ok, 200, iot_util:json_data(#{<<"edge_status">> => EdgeStatus})};
{poll_task_reply, Ref, {error, Reason}} -> {poll_task_reply, Ref, {error, Reason}} ->
lager:debug("[device_handler] query_edge_status device: ~p, get error: ~p", [DeviceUUID, Reason]), lager:debug("[device_handler] query_edge_status device: ~p, get error: ~p", [DeviceUUID, Reason]),
{ok, 200, iot_util:json_error(404, <<"query_edge_status failed">>)} {ok, 200, iot_util:json_error(404, <<"query_edge_status failed">>)};
{'DOWN', MRef, process, TaskPid, Reason} ->
{ok, <<"task pid down with reason:">>, Reason}
after Timeout * 1000 -> after Timeout * 1000 ->
lager:debug("[device_handler] query_edge_status device: ~p, timeout", [DeviceUUID]), {ok, 200, <<"query_edge_status timeout">>}
{ok, 200, iot_util:json_error(404, <<"query_edge_status timeout">>)}
end end
end. end.