More tests for BMemoryIO

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1211 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2002-09-27 16:29:34 +00:00
parent 3e8f4f3d29
commit b3d1f5fa24
6 changed files with 177 additions and 3 deletions
@@ -4,6 +4,8 @@
#include "ConstTest.h"
#include "SeekTest.h"
#include "WriteTest.h"
#include "ReadTest.h"
#include "SetSizeTest.h"
CppUnit::Test *MemoryIOTestSuite()
{
@@ -12,6 +14,8 @@ CppUnit::Test *MemoryIOTestSuite()
testSuite->addTest(ConstTest::suite());
testSuite->addTest(SeekTest::suite());
testSuite->addTest(WriteTest::suite());
testSuite->addTest(ReadTest::suite());
testSuite->addTest(SetSizeTest::suite());
return(testSuite);
}
@@ -0,0 +1,59 @@
#include "ReadTest.h"
#include "cppunit/TestCaller.h"
#include <DataIO.h>
#include <stdio.h>
#include <string.h>
ReadTest::ReadTest(std::string name) :
BTestCase(name)
{
}
ReadTest::~ReadTest()
{
}
void
ReadTest::PerformTest(void)
{
char buf[20] = "0123456789ABCDEFGHI";
char readBuf[10];
memset(readBuf, 0, 10);
BMemoryIO mem(buf, 20);
ssize_t err;
off_t pos;
NextSubTest();
pos = mem.Position();
err = mem.Read(readBuf, 10);
CPPUNIT_ASSERT(err == 10);
CPPUNIT_ASSERT(strncmp(readBuf, buf, 10) == 0);
CPPUNIT_ASSERT(mem.Position() == pos + err);
NextSubTest();
pos = mem.Position();
err = mem.ReadAt(30, readBuf, 10);
CPPUNIT_ASSERT(err == 0);
CPPUNIT_ASSERT(mem.Position() == pos);
NextSubTest();
pos = mem.Seek(0, SEEK_END);
err = mem.Read(readBuf, 10);
CPPUNIT_ASSERT(err == 0);
CPPUNIT_ASSERT(mem.Position() == pos);
}
CppUnit::Test *ReadTest::suite(void)
{
typedef CppUnit::TestCaller<ReadTest>
ReadTestCaller;
return(new ReadTestCaller("BMemoryIO::Read Test", &ReadTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef ReadTest_H
#define ReadTest_H
#include "TestCase.h"
#include <DataIO.h>
class ReadTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
ReadTest(std::string name = "");
virtual ~ReadTest();
};
#endif
@@ -0,0 +1,60 @@
#include "SetSizeTest.h"
#include "cppunit/TestCaller.h"
#include <DataIO.h>
#include <stdio.h>
#include <string.h>
SetSizeTest::SetSizeTest(std::string name) :
BTestCase(name)
{
}
SetSizeTest::~SetSizeTest()
{
}
void
SetSizeTest::PerformTest(void)
{
char buf[20] = "0123456789ABCDEFGHI";
char readBuf[10];
memset(readBuf, 0, 10);
BMemoryIO mem(buf, 10);
ssize_t size;
off_t pos;
status_t err;
NextSubTest();
err = mem.SetSize(5);
pos = mem.Seek(0, SEEK_END);
size = mem.WriteAt(10, readBuf, 3);
CPPUNIT_ASSERT(err == B_OK);
CPPUNIT_ASSERT(pos == 5);
CPPUNIT_ASSERT(size == 0);
NextSubTest();
err = mem.SetSize(10);
pos = mem.Seek(0, SEEK_END);
size = mem.WriteAt(5, readBuf, 6);
CPPUNIT_ASSERT(err == B_OK);
CPPUNIT_ASSERT(pos == 10);
CPPUNIT_ASSERT(size == 5);
NextSubTest();
err = mem.SetSize(20);
CPPUNIT_ASSERT(err == B_ERROR);
}
CppUnit::Test *SetSizeTest::suite(void)
{
typedef CppUnit::TestCaller<SetSizeTest>
SetSizeTestCaller;
return(new SetSizeTestCaller("BMemoryIO::SetSize Test", &SetSizeTest::PerformTest));
}
@@ -0,0 +1,22 @@
#ifndef SetSizeTest_H
#define SetSizeTest_H
#include "TestCase.h"
#include <DataIO.h>
class SetSizeTest : public BTestCase
{
private:
protected:
public:
static Test *suite(void);
void PerformTest(void);
SetSizeTest(std::string name = "");
virtual ~SetSizeTest();
};
#endif
+10 -3
View File
@@ -22,12 +22,12 @@ WriteTest::PerformTest(void)
char buf[10];
const char *writeBuf = "ABCDEFG";
BMemoryIO mem(buf, 10);
size_t err;
BMemoryIO mem(buf, 10);
ssize_t err;
off_t pos;
NextSubTest();
memset(buf, 0, 10);
pos = mem.Position();
err = mem.Write(writeBuf, 7);
CPPUNIT_ASSERT(err == 7); // Check how much data we wrote
@@ -35,6 +35,7 @@ WriteTest::PerformTest(void)
CPPUNIT_ASSERT(mem.Position() == pos + err); // Check if Position changed
NextSubTest();
memset(buf, 0, 10);
pos = mem.Position();
err = mem.WriteAt(3, writeBuf, 2);
CPPUNIT_ASSERT(err == 2);
@@ -42,12 +43,18 @@ WriteTest::PerformTest(void)
CPPUNIT_ASSERT(mem.Position() == pos);
NextSubTest();
memset(buf, 0, 10);
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);
NextSubTest();
memset(buf, 0, 10);
pos = mem.Position();
err = mem.WriteAt(-10, writeBuf, 5);
CPPUNIT_ASSERT(err == 5);
}