1/* 2 * Copyright 2022 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Leorize, leorize+oss@disroot.org 7 */ 8#ifndef _MEMORY_RING_IO_TEST_H 9#define _MEMORY_RING_IO_TEST_H 10 11 12#include <ThreadedTestCase.h> 13#include <MemoryRingIO.h> 14 15class BTestSuite; 16 17 18class MemoryRingIOTest : public BThreadedTestCase 19{ 20public: 21 MemoryRingIOTest(size_t bufferSize) : fRing(bufferSize) {}; 22 23 void WriteTest(); 24 void ReadTest(); 25 void BusyWriterTest(); 26 void BusyReaderTest(); 27 void ReadWriteSingleTest(); 28 void InvalidResizeTest(); 29 void TimeoutTest(); 30 31 static void AddTests(BTestSuite& parent); 32 33 34protected: 35 void _DisableWriteOnFullBuffer(); 36 void _DisableWriteOnEmptyBuffer(); 37 38 BMemoryRingIO fRing; 39}; 40 41#endif // _MEMORY_RING_IO_TEST_H 42