From d3c6e257e0b53a9f70065fe3861413e55f6ef6ff Mon Sep 17 00:00:00 2001 From: Milanka Ringwald Date: Fri, 4 Dec 2015 17:10:54 +0100 Subject: [PATCH] hfp ag test: add three way call tests (TWC) --- src/hfp_ag.c | 8 +- test/hfp/hfp_ag_client_test.c | 147 +++++----- test/hfp/hfp_hf_client_test.c | 30 +- test/hfp/test_sequences.c | 515 +++++++++++++++++++++++++++++++++- test/hfp/test_sequences.h | 24 ++ 5 files changed, 629 insertions(+), 95 deletions(-) diff --git a/src/hfp_ag.c b/src/hfp_ag.c index 735b41d86..567140088 100644 --- a/src/hfp_ag.c +++ b/src/hfp_ag.c @@ -1771,6 +1771,11 @@ static void packet_handler(void * connection, uint8_t packet_type, uint16_t chan hfp_run(); } +static void hfp_ag_set_ag_indicators(hfp_ag_indicator_t * ag_indicators, int ag_indicators_nr){ + hfp_ag_indicators_nr = ag_indicators_nr; + memcpy(hfp_ag_indicators, ag_indicators, ag_indicators_nr * sizeof(hfp_ag_indicator_t)); +} + void hfp_ag_init(uint16_t rfcomm_channel_nr, uint32_t supported_features, uint8_t * codecs, int codecs_nr, hfp_ag_indicator_t * ag_indicators, int ag_indicators_nr, @@ -1795,8 +1800,7 @@ void hfp_ag_init(uint16_t rfcomm_channel_nr, uint32_t supported_features, hfp_codecs[i] = codecs[i]; } - hfp_ag_indicators_nr = ag_indicators_nr; - memcpy(hfp_ag_indicators, ag_indicators, ag_indicators_nr * sizeof(hfp_ag_indicator_t)); + hfp_ag_set_ag_indicators(ag_indicators, ag_indicators_nr); set_hfp_generic_status_indicators(hf_indicators, hf_indicators_nr); diff --git a/test/hfp/hfp_ag_client_test.c b/test/hfp/hfp_ag_client_test.c index 37ac6b5a4..967acfeaf 100644 --- a/test/hfp/hfp_ag_client_test.c +++ b/test/hfp/hfp_ag_client_test.c @@ -84,6 +84,17 @@ static hfp_ag_indicator_t ag_indicators[] = { {7, "callheld", 0, 2, 0, 1, 1, 0} }; +hfp_ag_indicator_t ag_indicators_temp[] = { + // index, name, min range, max range, status, mandatory, enabled, status changed + {1, "service", 0, 1, 1, 0, 0, 0}, + {2, "call", 0, 1, 0, 1, 1, 0}, + {3, "callsetup", 0, 3, 0, 1, 1, 0}, + {4, "battchg", 0, 5, 3, 0, 0, 0}, + {5, "signal", 0, 5, 5, 0, 0, 0}, + {6, "roam", 0, 1, 0, 0, 0, 0}, + {7, "callheld", 0, 2, 0, 1, 1, 0} +}; + static int supported_features_with_codec_negotiation = 4079; // 0011 1110 1111 static int call_hold_services_nr = 5; @@ -107,7 +118,6 @@ static uint16_t handle = -1; static int memory_1_enabled = 1; static int last_number_exists = 1; - int has_more_hfp_ag_commands(){ return has_more_hfp_commands(2,2); } @@ -302,27 +312,31 @@ static void user_command(char cmd){ } } -void simulate_test_sequence(hfp_test_item_t * test_item){ +static void simulate_test_sequence(hfp_test_item_t * test_item){ char ** test_steps = test_item->test; printf("\nSimulate test sequence: \"%s\"\n", test_item->name); int i = 0; + static char * previous_cmd = NULL; + while (i < test_item->len){ char * expected_cmd = test_steps[i]; int expected_cmd_len = strlen(expected_cmd); if (strncmp(expected_cmd, "USER:", 5) == 0){ + printf("\n---> USER: "); user_command(expected_cmd[5]); i++; } else if (strncmp(expected_cmd, "AT", 2) == 0){ - //printf("\n---> NEXT STEP receive from HF: '%s'\n", expected_cmd); + // printf("\n---> NEXT STEP receive from HF: '%s'\n", expected_cmd); inject_hfp_command_to_ag((uint8_t*)expected_cmd, expected_cmd_len); i++; + } else { printf("\n---> NEXT STEP expect from AG: %s\n", expected_cmd); + while (has_more_hfp_ag_commands()){ char * ag_cmd = get_next_hfp_ag_command(); - //printf("AG response verify %s == %s[%d]\n", expected_cmd, ag_cmd, expected_cmd_len); int equal_cmds = strncmp(ag_cmd, expected_cmd, expected_cmd_len) == 0; if (!equal_cmds){ @@ -331,6 +345,8 @@ void simulate_test_sequence(hfp_test_item_t * test_item){ return; } printf("Verified: '%s'\n", expected_cmd); + previous_cmd = ag_cmd; + i++; if (i < test_item->len){ expected_cmd = test_steps[i]; @@ -388,6 +404,19 @@ void packet_handler(uint8_t * event, uint16_t event_size){ case HFP_CMD_CALL_ANSWERED: //printf("HF answers call, accept call by GSM\n"); break; + case HFP_SUBEVENT_REDIAL_LAST_NUMBER: + printf("\n** Redial last number\n"); + if (last_number_exists){ + hfp_ag_outgoing_call_accepted(); + printf("Last number exists: accept call\n"); + // TODO: calling ringing right away leads to callstatus=2 being skipped. don't call for now + // hfp_ag_outgoing_call_ringing(); + } else { + printf("Last number missing: reject call\n"); + hfp_ag_outgoing_call_rejected(); + } + break; + default: printf("hfp_ag_client_test: event not handled %u\n", event[2]); break; @@ -419,26 +448,43 @@ TEST_GROUP(HFPClient){ codecs_connection_established = 0; audio_connection_established = 0; } - - void setup_hfp_service_level_connection(hfp_test_item_t * test_item){ - service_level_connection_established = 0; - hfp_ag_establish_service_level_connection(device_addr); - simulate_test_sequence(test_item); - } - - void setup_hfp_codecs_connection(hfp_test_item_t * test_item){ - codecs_connection_established = 0; - simulate_test_sequence(test_item); - } }; -// TEST(HFPClient, PTSATATests){ -// for (int i = 0; i < hfp_pts_ag_ata_tests_size(); i++){ -// simulate_test_sequence(&hfp_pts_ag_ata_tests()[i]); +// TEST(HFPClient, PTSRHHTests){ +// for (int i = 0; i < hfp_pts_ag_rhh_tests_size(); i++){ +// simulate_test_sequence(&hfp_pts_ag_rhh_tests()[i]); // teardown(); // } // } +// TEST(HFPClient, PTSECCTests){ +// for (int i = 0; i < hfp_pts_ag_ecc_tests_size(); i++){ +// simulate_test_sequence(&hfp_pts_ag_ecc_tests()[i]); +// teardown(); +// } +// } + +// TEST(HFPClient, PTSECSTests){ +// for (int i = 0; i < hfp_pts_ag_ecs_tests_size(); i++){ +// simulate_test_sequence(&hfp_pts_ag_ecs_tests()[i]); +// teardown(); +// } +// } + +TEST(HFPClient, PTSTWCTests){ + for (int i = 0; i < hfp_pts_ag_twc_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_ag_twc_tests()[i]); + teardown(); + } +} + +TEST(HFPClient, PTSATATests){ + for (int i = 0; i < hfp_pts_ag_ata_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_ag_ata_tests()[i]); + teardown(); + } +} + TEST(HFPClient, PTSSLCTests){ for (int i = 0; i < hfp_pts_ag_slc_tests_size(); i++){ simulate_test_sequence(&hfp_pts_ag_slc_tests()[i]); @@ -446,71 +492,6 @@ TEST(HFPClient, PTSSLCTests){ } } - -// TEST(HFPClient, HFAudioConnectionEstablishedWithCodecNegotiation){ -// setup_hfp_service_level_connection(default_hfp_slc_test()); -// CHECK_EQUAL(service_level_connection_established, 1); - -// setup_hfp_codecs_connection(default_hfp_cc_test()); -// CHECK_EQUAL(codecs_connection_established, 1); - -// hfp_ag_establish_audio_connection(device_addr); -// CHECK_EQUAL(audio_connection_established, 1); - -// hfp_ag_release_audio_connection(device_addr); -// CHECK_EQUAL(audio_connection_established, 0); -// } - -// TEST(HFPClient, HFAudioConnectionEstablishedWithoutCodecNegotiation){ -// hfp_ag_init(rfcomm_channel_nr, supported_features_without_codec_negotiation, -// codecs, sizeof(codecs), -// ag_indicators, ag_indicators_nr, -// hf_indicators, hf_indicators_nr, -// call_hold_services, call_hold_services_nr); - -// setup_hfp_service_level_connection(&hfp_slc_tests()[1]); -// CHECK_EQUAL(service_level_connection_established, 1); - -// setup_hfp_codecs_connection(default_hfp_cc_test()); -// CHECK_EQUAL(codecs_connection_established, 1); - -// hfp_ag_establish_audio_connection(device_addr); -// CHECK_EQUAL(audio_connection_established, 1); - -// hfp_ag_release_audio_connection(device_addr); -// CHECK_EQUAL(audio_connection_established, 0); -// } - -// TEST(HFPClient, HFCodecsConnectionEstablished){ -// for (int i = 0; i < hfp_cc_tests_size(); i++){ -// setup_hfp_service_level_connection(default_hfp_slc_test()); -// CHECK_EQUAL(service_level_connection_established, 1); - -// setup_hfp_codecs_connection(&hfp_cc_tests()[i]); -// CHECK_EQUAL(codecs_connection_established, 1); -// teardown(); -// } -// } - -// TEST(HFPClient, HFServiceLevelConnectionCommands){ -// setup_hfp_service_level_connection(default_hfp_slc_test()); -// CHECK_EQUAL(service_level_connection_established, 1); -// for (int i = 0; i < hfp_slc_cmds_tests_size(); i++){ -// simulate_test_sequence(&hfp_slc_cmds_tests()[i]); -// } -// } - -// TEST(HFPClient, HFServiceLevelConnectionEstablishedWithoutCodecNegotiation){ -// hfp_ag_init(rfcomm_channel_nr, supported_features_without_codec_negotiation, -// codecs, sizeof(codecs), -// ag_indicators, ag_indicators_nr, -// hf_indicators, hf_indicators_nr, -// call_hold_services, call_hold_services_nr); -// setup_hfp_service_level_connection(&hfp_slc_tests()[1]); -// CHECK_EQUAL(service_level_connection_established, 1); -// } - - int main (int argc, const char * argv[]){ hfp_ag_register_packet_handler(packet_handler); diff --git a/test/hfp/hfp_hf_client_test.c b/test/hfp/hfp_hf_client_test.c index e04ad1a0e..96597272b 100644 --- a/test/hfp/hfp_hf_client_test.c +++ b/test/hfp/hfp_hf_client_test.c @@ -487,6 +487,34 @@ TEST_GROUP(HFPClient){ } }; +TEST(HFPClient, PTSRHHTests){ + for (int i = 0; i < hfp_pts_hf_rhh_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_hf_rhh_tests()[i]); + teardown(); + } +} + +TEST(HFPClient, PTSECCTests){ + for (int i = 0; i < hfp_pts_hf_ecc_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_hf_ecc_tests()[i]); + teardown(); + } +} + +TEST(HFPClient, PTSECSTests){ + for (int i = 0; i < hfp_pts_hf_ecs_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_hf_ecs_tests()[i]); + teardown(); + } +} + +TEST(HFPClient, PTSTWCTests){ + for (int i = 0; i < hfp_pts_hf_twc_tests_size(); i++){ + simulate_test_sequence(&hfp_pts_hf_twc_tests()[i]); + teardown(); + } +} + TEST(HFPClient, PTSATATests){ for (int i = 0; i < hfp_pts_hf_ata_tests_size(); i++){ simulate_test_sequence(&hfp_pts_hf_ata_tests()[i]); @@ -501,8 +529,6 @@ TEST(HFPClient, PTSSLCTests){ } } - - int main (int argc, const char * argv[]){ hfp_hf_register_packet_handler(packet_handler); return CommandLineTestRunner::RunAllTests(argc, argv); diff --git a/test/hfp/test_sequences.c b/test/hfp/test_sequences.c index 63bbf870d..41c65d85f 100644 --- a/test/hfp/test_sequences.c +++ b/test/hfp/test_sequences.c @@ -144,7 +144,7 @@ hfp_test_item_t ic_tests[] = { TEST_SEQUENCE(ic_test1) }; -// PTS test sequences +/* PTS test sequences - SLC Group */ const char * TC_AG_SLC_BV_01_C[] = { "USER:a", @@ -634,7 +634,9 @@ hfp_test_item_t pts_hf_slc_tests[] = { TEST_SEQUENCE(TC_HF_SLC_BV_10_I), }; -//// PTS ATA Group + +/* PTS test sequences - ATA Group */ + const char * TC_AG_ATA_BV_01_I[] = { "USER:a", "AT+BRSF=127" , @@ -710,22 +712,494 @@ const char * TC_AG_ATA_BV_02_I[] = { "+CIEV:2,1" , "+CIEV:3,0" , "USER:C", - "USER:A", + "USER:t", "+CIEV:2,0" }; hfp_test_item_t pts_ag_ata_tests[] = { - // TEST_SEQUENCE(TC_AG_ATA_BV_01_I), - // TEST_SEQUENCE(TC_AG_ATA_BV_02_I) + TEST_SEQUENCE(TC_AG_ATA_BV_01_I), + TEST_SEQUENCE(TC_AG_ATA_BV_02_I) }; +const char * TC_HF_ATA_BV_01_I[] = { + "AT+BRSF=951" , + "+BRSF: 511" , + "OK" , + "AT+CIND=?" , + "+CIND: (\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0-3)),(\"callheld\",(0-2)),(\"signal\",(0-5)),(\"roam\",(0-1)),(\"battchg\",(0-5))" , + "OK" , + "AT+CIND?" , + "+CIND: 1,0,0,0,5,0,5" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD: (0,1,1x,2,2x,3,4)" , + "OK" , + "AT+VGM=9" , + "AT+VGS=9" , + "+BSIR: 0" , + "OK" , + "OK" , + "+CIEV: 3,1" , + "RING" , + "RING" , + "RING" , + "USER:f", // "ATA" , + "OK" , + "+CIEV: 2,1" , + "+CIEV: 3,0" , + "USER:B", + "+CIEV: 2,0" +}; + +const char * TC_HF_ATA_BV_02_I[] = { + "AT+BRSF=951" , + "+BRSF: 511" , + "OK" , + "AT+CIND=?" , + "+CIND: (\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0-3)),(\"callheld\",(0-2)),(\"signal\",(0-5)),(\"roam\",(0-1)),(\"battchg\",(0-5))" , + "OK" , + "AT+CIND?" , + "+CIND: 1,0,0,0,5,0,5" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD: (0,1,1x,2,2x,3,4)" , + "OK" , + "AT+VGM=9" , + "AT+VGS=9" , + "+BSIR: 0" , + "OK" , + "OK" , + "+CIEV: 3,1" , + "RING" , + "RING" , + "USER:f", // "ATA" , + "OK" , + "+CIEV: 2,1" , + "+CIEV: 3,0" , + "USER:t" +}; hfp_test_item_t pts_hf_ata_tests[] = { - // TEST_SEQUENCE(TC_HF_ATA_BV_01_I), - // TEST_SEQUENCE(TC_HF_ATA_BV_02_I) + TEST_SEQUENCE(TC_HF_ATA_BV_01_I), + TEST_SEQUENCE(TC_HF_ATA_BV_02_I) }; -////////////// + +/* PTS test sequences - TWC Group */ + +const char * TC_AG_TWC_BV_01_I[] = { + "USER:a", + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,0,0,3,5,0,0" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "USER:c", + "+CIEV:3,1" , + "RING" , + "+CLIP: \"1234567\",129" , + "ATA" , + "OK" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "USER:m", + "+CCWA: \"7654321\",129" , + "+CIEV:3,1" , + "AT+CHLD=0" , + "OK" , + "+CIEV:3,0" , + "USER:C", + "+CIEV:2,0", + "USER:t" +}; + +const char * TC_AG_TWC_BV_02_I[] = { + "USER:a", + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,0,0,3,5,0,0" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "USER:c", + "+CIEV:3,1" , + "RING" , + "+CLIP: \"1234567\",129" , + "ATA" , + "OK" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "USER:m", + "+CCWA: \"7654321\",129" , + "+CIEV:3,1" , + "AT+CHLD=1" , + "OK" , + "+CIEV:3,0" , + "USER:C", + "+CIEV:2,0", + "USER:t" +}; + +const char * TC_AG_TWC_BV_03_I[] = { + "USER:a", + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,0,0,3,5,0,0" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "USER:c", + "+CIEV:3,1" , + "RING" , + "+CLIP: \"1234567\",129" , + "ATA" , + "OK" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "USER:m", + "+CCWA: \"7654321\",129" , + "+CIEV:3,1" , + "AT+CHLD=2" , + "OK" , + "+CIEV:3,0" , + "+CIEV:7,1" , + "AT+CHLD=2" , + "OK" , + "+CIEV:7,1" , + "AT+CHLD=1" , + "OK" , + "+CIEV:7,0" , + "USER:C", + "+CIEV:2,0", + "USER:t" +}; + +const char * TC_AG_TWC_BV_04_I[] = { + "USER:c", + "USER:e", + "USER:m", + "USER:e", + "USER:a", + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,1,0,3,5,0,1" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "AT+CHLD=3" , + "OK" , + "USER:C", + "+CIEV:7,0" , + "+CIEV:2,0", + "USER:t" +}; + +const char * TC_AG_TWC_BV_05_I[] = { + "USER:a" , + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,0,0,3,5,0,0" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "USER:c" , + "+CIEV:3,1" , + "RING" , + "+CLIP: \"1234567\",129" , + "ATA" , + "OK" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "AT+BLDN" , + "+CIEV:7,2" , + "OK" , + "+CIEV:3,2" , + "USER:j" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "+CIEV:7,1" , + "AT+CHLD=1" , + "OK" , + "+CIEV:7,0" , + "USER:C" , + "+CIEV:2,0" , + "USER:t" +}; + +const char * TC_AG_TWC_BV_06_I[] = { + "USER:a" , + "AT+BRSF=127" , + "+BRSF:4079" , + "OK" , + "AT+CIND=?" , + "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))" , + "OK" , + "AT+CIND?" , + "+CIND:1,0,0,3,5,0,0" , + "OK" , + "AT+CMER=3,0,0,1" , + "OK" , + "AT+CHLD=?" , + "+CHLD:(1,1x,2,2x,3)" , + "OK" , + "AT+VGS=9" , + "OK" , + "AT+VGM=9" , + "OK" , + "AT+CLIP=1" , + "OK" , + "AT+CCWA=1" , + "OK" , + "AT+CMEE=1" , + "OK" , + "USER:c" , + "+CIEV:3,1" , + "RING" , + "+CLIP: \"1234567\",129" , + "ATA" , + "OK" , + "+CIEV:2,1" , + "+CIEV:3,0" , + "USER:m" , + "+CCWA: \"7654321\",129" , + "+CIEV:3,1" , + "AT+CHLD=2" , + "OK" , + "+CIEV:3,0" , + "+CIEV:7,1" , + "AT+CHLD=4" , + "OK" , + "+CIEV:2,0" , + "+CIEV:7,0" , + "USER:B" , + "USER:A" +}; + +hfp_test_item_t pts_ag_twc_tests[] = { + TEST_SEQUENCE(TC_AG_TWC_BV_01_I), + TEST_SEQUENCE(TC_AG_TWC_BV_02_I), + TEST_SEQUENCE(TC_AG_TWC_BV_03_I), + TEST_SEQUENCE(TC_AG_TWC_BV_04_I), + TEST_SEQUENCE(TC_AG_TWC_BV_05_I), + TEST_SEQUENCE(TC_AG_TWC_BV_06_I) +}; + + +const char * TC_HF_TWC_BV_01_I[] = { + +}; +const char * TC_HF_TWC_BV_02_I[] = { + +}; +const char * TC_HF_TWC_BV_03_I[] = { + +}; +const char * TC_HF_TWC_BV_04_I[] = { + +}; +const char * TC_HF_TWC_BV_05_I[] = { + +}; +const char * TC_HF_TWC_BV_06_I[] = { + +}; +hfp_test_item_t pts_hf_twc_tests[] = { + TEST_SEQUENCE(TC_HF_TWC_BV_01_I), + TEST_SEQUENCE(TC_HF_TWC_BV_02_I), + TEST_SEQUENCE(TC_HF_TWC_BV_03_I), + TEST_SEQUENCE(TC_HF_TWC_BV_04_I), + TEST_SEQUENCE(TC_HF_TWC_BV_05_I), + TEST_SEQUENCE(TC_HF_TWC_BV_06_I) +}; + + +/* PTS test sequences - ECS Group */ +const char * TC_AG_ECS_BV_01_I[] = {}; +const char * TC_AG_ECS_BV_02_I[] = {}; +const char * TC_AG_ECS_BV_03_I[] = {}; + + +hfp_test_item_t pts_ag_ecs_tests[] = { + TEST_SEQUENCE(TC_AG_ECS_BV_01_I), + TEST_SEQUENCE(TC_AG_ECS_BV_02_I), + TEST_SEQUENCE(TC_AG_ECS_BV_03_I) +}; + + +const char * TC_HF_ECS_BV_01_I[] = {}; +const char * TC_HF_ECS_BV_02_I[] = {}; +const char * TC_HF_ECS_BV_03_I[] = {}; + +hfp_test_item_t pts_hf_ecs_tests[] = { + TEST_SEQUENCE(TC_HF_ECS_BV_01_I), + TEST_SEQUENCE(TC_HF_ECS_BV_02_I), + TEST_SEQUENCE(TC_HF_ECS_BV_03_I) +}; + + +/* PTS test sequences - ECC Group */ +const char * TC_AG_ECC_BV_01_I[] = {}; +const char * TC_AG_ECC_BV_02_I[] = {}; +const char * TC_AG_ECC_BV_03_I[] = {}; +const char * TC_AG_ECC_BV_04_I[] = {}; + +hfp_test_item_t pts_ag_ecc_tests[] = { + TEST_SEQUENCE(TC_AG_ECC_BV_01_I), + TEST_SEQUENCE(TC_AG_ECC_BV_02_I), + TEST_SEQUENCE(TC_AG_ECC_BV_03_I), + TEST_SEQUENCE(TC_AG_ECC_BV_04_I) +}; + +const char * TC_HF_ECC_BV_01_I[] = {}; +const char * TC_HF_ECC_BV_02_I[] = {}; +const char * TC_HF_ECC_BV_03_I[] = {}; +const char * TC_HF_ECC_BV_04_I[] = {}; + +hfp_test_item_t pts_hf_ecc_tests[] = { + TEST_SEQUENCE(TC_HF_ECC_BV_01_I), + TEST_SEQUENCE(TC_HF_ECC_BV_02_I), + TEST_SEQUENCE(TC_HF_ECC_BV_03_I), + TEST_SEQUENCE(TC_HF_ECC_BV_04_I) +}; + + +/* PTS test sequences - RHH Group */ +const char * TC_AG_RHH_BV_01_I[] = {}; +const char * TC_AG_RHH_BV_02_I[] = {}; +const char * TC_AG_RHH_BV_03_I[] = {}; +const char * TC_AG_RHH_BV_04_I[] = {}; +const char * TC_AG_RHH_BV_05_I[] = {}; +const char * TC_AG_RHH_BV_06_I[] = {}; +const char * TC_AG_RHH_BV_07_I[] = {}; +const char * TC_AG_RHH_BV_08_I[] = {}; + +hfp_test_item_t pts_ag_rhh_tests[] = { + TEST_SEQUENCE(TC_AG_RHH_BV_01_I), + TEST_SEQUENCE(TC_AG_RHH_BV_02_I), + TEST_SEQUENCE(TC_AG_RHH_BV_03_I), + TEST_SEQUENCE(TC_AG_RHH_BV_04_I), + TEST_SEQUENCE(TC_AG_RHH_BV_05_I), + TEST_SEQUENCE(TC_AG_RHH_BV_06_I), + TEST_SEQUENCE(TC_AG_RHH_BV_07_I), + TEST_SEQUENCE(TC_AG_RHH_BV_08_I) +}; + +const char * TC_HF_RHH_BV_01_I[] = {}; +const char * TC_HF_RHH_BV_02_I[] = {}; +const char * TC_HF_RHH_BV_03_I[] = {}; +const char * TC_HF_RHH_BV_04_I[] = {}; +const char * TC_HF_RHH_BV_05_I[] = {}; +const char * TC_HF_RHH_BV_06_I[] = {}; +const char * TC_HF_RHH_BV_07_I[] = {}; +const char * TC_HF_RHH_BV_08_I[] = {}; + +hfp_test_item_t pts_hf_rhh_tests[] = { + TEST_SEQUENCE(TC_HF_RHH_BV_01_I), + TEST_SEQUENCE(TC_HF_RHH_BV_02_I), + TEST_SEQUENCE(TC_HF_RHH_BV_03_I), + TEST_SEQUENCE(TC_HF_RHH_BV_04_I), + TEST_SEQUENCE(TC_HF_RHH_BV_05_I), + TEST_SEQUENCE(TC_HF_RHH_BV_06_I), + TEST_SEQUENCE(TC_HF_RHH_BV_07_I), + TEST_SEQUENCE(TC_HF_RHH_BV_08_I) +}; + +///////// static int test_item_size = sizeof(hfp_test_item_t); // CC @@ -747,4 +1221,29 @@ hfp_test_item_t * hfp_pts_ag_ata_tests(){ return pts_ag_ata_tests;} int hfp_pts_hf_ata_tests_size(){ return sizeof(pts_hf_ata_tests)/test_item_size;} hfp_test_item_t * hfp_pts_hf_ata_tests(){ return pts_hf_ata_tests;} +// PTS - TWC Group +int hfp_pts_ag_twc_tests_size(){ return sizeof(pts_ag_twc_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_ag_twc_tests(){ return pts_ag_twc_tests;} +int hfp_pts_hf_twc_tests_size(){ return sizeof(pts_hf_twc_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_hf_twc_tests(){ return pts_hf_twc_tests;} + +// PTS - ECS Group +int hfp_pts_ag_ecs_tests_size(){ return sizeof(pts_ag_ecs_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_ag_ecs_tests(){ return pts_ag_ecs_tests;} +int hfp_pts_hf_ecs_tests_size(){ return sizeof(pts_hf_ecs_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_hf_ecs_tests(){ return pts_hf_ecs_tests;} + +// PTS - ECC Group +int hfp_pts_ag_ecc_tests_size(){ return sizeof(pts_ag_ecc_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_ag_ecc_tests(){ return pts_ag_ecc_tests;} +int hfp_pts_hf_ecc_tests_size(){ return sizeof(pts_hf_ecc_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_hf_ecc_tests(){ return pts_hf_ecc_tests;} + +// PTS - RHH Group +int hfp_pts_ag_rhh_tests_size(){ return sizeof(pts_ag_rhh_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_ag_rhh_tests(){ return pts_ag_rhh_tests;} +int hfp_pts_hf_rhh_tests_size(){ return sizeof(pts_hf_rhh_tests)/test_item_size;} +hfp_test_item_t * hfp_pts_hf_rhh_tests(){ return pts_hf_rhh_tests;} + + \ No newline at end of file diff --git a/test/hfp/test_sequences.h b/test/hfp/test_sequences.h index 2983cb46d..144e4e45e 100644 --- a/test/hfp/test_sequences.h +++ b/test/hfp/test_sequences.h @@ -69,3 +69,27 @@ hfp_test_item_t * hfp_pts_ag_ata_tests(); int hfp_pts_hf_ata_tests_size(); hfp_test_item_t * hfp_pts_hf_ata_tests(); +/* PTS test sequences - TWC Group */ +int hfp_pts_ag_twc_tests_size(); +hfp_test_item_t * hfp_pts_ag_twc_tests(); +int hfp_pts_hf_twc_tests_size(); +hfp_test_item_t * hfp_pts_hf_twc_tests(); + +/* PTS test sequences - ECS Group */ +int hfp_pts_ag_ecs_tests_size(); +hfp_test_item_t * hfp_pts_ag_ecs_tests(); +int hfp_pts_hf_ecs_tests_size(); +hfp_test_item_t * hfp_pts_hf_ecs_tests(); + +/* PTS test sequences - ECC Group */ +int hfp_pts_ag_ecc_tests_size(); +hfp_test_item_t * hfp_pts_ag_ecc_tests(); +int hfp_pts_hf_ecc_tests_size(); +hfp_test_item_t * hfp_pts_hf_ecc_tests(); + +/* PTS test sequences - RHH Group */ +int hfp_pts_ag_rhh_tests_size(); +hfp_test_item_t * hfp_pts_ag_rhh_tests(); +int hfp_pts_hf_rhh_tests_size(); +hfp_test_item_t * hfp_pts_hf_rhh_tests(); +