186fa1c21SLeorize /* 286fa1c21SLeorize * Copyright 2022 Haiku, Inc. All rights reserved. 386fa1c21SLeorize * Distributed under the terms of the MIT License. 486fa1c21SLeorize * 586fa1c21SLeorize * Authors: 686fa1c21SLeorize * Leorize, leorize+oss@disroot.org 786fa1c21SLeorize */ 886fa1c21SLeorize #ifndef _MEMORY_RING_IO_TEST_H 986fa1c21SLeorize #define _MEMORY_RING_IO_TEST_H 1086fa1c21SLeorize 1186fa1c21SLeorize 1286fa1c21SLeorize #include <ThreadedTestCase.h> 1386fa1c21SLeorize #include <MemoryRingIO.h> 1486fa1c21SLeorize 15*c68590fdSNiels Sascha Reedijk class BTestSuite; 16*c68590fdSNiels Sascha Reedijk 1786fa1c21SLeorize 1886fa1c21SLeorize class MemoryRingIOTest : public BThreadedTestCase 1986fa1c21SLeorize { 2086fa1c21SLeorize public: MemoryRingIOTest(size_t bufferSize)2186fa1c21SLeorize MemoryRingIOTest(size_t bufferSize) : fRing(bufferSize) {}; 2286fa1c21SLeorize 2386fa1c21SLeorize void WriteTest(); 2486fa1c21SLeorize void ReadTest(); 2586fa1c21SLeorize void BusyWriterTest(); 2686fa1c21SLeorize void BusyReaderTest(); 2786fa1c21SLeorize void ReadWriteSingleTest(); 2886fa1c21SLeorize void InvalidResizeTest(); 2986fa1c21SLeorize void TimeoutTest(); 3086fa1c21SLeorize 31*c68590fdSNiels Sascha Reedijk static void AddTests(BTestSuite& parent); 32*c68590fdSNiels Sascha Reedijk 33*c68590fdSNiels Sascha Reedijk 3486fa1c21SLeorize protected: 3586fa1c21SLeorize void _DisableWriteOnFullBuffer(); 3686fa1c21SLeorize void _DisableWriteOnEmptyBuffer(); 3786fa1c21SLeorize 3886fa1c21SLeorize BMemoryRingIO fRing; 3986fa1c21SLeorize }; 4086fa1c21SLeorize 4186fa1c21SLeorize #endif // _MEMORY_RING_IO_TEST_H 42