diff options
-rw-r--r-- | android/app/Android.bp | 35 | ||||
-rw-r--r-- | system/osi/Android.bp | 2 | ||||
-rw-r--r-- | system/osi/BUILD.gn | 2 | ||||
-rw-r--r-- | system/osi/include/ringbuffer.h | 62 | ||||
-rw-r--r-- | system/osi/src/ringbuffer.cc | 131 | ||||
-rw-r--r-- | system/osi/test/fuzzers/ringbuffer/Android.bp | 25 | ||||
-rw-r--r-- | system/osi/test/fuzzers/ringbuffer/fuzz_ringbuffer.cc | 160 | ||||
-rw-r--r-- | system/osi/test/ringbuffer_test.cc | 139 | ||||
-rw-r--r-- | system/pdl/hci/Android.bp | 15 | ||||
-rw-r--r-- | system/pdl/security/Android.bp | 15 | ||||
-rw-r--r-- | system/test/Android.bp | 14 | ||||
-rw-r--r-- | system/test/mock/mock_main_shim_stack.cc | 45 | ||||
-rw-r--r-- | system/test/mock/mock_osi_ringbuffer.cc | 84 | ||||
-rw-r--r-- | system/test/mock/mock_osi_ringbuffer.h | 139 | ||||
-rw-r--r-- | system/test/stub/osi.cc | 27 |
15 files changed, 0 insertions, 895 deletions
diff --git a/android/app/Android.bp b/android/app/Android.bp index b7e4929cbb..de5c43ff79 100644 --- a/android/app/Android.bp +++ b/android/app/Android.bp @@ -165,41 +165,6 @@ cc_library_shared { min_sdk_version: "Tiramisu", } -cc_library { - name: "libbluetooth-core", - defaults: ["fluoride_defaults"], - header_libs: [ - "jni_headers", - "libbluetooth_headers", - ], - static_libs: [ - "lib-bt-packets", - "lib-bt-packets-base", - "libbt-bta-core", - "libbt-common", - "libbt-hci", - "libbt-stack-core", - "libbtcore", - "libbtdevice", - "libbte", - "libbtif-core", - "libosi", - - "libbluetooth-types", - ], - cflags: [ - // we export all classes, so change default visibility, - // instead of having EXPORT_SYMBOL on each class - "-fvisibility=default", - ], - sanitize: { - scs: true, - }, - apex_available: ["com.android.bt"], - host_supported: true, - min_sdk_version: "Tiramisu", -} - android_library { name: "BluetoothLib", defaults: ["bluetooth_framework_errorprone_rules"], diff --git a/system/osi/Android.bp b/system/osi/Android.bp index 519d0594a8..9d26c957ec 100644 --- a/system/osi/Android.bp +++ b/system/osi/Android.bp @@ -56,7 +56,6 @@ cc_library_static { "src/mutex.cc", "src/properties.cc", "src/reactor.cc", - "src/ringbuffer.cc", "src/socket.cc", "src/socket_utils/socket_local_client.cc", "src/socket_utils/socket_local_server.cc", @@ -116,7 +115,6 @@ cc_test { "test/list_test.cc", "test/properties_test.cc", "test/reactor_test.cc", - "test/ringbuffer_test.cc", "test/stack_power_telemetry_test.cc", "test/thread_test.cc", "test/wakelock_test.cc", // test internal sources only used inside the libosi diff --git a/system/osi/BUILD.gn b/system/osi/BUILD.gn index ffc3dfcac8..5bdf04c1e9 100644 --- a/system/osi/BUILD.gn +++ b/system/osi/BUILD.gn @@ -27,7 +27,6 @@ static_library("osi") { "src/mutex.cc", "src/properties.cc", "src/reactor.cc", - "src/ringbuffer.cc", "src/socket.cc", # TODO(mcchou): Remove these sources after platform specific @@ -76,7 +75,6 @@ if (use.test) { "test/list_test.cc", "test/properties_test.cc", "test/reactor_test.cc", - "test/ringbuffer_test.cc", "test/thread_test.cc", "test/internal/semaphore_test.cc", diff --git a/system/osi/include/ringbuffer.h b/system/osi/include/ringbuffer.h deleted file mode 100644 index 03a7447b57..0000000000 --- a/system/osi/include/ringbuffer.h +++ /dev/null @@ -1,62 +0,0 @@ -/****************************************************************************** - * - * Copyright 2015 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -#pragma once - -#include <stdint.h> -#include <sys/types.h> - -typedef struct ringbuffer_t ringbuffer_t; - -// NOTE: -// None of the functions below are thread safe when it comes to accessing the -// *rb pointer. It is *NOT* possible to insert and pop/delete at the same time. -// Callers must protect the *rb pointer separately. - -// Create a ringbuffer with the specified size -// Returns NULL if memory allocation failed. Resulting pointer must be freed -// using |ringbuffer_free|. -ringbuffer_t* ringbuffer_init(const size_t size); - -// Frees the ringbuffer structure and buffer -// Save to call with NULL. -void ringbuffer_free(ringbuffer_t* rb); - -// Returns remaining buffer size -size_t ringbuffer_available(const ringbuffer_t* rb); - -// Returns size of data in buffer -size_t ringbuffer_size(const ringbuffer_t* rb); - -// Attempts to insert up to |length| bytes of data at |p| into the buffer -// Return actual number of bytes added. Can be less than |length| if buffer -// is full. -size_t ringbuffer_insert(ringbuffer_t* rb, const uint8_t* p, size_t length); - -// Peek |length| number of bytes from the ringbuffer, starting at |offset|, -// into the buffer |p|. Return the actual number of bytes peeked. Can be less -// than |length| if there is less than |length| data available. |offset| must -// be non-negative. -size_t ringbuffer_peek(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length); - -// Does the same as |ringbuffer_peek|, but also advances the ring buffer head -size_t ringbuffer_pop(ringbuffer_t* rb, uint8_t* p, size_t length); - -// Deletes |length| bytes from the ringbuffer starting from the head -// Return actual number of bytes deleted. -size_t ringbuffer_delete(ringbuffer_t* rb, size_t length); diff --git a/system/osi/src/ringbuffer.cc b/system/osi/src/ringbuffer.cc deleted file mode 100644 index 0631432458..0000000000 --- a/system/osi/src/ringbuffer.cc +++ /dev/null @@ -1,131 +0,0 @@ -/****************************************************************************** - * - * Copyright 2015 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -#include "osi/include/ringbuffer.h" - -#include <bluetooth/log.h> -#include <stdlib.h> - -#include "osi/include/allocator.h" - -using namespace bluetooth; - -struct ringbuffer_t { - size_t total; - size_t available; - uint8_t* base; - uint8_t* head; - uint8_t* tail; -}; - -ringbuffer_t* ringbuffer_init(const size_t size) { - ringbuffer_t* p = static_cast<ringbuffer_t*>(osi_calloc(sizeof(ringbuffer_t))); - - p->base = static_cast<uint8_t*>(osi_calloc(size)); - p->head = p->tail = p->base; - p->total = p->available = size; - - return p; -} - -void ringbuffer_free(ringbuffer_t* rb) { - if (rb != NULL) { - osi_free(rb->base); - } - osi_free(rb); -} - -size_t ringbuffer_available(const ringbuffer_t* rb) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - return rb->available; -} - -size_t ringbuffer_size(const ringbuffer_t* rb) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - return rb->total - rb->available; -} - -size_t ringbuffer_insert(ringbuffer_t* rb, const uint8_t* p, size_t length) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - log::assert_that(p != nullptr, "assert failed: p != nullptr"); - - if (length > ringbuffer_available(rb)) { - length = ringbuffer_available(rb); - } - - for (size_t i = 0; i != length; ++i) { - *rb->tail++ = *p++; - if (rb->tail >= (rb->base + rb->total)) { - rb->tail = rb->base; - } - } - - rb->available -= length; - return length; -} - -size_t ringbuffer_delete(ringbuffer_t* rb, size_t length) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - - if (length > ringbuffer_size(rb)) { - length = ringbuffer_size(rb); - } - - rb->head += length; - if (rb->head >= (rb->base + rb->total)) { - rb->head -= rb->total; - } - - rb->available += length; - return length; -} - -size_t ringbuffer_peek(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - log::assert_that(p != nullptr, "assert failed: p != nullptr"); - log::assert_that(offset >= 0, "assert failed: offset >= 0"); - log::assert_that((size_t)offset <= ringbuffer_size(rb), - "assert failed: (size_t)offset <= ringbuffer_size(rb)"); - - uint8_t* b = ((rb->head - rb->base + offset) % rb->total) + rb->base; - const size_t bytes_to_copy = - (offset + length > ringbuffer_size(rb)) ? ringbuffer_size(rb) - offset : length; - - for (size_t copied = 0; copied < bytes_to_copy; ++copied) { - *p++ = *b++; - if (b >= (rb->base + rb->total)) { - b = rb->base; - } - } - - return bytes_to_copy; -} - -size_t ringbuffer_pop(ringbuffer_t* rb, uint8_t* p, size_t length) { - log::assert_that(rb != nullptr, "assert failed: rb != nullptr"); - log::assert_that(p != nullptr, "assert failed: p != nullptr"); - - const size_t copied = ringbuffer_peek(rb, 0, p, length); - rb->head += copied; - if (rb->head >= (rb->base + rb->total)) { - rb->head -= rb->total; - } - - rb->available += copied; - return copied; -} diff --git a/system/osi/test/fuzzers/ringbuffer/Android.bp b/system/osi/test/fuzzers/ringbuffer/Android.bp deleted file mode 100644 index 08d308c70c..0000000000 --- a/system/osi/test/fuzzers/ringbuffer/Android.bp +++ /dev/null @@ -1,25 +0,0 @@ -package { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "system_bt_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["system_bt_license"], -} - -cc_fuzz { - name: "libosi_fuzz_ringbuffer", - defaults: ["libosi_fuzz_defaults"], - host_supported: true, - srcs: [ - "fuzz_ringbuffer.cc", - ], - static_libs: [ - "libbase", - "libbluetooth_log", - "libchrome", - "libcom.android.sysprop.bluetooth.wrapped", - "liblog", - "libosi", - ], -} diff --git a/system/osi/test/fuzzers/ringbuffer/fuzz_ringbuffer.cc b/system/osi/test/fuzzers/ringbuffer/fuzz_ringbuffer.cc deleted file mode 100644 index f676bb6f83..0000000000 --- a/system/osi/test/fuzzers/ringbuffer/fuzz_ringbuffer.cc +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <fuzzer/FuzzedDataProvider.h> - -#include "osi/include/ringbuffer.h" - -#define MAX_NUM_FUNCTIONS 512 -#define MAX_BUF_SIZE 2048 - -ringbuffer_t* getArbitraryRingBuf(std::vector<ringbuffer_t*>* ringbuf_vector, - FuzzedDataProvider* dataProvider) { - if (ringbuf_vector->empty()) { - return nullptr; - } - - size_t index = dataProvider->ConsumeIntegralInRange<size_t>(0, ringbuf_vector->size() - 1); - return ringbuf_vector->at(index); -} - -void callArbitraryFunction(std::vector<ringbuffer_t*>* ringbuf_vector, - FuzzedDataProvider* dataProvider) { - // Get our function identifier - char func_id = dataProvider->ConsumeIntegralInRange<char>(0, 8); - - ringbuffer_t* buf = nullptr; - switch (func_id) { - // Let 0 be a NO-OP, as ConsumeIntegral will return 0 on an empty buffer - // (This will likely bias whatever action is here to run more often) - case 0: - return; - case 1: { - size_t size = dataProvider->ConsumeIntegralInRange<size_t>(0, MAX_BUF_SIZE); - buf = ringbuffer_init(size); - if (buf) { - ringbuf_vector->push_back(buf); - } - } - return; - case 2: { - if (ringbuf_vector->empty()) { - return; - } - size_t index = dataProvider->ConsumeIntegralInRange<size_t>(0, ringbuf_vector->size() - 1); - buf = ringbuf_vector->at(index); - if (buf) { - ringbuffer_free(buf); - ringbuf_vector->erase(ringbuf_vector->begin() + index); - } - } - return; - case 3: - buf = getArbitraryRingBuf(ringbuf_vector, dataProvider); - if (buf) { - ringbuffer_available(buf); - } - return; - case 4: - buf = getArbitraryRingBuf(ringbuf_vector, dataProvider); - if (buf) { - ringbuffer_size(buf); - } - return; - case 5: { - buf = getArbitraryRingBuf(ringbuf_vector, dataProvider); - size_t size = dataProvider->ConsumeIntegralInRange<size_t>(1, MAX_BUF_SIZE); - if (buf == nullptr || size == 0) { - return; - } - void* src_buf = malloc(size); - if (src_buf == nullptr) { - return; - } - std::vector<uint8_t> bytes = dataProvider->ConsumeBytes<uint8_t>(size); - memcpy(src_buf, bytes.data(), bytes.size()); - - ringbuffer_insert(buf, reinterpret_cast<uint8_t*>(src_buf), size); - free(src_buf); - } - return; - case 6: - case 7: { - buf = getArbitraryRingBuf(ringbuf_vector, dataProvider); - if (buf == nullptr) { - return; - } - size_t max_size = ringbuffer_size(buf); - if (max_size == 0) { - return; - } - size_t size = dataProvider->ConsumeIntegralInRange<size_t>(1, max_size); - - // NOTE: 0-size may be a valid case, that crashes currently. - if (size == 0) { - return; - } - - void* dst_buf = malloc(size); - if (dst_buf == nullptr) { - return; - } - if (func_id == 6) { - off_t offset = dataProvider->ConsumeIntegral<off_t>(); - if (offset >= 0 && static_cast<size_t>(offset) <= ringbuffer_size(buf)) { - ringbuffer_peek(buf, offset, reinterpret_cast<uint8_t*>(dst_buf), size); - } - } else { - ringbuffer_pop(buf, reinterpret_cast<uint8_t*>(dst_buf), size); - } - free(dst_buf); - } - return; - case 8: { - buf = getArbitraryRingBuf(ringbuf_vector, dataProvider); - size_t size = dataProvider->ConsumeIntegralInRange<size_t>(0, MAX_BUF_SIZE); - if (buf) { - ringbuffer_delete(buf, size); - } - } - return; - default: - return; - } -} - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { - // Init our wrapper - FuzzedDataProvider dataProvider(Data, Size); - - // Keep a vector of our allocated objects for freeing later - std::vector<ringbuffer_t*> ringbuf_vector; - - // Call some functions, create some buffers - size_t num_functions = dataProvider.ConsumeIntegralInRange<size_t>(0, MAX_NUM_FUNCTIONS); - for (size_t i = 0; i < num_functions; i++) { - callArbitraryFunction(&ringbuf_vector, &dataProvider); - } - - // Free anything we've allocated - for (const auto& ringbuf : ringbuf_vector) { - if (ringbuf != nullptr) { - ringbuffer_free(ringbuf); - } - } - ringbuf_vector.clear(); - return 0; -} diff --git a/system/osi/test/ringbuffer_test.cc b/system/osi/test/ringbuffer_test.cc deleted file mode 100644 index 06f38ff2de..0000000000 --- a/system/osi/test/ringbuffer_test.cc +++ /dev/null @@ -1,139 +0,0 @@ -#include "osi/include/ringbuffer.h" - -#include <gtest/gtest.h> - -#include "osi/include/osi.h" - -TEST(RingbufferTest, test_new_simple) { - ringbuffer_t* rb = ringbuffer_init(4096); - ASSERT_TRUE(rb != NULL); - EXPECT_EQ((size_t)4096, ringbuffer_available(rb)); - EXPECT_EQ((size_t)0, ringbuffer_size(rb)); - ringbuffer_free(rb); -} - -TEST(RingbufferTest, test_insert_basic) { - ringbuffer_t* rb = ringbuffer_init(16); - - uint8_t buffer[10] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A}; - ringbuffer_insert(rb, buffer, 10); - EXPECT_EQ((size_t)10, ringbuffer_size(rb)); - EXPECT_EQ((size_t)6, ringbuffer_available(rb)); - - uint8_t peek[10] = {0}; - size_t peeked = ringbuffer_peek(rb, 0, peek, 10); - EXPECT_EQ((size_t)10, ringbuffer_size(rb)); // Ensure size doesn't change - EXPECT_EQ((size_t)6, ringbuffer_available(rb)); - EXPECT_EQ((size_t)10, peeked); - ASSERT_EQ(0, memcmp(buffer, peek, peeked)); - - ringbuffer_free(rb); -} - -TEST(RingbufferTest, test_insert_full) { - ringbuffer_t* rb = ringbuffer_init(5); - - uint8_t aa[] = {0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA}; - uint8_t bb[] = {0xBB, 0xBB, 0xBB, 0xBB, 0xBB}; - uint8_t peek[5] = {0}; - - size_t added = ringbuffer_insert(rb, aa, 7); - EXPECT_EQ((size_t)5, added); - EXPECT_EQ((size_t)0, ringbuffer_available(rb)); - EXPECT_EQ((size_t)5, ringbuffer_size(rb)); - - added = ringbuffer_insert(rb, bb, 5); - EXPECT_EQ((size_t)0, added); - EXPECT_EQ((size_t)0, ringbuffer_available(rb)); - EXPECT_EQ((size_t)5, ringbuffer_size(rb)); - - size_t peeked = ringbuffer_peek(rb, 0, peek, 5); - EXPECT_EQ((size_t)5, peeked); - EXPECT_EQ((size_t)0, ringbuffer_available(rb)); - EXPECT_EQ((size_t)5, ringbuffer_size(rb)); - - ASSERT_EQ(0, memcmp(aa, peek, peeked)); - - ringbuffer_free(rb); -} - -TEST(RingbufferTest, test_multi_insert_delete) { - ringbuffer_t* rb = ringbuffer_init(16); - EXPECT_EQ((size_t)16, ringbuffer_available(rb)); - EXPECT_EQ((size_t)0, ringbuffer_size(rb)); - - // Insert some bytes - - uint8_t aa[] = {0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA}; - size_t added = ringbuffer_insert(rb, aa, sizeof(aa)); - EXPECT_EQ((size_t)8, added); - EXPECT_EQ((size_t)8, ringbuffer_available(rb)); - EXPECT_EQ((size_t)8, ringbuffer_size(rb)); - - uint8_t bb[] = {0xBB, 0xBB, 0xBB, 0xBB, 0xBB}; - ringbuffer_insert(rb, bb, sizeof(bb)); - EXPECT_EQ((size_t)3, ringbuffer_available(rb)); - EXPECT_EQ((size_t)13, ringbuffer_size(rb)); - - uint8_t content[] = {0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, - 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB}; - uint8_t peek[16] = {0}; - size_t peeked = ringbuffer_peek(rb, 0, peek, 16); - EXPECT_EQ((size_t)13, peeked); - ASSERT_EQ(0, memcmp(content, peek, peeked)); - - // Delete some bytes - - ringbuffer_delete(rb, sizeof(aa)); - EXPECT_EQ((size_t)11, ringbuffer_available(rb)); - EXPECT_EQ((size_t)5, ringbuffer_size(rb)); - - // Add some more to wrap buffer - - uint8_t cc[] = {0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC}; - ringbuffer_insert(rb, cc, sizeof(cc)); - EXPECT_EQ((size_t)2, ringbuffer_available(rb)); - EXPECT_EQ((size_t)14, ringbuffer_size(rb)); - - uint8_t content2[] = {0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC}; - peeked = ringbuffer_peek(rb, 0, peek, 7); - EXPECT_EQ((size_t)7, peeked); - ASSERT_EQ(0, memcmp(content2, peek, peeked)); - - // Pop buffer - - memset(peek, 0, 16); - size_t popped = ringbuffer_pop(rb, peek, 7); - EXPECT_EQ((size_t)7, popped); - EXPECT_EQ((size_t)9, ringbuffer_available(rb)); - ASSERT_EQ(0, memcmp(content2, peek, peeked)); - - // Add more again to check head motion - - uint8_t dd[] = {0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD}; - added = ringbuffer_insert(rb, dd, sizeof(dd)); - EXPECT_EQ((size_t)8, added); - EXPECT_EQ((size_t)1, ringbuffer_available(rb)); - - // Delete everything - - ringbuffer_delete(rb, 16); - EXPECT_EQ((size_t)16, ringbuffer_available(rb)); - EXPECT_EQ((size_t)0, ringbuffer_size(rb)); - - // Add small token - - uint8_t ae[] = {0xAE, 0xAE, 0xAE}; - added = ringbuffer_insert(rb, ae, sizeof(ae)); - EXPECT_EQ((size_t)13, ringbuffer_available(rb)); - - // Get everything - - popped = ringbuffer_pop(rb, peek, 16); - EXPECT_EQ(added, popped); - EXPECT_EQ((size_t)16, ringbuffer_available(rb)); - EXPECT_EQ((size_t)0, ringbuffer_size(rb)); - ASSERT_EQ(0, memcmp(ae, peek, popped)); - - ringbuffer_free(rb); -} diff --git a/system/pdl/hci/Android.bp b/system/pdl/hci/Android.bp index 832598aaff..be954a1550 100644 --- a/system/pdl/hci/Android.bp +++ b/system/pdl/hci/Android.bp @@ -49,18 +49,3 @@ cc_library_static { apex_available: ["com.android.bt"], min_sdk_version: "33", } - -// Generate the python parser+serializer backend -genrule { - name: "gd_hci_packets_python3_gen", - defaults: ["pdl_python_generator_defaults"], - cmd: "$(location :pdlc) $(in) |" + - " $(location :pdl_python_generator)" + - " --output $(out) --custom-type-location blueberry.utils.bluetooth", - srcs: [ - "hci_packets.pdl", - ], - out: [ - "hci_packets.py", - ], -} diff --git a/system/pdl/security/Android.bp b/system/pdl/security/Android.bp index fbbc2b7339..22e947ee47 100644 --- a/system/pdl/security/Android.bp +++ b/system/pdl/security/Android.bp @@ -31,18 +31,3 @@ cc_library_static { apex_available: ["com.android.bt"], min_sdk_version: "33", } - -// Generate the python parser+serializer backend -genrule { - name: "gd_smp_packets_python3_gen", - defaults: ["pdl_python_generator_defaults"], - cmd: "$(location :pdlc) $(in) |" + - " $(location :pdl_python_generator)" + - " --output $(out) --custom-type-location blueberry.utils.bluetooth", - srcs: [ - "smp_packets.pdl", - ], - out: [ - "smp_packets.py", - ], -} diff --git a/system/test/Android.bp b/system/test/Android.bp index c38b178885..c35931ea17 100644 --- a/system/test/Android.bp +++ b/system/test/Android.bp @@ -265,13 +265,6 @@ filegroup { } filegroup { - name: "TestMockStackBnep", - srcs: [ - "mock/mock_stack_bnep_*.cc", - ], -} - -filegroup { name: "TestMockStackL2cap", srcs: [ "mock/mock_stack_l2cap_*.cc", @@ -356,13 +349,6 @@ filegroup { } filegroup { - name: "TestMockMainShimStack", - srcs: [ - "mock/mock_main_shim_stack.cc", - ], -} - -filegroup { name: "TestMockMainShimLeScanning", srcs: [ "mock/mock_main_shim_le_scanning_manager.cc", diff --git a/system/test/mock/mock_main_shim_stack.cc b/system/test/mock/mock_main_shim_stack.cc deleted file mode 100644 index 03ec09a1b3..0000000000 --- a/system/test/mock/mock_main_shim_stack.cc +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2024 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "hci/acl_manager.h" -#include "main/shim/stack.h" - -namespace bluetooth { -namespace shim { - -namespace testing { -Acl* acl_{nullptr}; -Stack* instance_{nullptr}; -} // namespace testing - -Stack* Stack::GetInstance() { return testing::instance_; } - -void Stack::StartEverything() {} - -void Stack::StartModuleStack(const ModuleList* /* modules */, const os::Thread* /* thread */) {} - -void Stack::Start(ModuleList* /* modules */) {} - -void Stack::Stop() {} - -bool Stack::IsRunning() { return stack_thread_ != nullptr; } - -Acl* Stack::GetAcl() { return testing::acl_; } - -os::Handler* Stack::GetHandler() { return stack_handler_; } - -} // namespace shim -} // namespace bluetooth diff --git a/system/test/mock/mock_osi_ringbuffer.cc b/system/test/mock/mock_osi_ringbuffer.cc deleted file mode 100644 index be0500715a..0000000000 --- a/system/test/mock/mock_osi_ringbuffer.cc +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Generated mock file from original source file - * Functions generated:8 - * - * mockcify.pl ver 0.3.0 - */ -// Mock include file to share data between tests and mock -#include "test/mock/mock_osi_ringbuffer.h" - -#include <cstdint> - -#include "test/common/mock_functions.h" - -// Mocked internal structures, if any - -namespace test { -namespace mock { -namespace osi_ringbuffer { - -// Function state capture and return values, if needed -struct ringbuffer_available ringbuffer_available; -struct ringbuffer_delete ringbuffer_delete; -struct ringbuffer_free ringbuffer_free; -struct ringbuffer_init ringbuffer_init; -struct ringbuffer_insert ringbuffer_insert; -struct ringbuffer_peek ringbuffer_peek; -struct ringbuffer_pop ringbuffer_pop; -struct ringbuffer_size ringbuffer_size; - -} // namespace osi_ringbuffer -} // namespace mock -} // namespace test - -// Mocked functions, if any -size_t ringbuffer_available(const ringbuffer_t* rb) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_available(rb); -} -size_t ringbuffer_delete(ringbuffer_t* rb, size_t length) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_delete(rb, length); -} -void ringbuffer_free(ringbuffer_t* rb) { - inc_func_call_count(__func__); - test::mock::osi_ringbuffer::ringbuffer_free(rb); -} -ringbuffer_t* ringbuffer_init(const size_t size) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_init(size); -} -size_t ringbuffer_insert(ringbuffer_t* rb, const uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_insert(rb, p, length); -} -size_t ringbuffer_peek(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_peek(rb, offset, p, length); -} -size_t ringbuffer_pop(ringbuffer_t* rb, uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_pop(rb, p, length); -} -size_t ringbuffer_size(const ringbuffer_t* rb) { - inc_func_call_count(__func__); - return test::mock::osi_ringbuffer::ringbuffer_size(rb); -} -// Mocked functions complete -// END mockcify generation diff --git a/system/test/mock/mock_osi_ringbuffer.h b/system/test/mock/mock_osi_ringbuffer.h deleted file mode 100644 index 40f649d099..0000000000 --- a/system/test/mock/mock_osi_ringbuffer.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2021 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Generated mock file from original source file - * Functions generated:8 - * - * mockcify.pl ver 0.3.0 - */ - -#include <cstdint> -#include <functional> - -// Original included files, if any - -#include <stdlib.h> - -#include "osi/include/ringbuffer.h" - -// Mocked compile conditionals, if any - -namespace test { -namespace mock { -namespace osi_ringbuffer { - -// Shared state between mocked functions and tests -// Name: ringbuffer_available -// Params: const ringbuffer_t* rb -// Return: size_t -struct ringbuffer_available { - size_t return_value{0}; - std::function<size_t(const ringbuffer_t* rb)> body{ - [this](const ringbuffer_t* /* rb */) { return return_value; }}; - size_t operator()(const ringbuffer_t* rb) { return body(rb); } -}; -extern struct ringbuffer_available ringbuffer_available; - -// Name: ringbuffer_delete -// Params: ringbuffer_t* rb, size_t length -// Return: size_t -struct ringbuffer_delete { - size_t return_value{0}; - std::function<size_t(ringbuffer_t* rb, size_t length)> body{ - [this](ringbuffer_t* /* rb */, size_t /* length */) { return return_value; }}; - size_t operator()(ringbuffer_t* rb, size_t length) { return body(rb, length); } -}; -extern struct ringbuffer_delete ringbuffer_delete; - -// Name: ringbuffer_free -// Params: ringbuffer_t* rb -// Return: void -struct ringbuffer_free { - std::function<void(ringbuffer_t* rb)> body{[](ringbuffer_t* /* rb */) {}}; - void operator()(ringbuffer_t* rb) { body(rb); } -}; -extern struct ringbuffer_free ringbuffer_free; - -// Name: ringbuffer_init -// Params: const size_t size -// Return: ringbuffer_t* -struct ringbuffer_init { - ringbuffer_t* return_value{0}; - std::function<ringbuffer_t*(const size_t size)> body{ - [this](const size_t /* size */) { return return_value; }}; - ringbuffer_t* operator()(const size_t size) { return body(size); } -}; -extern struct ringbuffer_init ringbuffer_init; - -// Name: ringbuffer_insert -// Params: ringbuffer_t* rb, const uint8_t* p, size_t length -// Return: size_t -struct ringbuffer_insert { - size_t return_value{0}; - std::function<size_t(ringbuffer_t* rb, const uint8_t* p, size_t length)> body{ - [this](ringbuffer_t* /* rb */, const uint8_t* /* p */, size_t /* length */) { - return return_value; - }}; - size_t operator()(ringbuffer_t* rb, const uint8_t* p, size_t length) { - return body(rb, p, length); - } -}; -extern struct ringbuffer_insert ringbuffer_insert; - -// Name: ringbuffer_peek -// Params: const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length -// Return: size_t -struct ringbuffer_peek { - size_t return_value{0}; - std::function<size_t(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length)> body{ - [this](const ringbuffer_t* /* rb */, off_t /* offset */, uint8_t* /* p */, - size_t /* length */) { return return_value; }}; - size_t operator()(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length) { - return body(rb, offset, p, length); - } -}; -extern struct ringbuffer_peek ringbuffer_peek; - -// Name: ringbuffer_pop -// Params: ringbuffer_t* rb, uint8_t* p, size_t length -// Return: size_t -struct ringbuffer_pop { - size_t return_value{0}; - std::function<size_t(ringbuffer_t* rb, uint8_t* p, size_t length)> body{ - [this](ringbuffer_t* /* rb */, uint8_t* /* p */, size_t /* length */) { - return return_value; - }}; - size_t operator()(ringbuffer_t* rb, uint8_t* p, size_t length) { return body(rb, p, length); } -}; -extern struct ringbuffer_pop ringbuffer_pop; - -// Name: ringbuffer_size -// Params: const ringbuffer_t* rb -// Return: size_t -struct ringbuffer_size { - size_t return_value{0}; - std::function<size_t(const ringbuffer_t* rb)> body{ - [this](const ringbuffer_t* /* rb */) { return return_value; }}; - size_t operator()(const ringbuffer_t* rb) { return body(rb); } -}; -extern struct ringbuffer_size ringbuffer_size; - -} // namespace osi_ringbuffer -} // namespace mock -} // namespace test - -// END mockcify generation diff --git a/system/test/stub/osi.cc b/system/test/stub/osi.cc index 5177f86803..cffeb4c3bf 100644 --- a/system/test/stub/osi.cc +++ b/system/test/stub/osi.cc @@ -37,7 +37,6 @@ #include "osi/include/mutex.h" #include "osi/include/properties.h" #include "osi/include/reactor.h" -#include "osi/include/ringbuffer.h" #include "osi/include/socket.h" #include "osi/include/socket_utils/socket_local.h" #include "osi/include/socket_utils/sockets.h" @@ -550,32 +549,6 @@ int osi_socket_make_sockaddr_un(const char* name, int namespaceId, struct sockad return 0; } -size_t ringbuffer_available(const ringbuffer_t* rb) { - inc_func_call_count(__func__); - return 0; -} -size_t ringbuffer_delete(ringbuffer_t* rb, size_t length) { - inc_func_call_count(__func__); - return 0; -} -size_t ringbuffer_insert(ringbuffer_t* rb, const uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return 0; -} -size_t ringbuffer_peek(const ringbuffer_t* rb, off_t offset, uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return 0; -} -size_t ringbuffer_pop(ringbuffer_t* rb, uint8_t* p, size_t length) { - inc_func_call_count(__func__); - return 0; -} -size_t ringbuffer_size(const ringbuffer_t* rb) { - inc_func_call_count(__func__); - return 0; -} -void ringbuffer_free(ringbuffer_t* rb) { inc_func_call_count(__func__); } - bool osi_property_get_bool(const char* key, bool default_value) { inc_func_call_count(__func__); if (fake_osi_bool_props_map.count(key)) { |