Loading services/mediaresourcemanager/fuzzer/mediaresourcemanager_fuzzer.cpp +22 −24 Original line number Original line Diff line number Diff line Loading @@ -226,33 +226,31 @@ void ResourceManagerServiceFuzzer::setResources() { mFuzzedDataProvider->ConsumeIntegralInRange<size_t>(kMinThreadPairs, kMaxThreadPairs); mFuzzedDataProvider->ConsumeIntegralInRange<size_t>(kMinThreadPairs, kMaxThreadPairs); // Make even number of threads // Make even number of threads size_t numThreads = numThreadPairs * 2; size_t numThreads = numThreadPairs * 2; resourceThreadArgs threadArgs; resourceThreadArgs threadArgs[numThreadPairs]; vector<MediaResourceParcel> mediaResource; vector<MediaResourceParcel> mediaResource[numThreadPairs]; pthread_t pt[numThreads]; pthread_t pt[numThreads]; int i; for (int k = 0; k < numThreadPairs; ++k) { for (i = 0; i < numThreads - 1; i += 2) { threadArgs[k].pid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs.pid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs[k].uid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs.uid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); int32_t mediaResourceType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( int32_t mediaResourceType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( kMinResourceType, kMaxResourceType); kMinResourceType, kMaxResourceType); int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( kMinResourceType, kMaxResourceType); kMinResourceType, kMaxResourceType); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); threadArgs.service = mService; threadArgs[k].service = mService; shared_ptr<IResourceManagerClient> testClient = shared_ptr<IResourceManagerClient> testClient = ::ndk::SharedRefBase::make<TestClient>(threadArgs.pid, mService); ::ndk::SharedRefBase::make<TestClient>(threadArgs[k].pid, mService); threadArgs.testClient = testClient; threadArgs[k].testClient = testClient; threadArgs.testClientId = getId(testClient); threadArgs[k].testClientId = getId(testClient); mediaResource.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), mediaResource[k].push_back(MediaResource(static_cast<MedResType>(mediaResourceType), static_cast<MedResSubType>(mediaResourceSubType), static_cast<MedResSubType>(mediaResourceSubType), mediaResourceValue)); mediaResourceValue)); threadArgs.mediaResource = mediaResource; threadArgs[k].mediaResource = mediaResource[k]; pthread_create(&pt[i], nullptr, addResource, &threadArgs); pthread_create(&pt[2 * k], nullptr, addResource, &threadArgs[k]); pthread_create(&pt[i + 1], nullptr, removeResource, &threadArgs); pthread_create(&pt[2 * k + 1], nullptr, removeResource, &threadArgs[k]); mediaResource.clear(); } } for (i = 0; i < numThreads; ++i) { for (int i = 0; i < numThreads; ++i) { pthread_join(pt[i], nullptr); pthread_join(pt[i], nullptr); } } Loading @@ -265,14 +263,14 @@ void ResourceManagerServiceFuzzer::setResources() { int32_t mediaResourceSubType = int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>(kMinResourceType, kMaxResourceType); mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>(kMinResourceType, kMaxResourceType); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); mediaResource.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), vector<MediaResourceParcel> mediaRes; mediaRes.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), static_cast<MedResSubType>(mediaResourceSubType), static_cast<MedResSubType>(mediaResourceSubType), mediaResourceValue)); mediaResourceValue)); bool result; bool result; mService->reclaimResource(pidZero, mediaResource, &result); mService->reclaimResource(pidZero, mediaRes, &result); mService->removeResource(pidZero, getId(testClient), mediaResource); mService->removeResource(pidZero, getId(testClient), mediaRes); mService->removeClient(pidZero, getId(testClient)); mService->removeClient(pidZero, getId(testClient)); mediaResource.clear(); } } void ResourceManagerServiceFuzzer::setServiceLog() { void ResourceManagerServiceFuzzer::setServiceLog() { Loading Loading
services/mediaresourcemanager/fuzzer/mediaresourcemanager_fuzzer.cpp +22 −24 Original line number Original line Diff line number Diff line Loading @@ -226,33 +226,31 @@ void ResourceManagerServiceFuzzer::setResources() { mFuzzedDataProvider->ConsumeIntegralInRange<size_t>(kMinThreadPairs, kMaxThreadPairs); mFuzzedDataProvider->ConsumeIntegralInRange<size_t>(kMinThreadPairs, kMaxThreadPairs); // Make even number of threads // Make even number of threads size_t numThreads = numThreadPairs * 2; size_t numThreads = numThreadPairs * 2; resourceThreadArgs threadArgs; resourceThreadArgs threadArgs[numThreadPairs]; vector<MediaResourceParcel> mediaResource; vector<MediaResourceParcel> mediaResource[numThreadPairs]; pthread_t pt[numThreads]; pthread_t pt[numThreads]; int i; for (int k = 0; k < numThreadPairs; ++k) { for (i = 0; i < numThreads - 1; i += 2) { threadArgs[k].pid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs.pid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs[k].uid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); threadArgs.uid = mFuzzedDataProvider->ConsumeIntegral<int32_t>(); int32_t mediaResourceType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( int32_t mediaResourceType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( kMinResourceType, kMaxResourceType); kMinResourceType, kMaxResourceType); int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>( kMinResourceType, kMaxResourceType); kMinResourceType, kMaxResourceType); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); threadArgs.service = mService; threadArgs[k].service = mService; shared_ptr<IResourceManagerClient> testClient = shared_ptr<IResourceManagerClient> testClient = ::ndk::SharedRefBase::make<TestClient>(threadArgs.pid, mService); ::ndk::SharedRefBase::make<TestClient>(threadArgs[k].pid, mService); threadArgs.testClient = testClient; threadArgs[k].testClient = testClient; threadArgs.testClientId = getId(testClient); threadArgs[k].testClientId = getId(testClient); mediaResource.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), mediaResource[k].push_back(MediaResource(static_cast<MedResType>(mediaResourceType), static_cast<MedResSubType>(mediaResourceSubType), static_cast<MedResSubType>(mediaResourceSubType), mediaResourceValue)); mediaResourceValue)); threadArgs.mediaResource = mediaResource; threadArgs[k].mediaResource = mediaResource[k]; pthread_create(&pt[i], nullptr, addResource, &threadArgs); pthread_create(&pt[2 * k], nullptr, addResource, &threadArgs[k]); pthread_create(&pt[i + 1], nullptr, removeResource, &threadArgs); pthread_create(&pt[2 * k + 1], nullptr, removeResource, &threadArgs[k]); mediaResource.clear(); } } for (i = 0; i < numThreads; ++i) { for (int i = 0; i < numThreads; ++i) { pthread_join(pt[i], nullptr); pthread_join(pt[i], nullptr); } } Loading @@ -265,14 +263,14 @@ void ResourceManagerServiceFuzzer::setResources() { int32_t mediaResourceSubType = int32_t mediaResourceSubType = mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>(kMinResourceType, kMaxResourceType); mFuzzedDataProvider->ConsumeIntegralInRange<int32_t>(kMinResourceType, kMaxResourceType); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); uint64_t mediaResourceValue = mFuzzedDataProvider->ConsumeIntegral<uint64_t>(); mediaResource.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), vector<MediaResourceParcel> mediaRes; mediaRes.push_back(MediaResource(static_cast<MedResType>(mediaResourceType), static_cast<MedResSubType>(mediaResourceSubType), static_cast<MedResSubType>(mediaResourceSubType), mediaResourceValue)); mediaResourceValue)); bool result; bool result; mService->reclaimResource(pidZero, mediaResource, &result); mService->reclaimResource(pidZero, mediaRes, &result); mService->removeResource(pidZero, getId(testClient), mediaResource); mService->removeResource(pidZero, getId(testClient), mediaRes); mService->removeClient(pidZero, getId(testClient)); mService->removeClient(pidZero, getId(testClient)); mediaResource.clear(); } } void ResourceManagerServiceFuzzer::setServiceLog() { void ResourceManagerServiceFuzzer::setServiceLog() { Loading