xref: /btstack/test/sdp_client/service_search_query.cpp (revision 1d3bd1e51ca491d6783233c8d7431c44f06daa5a)
1*1d3bd1e5SMatthias Ringwald 
2*1d3bd1e5SMatthias Ringwald // *****************************************************************************
3*1d3bd1e5SMatthias Ringwald //
4*1d3bd1e5SMatthias Ringwald // test rfcomm query tests
5*1d3bd1e5SMatthias Ringwald //
6*1d3bd1e5SMatthias Ringwald // *****************************************************************************
7*1d3bd1e5SMatthias Ringwald 
8*1d3bd1e5SMatthias Ringwald #include "btstack_config.h"
9*1d3bd1e5SMatthias Ringwald 
10*1d3bd1e5SMatthias Ringwald #include <stdint.h>
11*1d3bd1e5SMatthias Ringwald #include <stdio.h>
12*1d3bd1e5SMatthias Ringwald #include <stdlib.h>
13*1d3bd1e5SMatthias Ringwald #include <string.h>
14*1d3bd1e5SMatthias Ringwald 
15*1d3bd1e5SMatthias Ringwald #include "btstack_event.h"
16*1d3bd1e5SMatthias Ringwald #include "btstack_memory.h"
17*1d3bd1e5SMatthias Ringwald #include "btstack_run_loop.h"
18*1d3bd1e5SMatthias Ringwald #include "hci.h"
19*1d3bd1e5SMatthias Ringwald #include "hci_cmd.h"
20*1d3bd1e5SMatthias Ringwald #include "hci_dump.h"
21*1d3bd1e5SMatthias Ringwald #include "l2cap.h"
22*1d3bd1e5SMatthias Ringwald #include "mock.h"
23*1d3bd1e5SMatthias Ringwald #include "classic/sdp_util.h"
24*1d3bd1e5SMatthias Ringwald 
25*1d3bd1e5SMatthias Ringwald #include "CppUTest/TestHarness.h"
26*1d3bd1e5SMatthias Ringwald #include "CppUTest/CommandLineTestRunner.h"
27*1d3bd1e5SMatthias Ringwald 
28*1d3bd1e5SMatthias Ringwald 
29*1d3bd1e5SMatthias Ringwald static uint8_t  sdp_test_record_list[] = {
30*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x00,
31*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x01,
32*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x02,
33*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x03,
34*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x04,
35*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x05,
36*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x06,
37*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x07,
38*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x08,
39*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x09,
40*1d3bd1e5SMatthias Ringwald 0x00, 0x00, 0x00, 0x0A
41*1d3bd1e5SMatthias Ringwald };
42*1d3bd1e5SMatthias Ringwald 
handle_sdp_parser_event(uint8_t packet_type,uint16_t channel,uint8_t * packet,uint16_t size)43*1d3bd1e5SMatthias Ringwald static void handle_sdp_parser_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
44*1d3bd1e5SMatthias Ringwald     static uint32_t record_handle = sdp_test_record_list[0];
45*1d3bd1e5SMatthias Ringwald     switch (packet[0]){
46*1d3bd1e5SMatthias Ringwald         case SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE:
47*1d3bd1e5SMatthias Ringwald             CHECK_EQUAL(sdp_event_query_service_record_handle_get_record_handle(packet), record_handle);
48*1d3bd1e5SMatthias Ringwald             record_handle++;
49*1d3bd1e5SMatthias Ringwald             break;
50*1d3bd1e5SMatthias Ringwald         case SDP_EVENT_QUERY_COMPLETE:
51*1d3bd1e5SMatthias Ringwald             printf("General query done with status %d.\n", sdp_event_query_complete_get_status(packet));
52*1d3bd1e5SMatthias Ringwald             break;
53*1d3bd1e5SMatthias Ringwald     }
54*1d3bd1e5SMatthias Ringwald }
55*1d3bd1e5SMatthias Ringwald 
56*1d3bd1e5SMatthias Ringwald 
TEST_GROUP(SDPClient)57*1d3bd1e5SMatthias Ringwald TEST_GROUP(SDPClient){
58*1d3bd1e5SMatthias Ringwald     void setup(void){
59*1d3bd1e5SMatthias Ringwald         sdp_parser_init(&handle_sdp_parser_event);
60*1d3bd1e5SMatthias Ringwald         sdp_parser_init_service_search();
61*1d3bd1e5SMatthias Ringwald     }
62*1d3bd1e5SMatthias Ringwald };
63*1d3bd1e5SMatthias Ringwald 
64*1d3bd1e5SMatthias Ringwald 
TEST(SDPClient,QueryData)65*1d3bd1e5SMatthias Ringwald TEST(SDPClient, QueryData){
66*1d3bd1e5SMatthias Ringwald     uint16_t test_size = sizeof(sdp_test_record_list)/4;
67*1d3bd1e5SMatthias Ringwald     sdp_parser_handle_service_search(sdp_test_record_list, test_size, test_size);
68*1d3bd1e5SMatthias Ringwald }
69*1d3bd1e5SMatthias Ringwald 
70*1d3bd1e5SMatthias Ringwald 
main(int argc,const char * argv[])71*1d3bd1e5SMatthias Ringwald int main (int argc, const char * argv[]){
72*1d3bd1e5SMatthias Ringwald     return CommandLineTestRunner::RunAllTests(argc, argv);
73*1d3bd1e5SMatthias Ringwald }
74