1/* 2 * Copyright 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "l2cap_sdu.h" 18 19#include <gtest/gtest.h> 20#include <memory> 21 22#include "l2cap_test_packets.h" 23 24using std::vector; 25 26namespace test_vendor_lib { 27 28std::shared_ptr<L2capSdu> packet_1 = 29 L2capSdu::L2capSduConstructor(l2cap_test_packet_1); 30std::shared_ptr<L2capSdu> packet_2 = 31 L2capSdu::L2capSduConstructor(l2cap_test_packet_2); 32std::shared_ptr<L2capSdu> packet_3 = 33 L2capSdu::L2capSduConstructor(l2cap_test_packet_3); 34std::shared_ptr<L2capSdu> packet_4 = 35 L2capSdu::L2capSduConstructor(l2cap_test_packet_4); 36std::shared_ptr<L2capSdu> packet_5 = 37 L2capSdu::L2capSduConstructor(l2cap_test_packet_5); 38std::shared_ptr<L2capSdu> packet_6 = 39 L2capSdu::L2capSduConstructor(l2cap_test_packet_6); 40std::shared_ptr<L2capSdu> packet_7 = 41 L2capSdu::L2capSduConstructor(l2cap_test_packet_7); 42std::shared_ptr<L2capSdu> packet_8 = 43 L2capSdu::L2capSduConstructor(l2cap_test_packet_8); 44std::shared_ptr<L2capSdu> packet_9 = 45 L2capSdu::L2capSduConstructor(l2cap_test_packet_9); 46 47class L2capSduTest : public ::testing::Test { 48 public: 49 L2capSduTest(){}; 50 51 ~L2capSduTest() = default; 52 53}; // L2capSduTest 54 55TEST_F(L2capSduTest, getFcsTest) { 56 EXPECT_EQ(0x72aa, packet_1->get_fcs()); 57 EXPECT_EQ(0x5b57, packet_2->get_fcs()); 58 EXPECT_EQ(0xe644, packet_3->get_fcs()); 59 EXPECT_EQ(0x21b0, packet_4->get_fcs()); 60 EXPECT_EQ(0xae96, packet_5->get_fcs()); 61 EXPECT_EQ(0x9254, packet_6->get_fcs()); 62 EXPECT_EQ(0xf6fa, packet_7->get_fcs()); 63 EXPECT_EQ(0x1da4, packet_8->get_fcs()); 64 EXPECT_EQ(0x781a, packet_9->get_fcs()); 65} 66 67TEST_F(L2capSduTest, getPayloadLengthTest) { 68 EXPECT_EQ(l2cap_test_packet_1.size() - 4, packet_1->get_payload_length()); 69 EXPECT_EQ(l2cap_test_packet_2.size() - 4, packet_2->get_payload_length()); 70 EXPECT_EQ(l2cap_test_packet_3.size() - 4, packet_3->get_payload_length()); 71 EXPECT_EQ(l2cap_test_packet_4.size() - 4, packet_4->get_payload_length()); 72 EXPECT_EQ(l2cap_test_packet_5.size() - 4, packet_5->get_payload_length()); 73 EXPECT_EQ(l2cap_test_packet_6.size() - 4, packet_6->get_payload_length()); 74 EXPECT_EQ(l2cap_test_packet_7.size() - 4, packet_7->get_payload_length()); 75 EXPECT_EQ(l2cap_test_packet_8.size() - 4, packet_8->get_payload_length()); 76 EXPECT_EQ(l2cap_test_packet_9.size() - 4, packet_9->get_payload_length()); 77} 78 79TEST_F(L2capSduTest, calculateFcsTest) { 80 EXPECT_EQ(0x72aa, packet_1->calculate_fcs()); 81 EXPECT_EQ(0x5b57, packet_2->calculate_fcs()); 82 EXPECT_EQ(0xe644, packet_3->calculate_fcs()); 83 EXPECT_EQ(0x21b0, packet_4->calculate_fcs()); 84 EXPECT_EQ(0xae96, packet_5->calculate_fcs()); 85 EXPECT_EQ(0x9254, packet_6->calculate_fcs()); 86 EXPECT_EQ(0xf6fa, packet_7->calculate_fcs()); 87 EXPECT_EQ(0x1da4, packet_8->calculate_fcs()); 88 EXPECT_EQ(0x781a, packet_9->calculate_fcs()); 89} 90 91TEST_F(L2capSduTest, getControlsTest) { 92 EXPECT_EQ(0x4102, packet_1->get_controls()); 93 EXPECT_EQ(0xc104, packet_2->get_controls()); 94 EXPECT_EQ(0xc106, packet_3->get_controls()); 95 EXPECT_EQ(0xc108, packet_4->get_controls()); 96 EXPECT_EQ(0xc10a, packet_5->get_controls()); 97 EXPECT_EQ(0xc10c, packet_6->get_controls()); 98 EXPECT_EQ(0xc10e, packet_7->get_controls()); 99 EXPECT_EQ(0xc110, packet_8->get_controls()); 100 EXPECT_EQ(0x8112, packet_9->get_controls()); 101} 102 103TEST_F(L2capSduTest, getTotalLengthTest) { 104 EXPECT_EQ(0x1f95, packet_1->get_total_l2cap_length()); 105} 106 107TEST_F(L2capSduTest, getVectorSizeTest) { 108 EXPECT_EQ(l2cap_test_packet_1.size(), packet_1->get_vector_size()); 109 EXPECT_EQ(l2cap_test_packet_2.size(), packet_2->get_vector_size()); 110 EXPECT_EQ(l2cap_test_packet_3.size(), packet_3->get_vector_size()); 111 EXPECT_EQ(l2cap_test_packet_4.size(), packet_4->get_vector_size()); 112 EXPECT_EQ(l2cap_test_packet_5.size(), packet_5->get_vector_size()); 113 EXPECT_EQ(l2cap_test_packet_6.size(), packet_6->get_vector_size()); 114 EXPECT_EQ(l2cap_test_packet_7.size(), packet_7->get_vector_size()); 115 EXPECT_EQ(l2cap_test_packet_8.size(), packet_8->get_vector_size()); 116 EXPECT_EQ(l2cap_test_packet_9.size(), packet_9->get_vector_size()); 117} 118 119TEST_F(L2capSduTest, getCidTest) { 120 EXPECT_EQ(0x0047, packet_1->get_channel_id()); 121 EXPECT_EQ(0x0047, packet_2->get_channel_id()); 122 EXPECT_EQ(0x0047, packet_3->get_channel_id()); 123 EXPECT_EQ(0x0047, packet_4->get_channel_id()); 124 EXPECT_EQ(0x0047, packet_5->get_channel_id()); 125 EXPECT_EQ(0x0047, packet_6->get_channel_id()); 126 EXPECT_EQ(0x0047, packet_7->get_channel_id()); 127 EXPECT_EQ(0x0047, packet_8->get_channel_id()); 128 EXPECT_EQ(0x0047, packet_9->get_channel_id()); 129} 130 131} // namespace test_vendor_lib 132