1 #include "CppUTest/TestHarness.h"
2 #include "CppUTest/CommandLineTestRunner.h"
3
4 #include "classic/hfp.h"
5
6 #include "mock.h"
7
TEST_GROUP(HFPLinkSettings)8 TEST_GROUP(HFPLinkSettings){
9 void setup(void){
10 hfp_set_sco_packet_types(SCO_PACKET_TYPES_ALL);
11 }
12 void teardown(void){
13 }
14 };
15
16 // initial setting
TEST(HFPLinkSettings,NONE)17 TEST(HFPLinkSettings, NONE){
18 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));
19 }
20
TEST(HFPLinkSettings,D1)21 TEST(HFPLinkSettings, D1){
22 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 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));
24 }
25
TEST(HFPLinkSettings,S3)26 TEST(HFPLinkSettings, S3){
27 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));
28 }
29
TEST(HFPLinkSettings,S4)30 TEST(HFPLinkSettings, S4){
31 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));
32 }
33
TEST(HFPLinkSettings,T2)34 TEST(HFPLinkSettings, T2){
35 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));
36 }
37
38 // regular transition
TEST(HFPLinkSettings,T2_T1)39 TEST(HFPLinkSettings, T2_T1){
40 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));
41 }
TEST(HFPLinkSettings,T1_NONE)42 TEST(HFPLinkSettings, T1_NONE){
43 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));
44 }
TEST(HFPLinkSettings,S4_S3)45 TEST(HFPLinkSettings, S4_S3){
46 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));
47 }
TEST(HFPLinkSettings,S3_S2)48 TEST(HFPLinkSettings, S3_S2){
49 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));
50 }
TEST(HFPLinkSettings,S2_S1)51 TEST(HFPLinkSettings, S2_S1){
52 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));
53 }
TEST(HFPLinkSettings,D1_D0)54 TEST(HFPLinkSettings, D1_D0){
55 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 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));
57 }
58
59 // initial settings based on packet types
TEST(HFPLinkSettings,HV1)60 TEST(HFPLinkSettings, HV1){
61 hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV1);
62 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 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));
64 }
65
TEST(HFPLinkSettings,HV3)66 TEST(HFPLinkSettings, HV3){
67 hfp_set_sco_packet_types(SCO_PACKET_TYPES_HV3);
68 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));
69 }
70
TEST(HFPLinkSettings,EV3)71 TEST(HFPLinkSettings, EV3){
72 hfp_set_sco_packet_types(SCO_PACKET_TYPES_EV3);
73 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 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));
75 }
76
77 TEST(HFPLinkSettings, 2EV3){
78 hfp_set_sco_packet_types(SCO_PACKET_TYPES_2EV3);
79 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 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 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));
82 }
83
main(int argc,const char * argv[])84 int main (int argc, const char * argv[]){
85 return CommandLineTestRunner::RunAllTests(argc, argv);
86 }
87