From 14d32cf63445154cac3bb892458f5ee264e00e18 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Wed, 25 Sep 2002 15:03:51 +0000 Subject: [PATCH] First BMemoryIO tests git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1177 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kits/support/bmemoryio/ConstTest.cpp | 53 ++++++++++++++++ src/tests/kits/support/bmemoryio/ConstTest.h | 22 +++++++ .../kits/support/bmemoryio/MemoryIOTest.cpp | 24 ++++++++ .../kits/support/bmemoryio/MemoryIOTest.h | 14 +++++ src/tests/kits/support/bmemoryio/SeekTest.cpp | 53 ++++++++++++++++ src/tests/kits/support/bmemoryio/SeekTest.h | 22 +++++++ .../kits/support/bmemoryio/WriteTest.cpp | 60 +++++++++++++++++++ src/tests/kits/support/bmemoryio/WriteTest.h | 22 +++++++ 8 files changed, 270 insertions(+) create mode 100644 src/tests/kits/support/bmemoryio/ConstTest.cpp create mode 100644 src/tests/kits/support/bmemoryio/ConstTest.h create mode 100644 src/tests/kits/support/bmemoryio/MemoryIOTest.cpp create mode 100644 src/tests/kits/support/bmemoryio/MemoryIOTest.h create mode 100644 src/tests/kits/support/bmemoryio/SeekTest.cpp create mode 100644 src/tests/kits/support/bmemoryio/SeekTest.h create mode 100644 src/tests/kits/support/bmemoryio/WriteTest.cpp create mode 100644 src/tests/kits/support/bmemoryio/WriteTest.h diff --git a/src/tests/kits/support/bmemoryio/ConstTest.cpp b/src/tests/kits/support/bmemoryio/ConstTest.cpp new file mode 100644 index 0000000000..f1d2eb545e --- /dev/null +++ b/src/tests/kits/support/bmemoryio/ConstTest.cpp @@ -0,0 +1,53 @@ +#include "ConstTest.h" +#include "cppunit/TestCaller.h" +#include +#include +#include + +ConstTest::ConstTest(std::string name) : + BTestCase(name) +{ +} + + + +ConstTest::~ConstTest() +{ +} + + +void +ConstTest::PerformTest(void) +{ + const char buf[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + BMemoryIO mem(buf, 10); + status_t err; + + NextSubTest(); + err = mem.SetSize(4); + CPPUNIT_ASSERT(err == B_NOT_ALLOWED); + + NextSubTest(); + err = mem.SetSize(20); + CPPUNIT_ASSERT(err == B_NOT_ALLOWED); + + NextSubTest(); + char readBuf[10] = ""; + err = mem.Write(readBuf, 3); + CPPUNIT_ASSERT(err == B_NOT_ALLOWED); + CPPUNIT_ASSERT(strcmp(readBuf, "") == 0); + + NextSubTest(); + err = mem.WriteAt(2, readBuf, 1); + CPPUNIT_ASSERT(err == B_NOT_ALLOWED); + CPPUNIT_ASSERT(strcmp(readBuf, "") == 0); +} + + +CppUnit::Test *ConstTest::suite(void) +{ + typedef CppUnit::TestCaller + ConstTestCaller; + + return(new ConstTestCaller("BMemoryIO::Const Test", &ConstTest::PerformTest)); +} \ No newline at end of file diff --git a/src/tests/kits/support/bmemoryio/ConstTest.h b/src/tests/kits/support/bmemoryio/ConstTest.h new file mode 100644 index 0000000000..0affae9888 --- /dev/null +++ b/src/tests/kits/support/bmemoryio/ConstTest.h @@ -0,0 +1,22 @@ +#ifndef ConstTest_H +#define ConstTest_H + +#include "TestCase.h" +#include + + +class ConstTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + ConstTest(std::string name = ""); + virtual ~ConstTest(); + }; + +#endif \ No newline at end of file diff --git a/src/tests/kits/support/bmemoryio/MemoryIOTest.cpp b/src/tests/kits/support/bmemoryio/MemoryIOTest.cpp new file mode 100644 index 0000000000..a9d3d8c4cc --- /dev/null +++ b/src/tests/kits/support/bmemoryio/MemoryIOTest.cpp @@ -0,0 +1,24 @@ +#include "cppunit/Test.h" +#include "cppunit/TestSuite.h" +#include "MemoryIOTest.h" +#include "ConstTest.h" +#include "SeekTest.h" +#include "WriteTest.h" + +CppUnit::Test *MemoryIOTestSuite() +{ + CppUnit::TestSuite *testSuite = new CppUnit::TestSuite(); + + testSuite->addTest(ConstTest::suite()); + testSuite->addTest(SeekTest::suite()); + testSuite->addTest(WriteTest::suite()); + + return(testSuite); +} + + + + + + + diff --git a/src/tests/kits/support/bmemoryio/MemoryIOTest.h b/src/tests/kits/support/bmemoryio/MemoryIOTest.h new file mode 100644 index 0000000000..20bb3ed603 --- /dev/null +++ b/src/tests/kits/support/bmemoryio/MemoryIOTest.h @@ -0,0 +1,14 @@ +#ifndef _memoryio_test_h_ +#define _memoryio_test_h_ + +class CppUnit::Test; + +CppUnit::Test *MemoryIOTestSuite(); + +#endif // _memoryio_test_h_ + + + + + + diff --git a/src/tests/kits/support/bmemoryio/SeekTest.cpp b/src/tests/kits/support/bmemoryio/SeekTest.cpp new file mode 100644 index 0000000000..8b9f798015 --- /dev/null +++ b/src/tests/kits/support/bmemoryio/SeekTest.cpp @@ -0,0 +1,53 @@ +#include "SeekTest.h" +#include "cppunit/TestCaller.h" +#include +#include + +SeekTest::SeekTest(std::string name) : + BTestCase(name) +{ +} + + + +SeekTest::~SeekTest() +{ +} + + +void +SeekTest::PerformTest(void) +{ + char buf[10]; + BMemoryIO mem(buf, 10); + off_t err; + + NextSubTest(); + err = mem.Seek(3, SEEK_SET); + CPPUNIT_ASSERT(err == 3); + + NextSubTest(); + err = mem.Seek(3, SEEK_CUR); + CPPUNIT_ASSERT(err == 6); + + NextSubTest(); + err = mem.Seek(0, SEEK_END); + CPPUNIT_ASSERT(err == 10); + + NextSubTest(); + err = mem.Seek(-5, SEEK_END); + CPPUNIT_ASSERT(err == 5); + + NextSubTest(); + err = mem.Seek(5, SEEK_END); + CPPUNIT_ASSERT(err == 15); +} + + +CppUnit::Test *SeekTest::suite(void) +{ + typedef CppUnit::TestCaller + SeekTestCaller; + + return(new SeekTestCaller("BMemoryIO::Seek Test", &SeekTest::PerformTest)); +} \ No newline at end of file diff --git a/src/tests/kits/support/bmemoryio/SeekTest.h b/src/tests/kits/support/bmemoryio/SeekTest.h new file mode 100644 index 0000000000..f664cce569 --- /dev/null +++ b/src/tests/kits/support/bmemoryio/SeekTest.h @@ -0,0 +1,22 @@ +#ifndef SeekTest_H +#define SeekTest_H + +#include "TestCase.h" +#include + + +class SeekTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + SeekTest(std::string name = ""); + virtual ~SeekTest(); + }; + +#endif \ No newline at end of file diff --git a/src/tests/kits/support/bmemoryio/WriteTest.cpp b/src/tests/kits/support/bmemoryio/WriteTest.cpp new file mode 100644 index 0000000000..a4f4961c7e --- /dev/null +++ b/src/tests/kits/support/bmemoryio/WriteTest.cpp @@ -0,0 +1,60 @@ +#include "WriteTest.h" +#include "cppunit/TestCaller.h" +#include +#include +#include + +WriteTest::WriteTest(std::string name) : + BTestCase(name) +{ +} + + + +WriteTest::~WriteTest() +{ +} + + +void +WriteTest::PerformTest(void) +{ + char buf[10]; + const char *writeBuf = "ABCDEFG"; + + BMemoryIO mem(buf, 10); + + size_t err; + off_t pos; + + NextSubTest(); + pos = mem.Position(); + err = mem.Write(writeBuf, 7); + CPPUNIT_ASSERT(err == 7); // Check how much data we wrote + CPPUNIT_ASSERT(strcmp(writeBuf, buf) == 0); // Check if we wrote it correctly + CPPUNIT_ASSERT(mem.Position() == pos + err); // Check if Position changed + + NextSubTest(); + pos = mem.Position(); + err = mem.WriteAt(3, writeBuf, 2); + CPPUNIT_ASSERT(err == 2); + CPPUNIT_ASSERT(strncmp(buf + 3, writeBuf, 2) == 0); + CPPUNIT_ASSERT(mem.Position() == pos); + + NextSubTest(); + pos = mem.Position(); + err = mem.WriteAt(9, writeBuf, 5); + CPPUNIT_ASSERT(err == 1); + CPPUNIT_ASSERT(strncmp(buf + 9, writeBuf, 1) == 0); + CPPUNIT_ASSERT(mem.Position() == pos); + +} + + +CppUnit::Test *WriteTest::suite(void) +{ + typedef CppUnit::TestCaller + WriteTestCaller; + + return(new WriteTestCaller("BMemoryIO::Write Test", &WriteTest::PerformTest)); +} \ No newline at end of file diff --git a/src/tests/kits/support/bmemoryio/WriteTest.h b/src/tests/kits/support/bmemoryio/WriteTest.h new file mode 100644 index 0000000000..a7229f8d0a --- /dev/null +++ b/src/tests/kits/support/bmemoryio/WriteTest.h @@ -0,0 +1,22 @@ +#ifndef WriteTest_H +#define WriteTest_H + +#include "TestCase.h" +#include + + +class WriteTest : public BTestCase +{ + +private: + +protected: + +public: + static Test *suite(void); + void PerformTest(void); + WriteTest(std::string name = ""); + virtual ~WriteTest(); + }; + +#endif \ No newline at end of file