xref: /btstack/test/hfp/hfp_link_settings_test.cpp (revision 9cfd08eaac2818542ed0135b5034b030dfca6f66)
11d3bd1e5SMatthias Ringwald #include "CppUTest/TestHarness.h"
21d3bd1e5SMatthias Ringwald #include "CppUTest/CommandLineTestRunner.h"
31d3bd1e5SMatthias Ringwald 
41d3bd1e5SMatthias Ringwald #include "classic/hfp.h"
51d3bd1e5SMatthias Ringwald 
61d3bd1e5SMatthias Ringwald #include "mock.h"
71d3bd1e5SMatthias Ringwald 
TEST_GROUP(HFPLinkSettings)81d3bd1e5SMatthias Ringwald TEST_GROUP(HFPLinkSettings){
91d3bd1e5SMatthias Ringwald         void setup(void){
101d3bd1e5SMatthias Ringwald             hfp_set_sco_packet_types(SCO_PACKET_TYPES_ALL);
111d3bd1e5SMatthias Ringwald         }
121d3bd1e5SMatthias Ringwald         void teardown(void){
131d3bd1e5SMatthias Ringwald         }
141d3bd1e5SMatthias Ringwald };
151d3bd1e5SMatthias Ringwald 
161d3bd1e5SMatthias Ringwald // initial setting
TEST(HFPLinkSettings,NONE)171d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, NONE){
18*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_NONE, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, SCO_PACKET_TYPES_SCO, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_MSBC));
191d3bd1e5SMatthias Ringwald }
201d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,D1)211d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, D1){
22*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_SCO, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
23*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_SCO, true, HFP_CODEC_CVSD));
241d3bd1e5SMatthias Ringwald }
251d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,S3)261d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S3){
27*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, false, HFP_CODEC_CVSD));
281d3bd1e5SMatthias Ringwald }
291d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,S4)301d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S4){
31*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S4, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
321d3bd1e5SMatthias Ringwald }
331d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,T2)341d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T2){
35*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_T2, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_MSBC));
361d3bd1e5SMatthias Ringwald }
371d3bd1e5SMatthias Ringwald 
381d3bd1e5SMatthias Ringwald // regular transition
TEST(HFPLinkSettings,T2_T1)391d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T2_T1){
40*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_T1, hfp_next_link_setting(HFP_LINK_SETTINGS_T2, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_MSBC));
411d3bd1e5SMatthias Ringwald }
TEST(HFPLinkSettings,T1_NONE)421d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, T1_NONE){
43*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_NONE, hfp_next_link_setting(HFP_LINK_SETTINGS_T1, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_MSBC));
441d3bd1e5SMatthias Ringwald }
TEST(HFPLinkSettings,S4_S3)451d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S4_S3){
46*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_S4, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
471d3bd1e5SMatthias Ringwald }
TEST(HFPLinkSettings,S3_S2)481d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S3_S2){
49*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S2, hfp_next_link_setting(HFP_LINK_SETTINGS_S3, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
501d3bd1e5SMatthias Ringwald }
TEST(HFPLinkSettings,S2_S1)511d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, S2_S1){
52*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S1, hfp_next_link_setting(HFP_LINK_SETTINGS_S2, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
531d3bd1e5SMatthias Ringwald }
TEST(HFPLinkSettings,D1_D0)541d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, D1_D0){
55*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, SCO_PACKET_TYPES_SCO, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
56*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_D1, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_SCO, true, HFP_CODEC_CVSD));
571d3bd1e5SMatthias Ringwald }
581d3bd1e5SMatthias Ringwald 
591d3bd1e5SMatthias Ringwald // initial settings based on packet types
TEST(HFPLinkSettings,HV1)601d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, HV1){
611d3bd1e5SMatthias Ringwald     hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV1);
62*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_SCO, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
63*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D0, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_SCO, true, HFP_CODEC_CVSD));
641d3bd1e5SMatthias Ringwald }
651d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,HV3)661d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, HV3){
671d3bd1e5SMatthias Ringwald     hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV3);
68*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_D1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, false, HFP_CODEC_CVSD));
691d3bd1e5SMatthias Ringwald }
701d3bd1e5SMatthias Ringwald 
TEST(HFPLinkSettings,EV3)711d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, EV3){
721d3bd1e5SMatthias Ringwald     hfp_set_sco_packet_types(SCO_PACKET_TYPES_EV3);
73*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_CVSD));
74*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_T1, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true, HFP_CODEC_MSBC));
751d3bd1e5SMatthias Ringwald }
761d3bd1e5SMatthias Ringwald 
771d3bd1e5SMatthias Ringwald TEST(HFPLinkSettings, 2EV3){
781d3bd1e5SMatthias Ringwald     hfp_set_sco_packet_types(SCO_PACKET_TYPES_2EV3);
79*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S3, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, false, HFP_CODEC_CVSD));
80*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_S4, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true,  HFP_CODEC_CVSD));
81*0b3a3c36SMatthias Ringwald     CHECK_EQUAL(HFP_LINK_SETTINGS_T2, hfp_next_link_setting(HFP_LINK_SETTINGS_NONE, SCO_PACKET_TYPES_ALL, SCO_PACKET_TYPES_ALL, true,  HFP_CODEC_MSBC));
821d3bd1e5SMatthias Ringwald }
831d3bd1e5SMatthias Ringwald 
main(int argc,const char * argv[])841d3bd1e5SMatthias Ringwald int main (int argc, const char * argv[]){
851d3bd1e5SMatthias Ringwald     return CommandLineTestRunner::RunAllTests(argc, argv);
861d3bd1e5SMatthias Ringwald }
87