xref: /haiku/src/tests/kits/shared/MemoryRingIOTest.h (revision da8162be21b36442f34a731873d2358a0d63c25a)
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