14d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro/*
24d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Copyright (C) 2016 The Android Open Source Project
34d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *
44d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Licensed under the Apache License, Version 2.0 (the "License");
54d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * you may not use this file except in compliance with the License.
64d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * You may obtain a copy of the License at
74d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *
84d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *      http://www.apache.org/licenses/LICENSE-2.0
94d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *
104d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Unless required by applicable law or agreed to in writing, software
114d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * distributed under the License is distributed on an "AS IS" BASIS,
124d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * See the License for the specific language governing permissions and
144d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * limitations under the License.
154d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro */
164d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
174d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#ifndef _GTS_NANOAPPS_GENERAL_TEST_HEAP_ALLOC_STRESS_TEST_H_
184d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#define _GTS_NANOAPPS_GENERAL_TEST_HEAP_ALLOC_STRESS_TEST_H_
194d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
204d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#include <general_test/test.h>
214d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
224d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguronamespace general_test {
234d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
244d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro/**
254d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Stresses the heap alloc implementation.
264d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *
274d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * We request extreme allocation sizes, exhaust the heap, and make
284d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * sure things continue to work.
294d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro *
304d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Simple Protocol.
314d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro */
324d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguroclass HeapAllocStressTest : public Test {
334d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro public:
344d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro  HeapAllocStressTest();
354d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
364d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro protected:
374d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro  void handleEvent(uint32_t senderInstanceId, uint16_t eventType,
384d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro                   const void* eventData) override;
394d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro  void setUp(uint32_t messageSize, const void *message) override;
404d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro};
414d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
424d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro}  // namespace general_test
434d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
444d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro
454d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#endif  // _GTS_NANOAPPS_GENERAL_TEST_HEAP_ALLOC_STRESS_TEST_H_
46