diff --git a/test/fuzztest/services/createdatachannelstub_fuzzer/createdatachannelstub_fuzzer.cpp b/test/fuzztest/services/createdatachannelstub_fuzzer/createdatachannelstub_fuzzer.cpp index a92cbe68749952c2892ac9c10545a55b37d3e304..43bea080e0ab376d8051881aa6ae0225ebf731e9 100644 --- a/test/fuzztest/services/createdatachannelstub_fuzzer/createdatachannelstub_fuzzer.cpp +++ b/test/fuzztest/services/createdatachannelstub_fuzzer/createdatachannelstub_fuzzer.cpp @@ -79,28 +79,15 @@ size_t GetObject(T &object, const uint8_t *data, size_t size) bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - int32_t fd = 0; - GetObject(fd, data, size); - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); if (g_remote == nullptr || g_service == nullptr) { return false; } - datas.WriteRemoteObject(g_remote); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_TRANSFER_DATA_CHANNEL), - datas, reply, option); - datas.RewindRead(0); - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_DESTROY_SENSOR_CHANNEL), - datas, reply, option); - datas.RewindRead(0); - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_CREATE_SOCKET_CHANNEL), - datas, reply, option); - datas.RewindRead(0); - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_DESTROY_SOCKET_CHANNEL), - datas, reply, option); + int32_t clientFd = 0; + GetObject(clientFd, data, size); + g_service->CreateSocketChannel(g_remote, clientFd); + g_service->DestroySocketChannel(g_remote); + g_service->TransferDataChannel(clientFd, g_remote); + g_service->DestroySensorChannel(g_remote); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/getactiveinfoliststub_fuzzer/getactiveinfoliststub_fuzzer.cpp b/test/fuzztest/services/getactiveinfoliststub_fuzzer/getactiveinfoliststub_fuzzer.cpp index 2ad06c2924005b25a1fedb29428db6c4665b195d..8cb7bac228ff67322771eb480480321d61f6134a 100644 --- a/test/fuzztest/services/getactiveinfoliststub_fuzzer/getactiveinfoliststub_fuzzer.cpp +++ b/test/fuzztest/services/getactiveinfoliststub_fuzzer/getactiveinfoliststub_fuzzer.cpp @@ -37,6 +37,20 @@ auto g_service = SensorDelayedSpSingleton::GetInstance(); const std::u16string SENSOR_INTERFACE_TOKEN = u"ISensorService"; } // namespace +template +size_t GetObject(T &object, const uint8_t *data, size_t size) +{ + size_t objectSize = sizeof(object); + if (objectSize > size) { + return 0; + } + errno_t ret = memcpy_s(&object, objectSize, data, objectSize); + if (ret != EOK) { + return 0; + } + return objectSize; +} + void SetUpTestCase() { const char **perms = new (std::nothrow) const char *[2]; @@ -64,14 +78,15 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); - datas.WriteBuffer(data, size); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_GET_ACTIVE_INFO_LIST), - datas, reply, option); + if (g_service == nullptr) { + return false; + } + std::vector activeInfoList; + int32_t pid = 0; + GetObject(pid, data, size); + g_service->GetActiveInfoList(pid, activeInfoList); + g_service->EnableActiveInfoCB(); + g_service->DisableActiveInfoCB(); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/getallsensorsstub_fuzzer/getallsensorsstub_fuzzer.cpp b/test/fuzztest/services/getallsensorsstub_fuzzer/getallsensorsstub_fuzzer.cpp index a80656817a41fa5c89973c21398345b5344a9ef1..9b1c351e1aea402bd20aad07a3b84510d4334361 100644 --- a/test/fuzztest/services/getallsensorsstub_fuzzer/getallsensorsstub_fuzzer.cpp +++ b/test/fuzztest/services/getallsensorsstub_fuzzer/getallsensorsstub_fuzzer.cpp @@ -37,6 +37,20 @@ auto g_service = SensorDelayedSpSingleton::GetInstance(); const std::u16string SENSOR_INTERFACE_TOKEN = u"ISensorService"; } // namespace +template +size_t GetObject(T &object, const uint8_t *data, size_t size) +{ + size_t objectSize = sizeof(object); + if (objectSize > size) { + return 0; + } + errno_t ret = memcpy_s(&object, objectSize, data, objectSize); + if (ret != EOK) { + return 0; + } + return objectSize; +} + void SetUpTestCase() { const char **perms = new (std::nothrow) const char *[2]; @@ -64,14 +78,12 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); - datas.WriteBuffer(data, size); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_GET_SENSOR_LIST), - datas, reply, option); + if (g_service == nullptr) { + return false; + } + std::vector sensorList; + GetObject(sensorList[0], data, size); + g_service->GetSensorList(sensorList); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/resumesensorsstub_fuzzer/resumesensorsstub_fuzzer.cpp b/test/fuzztest/services/resumesensorsstub_fuzzer/resumesensorsstub_fuzzer.cpp index d598264155d3f709d4e14d900633b43edc883799..32ab0fd64dd993e5d5d7490c45193f42e70cb607 100644 --- a/test/fuzztest/services/resumesensorsstub_fuzzer/resumesensorsstub_fuzzer.cpp +++ b/test/fuzztest/services/resumesensorsstub_fuzzer/resumesensorsstub_fuzzer.cpp @@ -37,6 +37,20 @@ auto g_service = SensorDelayedSpSingleton::GetInstance(); const std::u16string SENSOR_INTERFACE_TOKEN = u"ISensorService"; } // namespace +template +size_t GetObject(T &object, const uint8_t *data, size_t size) +{ + size_t objectSize = sizeof(object); + if (objectSize > size) { + return 0; + } + errno_t ret = memcpy_s(&object, objectSize, data, objectSize); + if (ret != EOK) { + return 0; + } + return objectSize; +} + void SetUpTestCase() { const char **perms = new (std::nothrow) const char *[2]; @@ -64,14 +78,12 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); - datas.WriteBuffer(data, size); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_RESUME_SENSORS), - datas, reply, option); + if (g_service == nullptr) { + return false; + } + int32_t pid = 0; + GetObject(pid, data, size); + g_service->ResumeSensors(pid); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/sensordisablestub_fuzzer/sensordisablestub_fuzzer.cpp b/test/fuzztest/services/sensordisablestub_fuzzer/sensordisablestub_fuzzer.cpp index be7aef29d4e65cc453690ab35349c0dfdac213d0..e3aee833be21110ab7fd5b03f11a72581ec3e5d8 100644 --- a/test/fuzztest/services/sensordisablestub_fuzzer/sensordisablestub_fuzzer.cpp +++ b/test/fuzztest/services/sensordisablestub_fuzzer/sensordisablestub_fuzzer.cpp @@ -78,16 +78,13 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); + if (g_service == nullptr) { + return false; + } + g_service->DisableSensor(SENSOR_TYPE_ID_ACCELEROMETER); int32_t sensorId = 0; GetObject(sensorId, data, size); - datas.WriteInt32(sensorId); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_DISABLE_SENSOR), - datas, reply, option); + g_service->DisableSensor(sensorId); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/sensorenablestub_fuzzer/sensorenablestub_fuzzer.cpp b/test/fuzztest/services/sensorenablestub_fuzzer/sensorenablestub_fuzzer.cpp index a714fd1dd284ad788854234453b3dcbd5aa4ff65..58da44efb21d07ca28005e92ceced0e9d6406c56 100644 --- a/test/fuzztest/services/sensorenablestub_fuzzer/sensorenablestub_fuzzer.cpp +++ b/test/fuzztest/services/sensorenablestub_fuzzer/sensorenablestub_fuzzer.cpp @@ -35,6 +35,8 @@ namespace { constexpr size_t U32_AT_SIZE = 4; auto g_service = SensorDelayedSpSingleton::GetInstance(); const std::u16string SENSOR_INTERFACE_TOKEN = u"ISensorService"; +int64_t g_samplingPeriod = 100000000; +int64_t g_maxReportDelay = 100000000; } // namespace template @@ -78,23 +80,19 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); + if (g_service == nullptr) { + return false; + } + g_service->EnableSensor(SENSOR_TYPE_ID_ACCELEROMETER, g_samplingPeriod, g_maxReportDelay); + g_service->ResetSensors(); size_t startPos = 0; int32_t sensorId = 0; startPos += GetObject(sensorId, data + startPos, size - startPos); - datas.WriteInt32(sensorId); int64_t samplingPeriod = 0; startPos += GetObject(samplingPeriod, data + startPos, size - startPos); - datas.WriteInt64(samplingPeriod); int64_t maxReportDelay = 0; GetObject(maxReportDelay, data + startPos, size - startPos); - datas.WriteInt64(maxReportDelay); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_ENABLE_SENSOR), - datas, reply, option); + g_service->EnableSensor(sensorId, samplingPeriod, maxReportDelay); return true; } } // namespace Sensors diff --git a/test/fuzztest/services/suspendsensorsstub_fuzzer/suspendsensorsstub_fuzzer.cpp b/test/fuzztest/services/suspendsensorsstub_fuzzer/suspendsensorsstub_fuzzer.cpp index a59873dda276ffa3132a7ee80e173f15f28407bf..3f5c276d80e2fd227eaeb0907867b54c67897c6c 100644 --- a/test/fuzztest/services/suspendsensorsstub_fuzzer/suspendsensorsstub_fuzzer.cpp +++ b/test/fuzztest/services/suspendsensorsstub_fuzzer/suspendsensorsstub_fuzzer.cpp @@ -37,6 +37,20 @@ auto g_service = SensorDelayedSpSingleton::GetInstance(); const std::u16string SENSOR_INTERFACE_TOKEN = u"ISensorService"; } // namespace +template +size_t GetObject(T &object, const uint8_t *data, size_t size) +{ + size_t objectSize = sizeof(object); + if (objectSize > size) { + return 0; + } + errno_t ret = memcpy_s(&object, objectSize, data, objectSize); + if (ret != EOK) { + return 0; + } + return objectSize; +} + void SetUpTestCase() { const char **perms = new (std::nothrow) const char *[2]; @@ -64,14 +78,12 @@ void SetUpTestCase() bool OnRemoteRequestFuzzTest(const uint8_t *data, size_t size) { SetUpTestCase(); - MessageParcel datas; - datas.WriteInterfaceToken(SENSOR_INTERFACE_TOKEN); - datas.WriteBuffer(data, size); - datas.RewindRead(0); - MessageParcel reply; - MessageOption option; - g_service->OnRemoteRequest(static_cast(ISensorServiceIpcCode::COMMAND_SUSPEND_SENSORS), - datas, reply, option); + if (g_service == nullptr) { + return false; + } + int32_t pid = 0; + GetObject(pid, data, size); + g_service->SuspendSensors(pid); return true; } } // namespace Sensors