X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;ds=sidebyside;f=test%2Fx_plane_data_SUITE.erl;fp=test%2Fx_plane_data_SUITE.erl;h=3c696764900c0cb11efd93280dd13947fbcf182e;hb=cfe4f77b7b6746c9cae311b37e92f8f0ce378680;hp=0000000000000000000000000000000000000000;hpb=3549a33ac1d2d49c8cef0b6cf679e90f9cc3c89a;p=erlang-x-plane-data.git diff --git a/test/x_plane_data_SUITE.erl b/test/x_plane_data_SUITE.erl new file mode 100644 index 0000000..3c69676 --- /dev/null +++ b/test/x_plane_data_SUITE.erl @@ -0,0 +1,76 @@ +-module(x_plane_data_SUITE). + +-include_lib("x_plane_data.hrl"). + +%% CT callbacks +-export( + [ all/0 + , groups/0 + ]). + +%% Test cases +-export( + [ t_basic_sanity_check/1 + ]). + +-define(GROUP, x_plane_data). + +%% ============================================================================ +%% CT callbacks +%% ============================================================================ + +all() -> + [ {group, ?GROUP} + ]. + +groups() -> + Tests = + [ t_basic_sanity_check + ], + Properties = [parallel], + [ {?GROUP, Properties, Tests} + ]. + + +%% ============================================================================= +%% Test cases +%% ============================================================================= + +t_basic_sanity_check(_Cfg) -> + Test = + fun (PacketBase64) -> + Packet = base64:decode(PacketBase64), + MaxIndex = 133, + BadIndex = MaxIndex + 1, + FakeBlockData = list_to_binary(lists:seq(1, 32)), + FakeBlockOk = <>, + FakeBlockBadIndex = <>, + {error, {block_index_byte_out_of_range, {BadIndex,_,_,_,_,_,_,_,_}}} = + x_plane_data:of_bin(<>), + {error, packet_unrecognized} = + x_plane_data:of_bin(<<"bad-header", Packet/binary>>), + {error, packet_length_invalid} = + x_plane_data:of_bin(<>), + {ok, Data} = + x_plane_data:of_bin(<>), + {some, #x_plane_datum_speeds{}} = + hope_kv_list:get(Data, speeds), + {some, #x_plane_datum_pitch_roll_heading{}} = + hope_kv_list:get(Data, pitch_roll_heading), + {some, #x_plane_datum_lat_lon_alt{}} = + hope_kv_list:get(Data, lat_lon_alt), + {some, {MaxIndex,_,_,_,_,_,_,_,_}} = + hope_kv_list:get(Data, MaxIndex), + ok + end, + lists:foreach(Test, sample_packets_base64_encoded()). + + + +%% ============================================================================= +%% Sample data +%% ============================================================================= + +sample_packets_base64_encoded() -> + [ <<"REFUQUADAAAAbcpGQLt81EBfZNlATnUoNwDAecSow2RAnCv6QLrbQTcRAAAA3i8VQFL3ZT6dPfFCx4IFQwDAecQAwHnEAMB5xADAecQUAAAA1ZciQg6ik8JGBv9AdDxoPgAAgD9G/o3CAAAgQgAAlsI=">> + ].