1#include "SetSizeTest.h"
2#include "cppunit/TestCaller.h"
3#include <DataIO.h>
4#include <stdio.h>
5#include <string.h>
6
7SetSizeTest::SetSizeTest(std::string name) :
8		BTestCase(name)
9{
10}
11
12
13
14SetSizeTest::~SetSizeTest()
15{
16}
17
18
19void
20SetSizeTest::PerformTest(void)
21{
22	char buf[20] = "0123456789ABCDEFGHI";
23	char readBuf[10];
24
25	memset(readBuf, 0, 10);
26
27	BMemoryIO mem(buf, 10);
28	ssize_t size;
29	off_t pos;
30	status_t err;
31
32	NextSubTest();
33	err = mem.SetSize(5);
34	pos = mem.Seek(0, SEEK_END);
35	size = mem.WriteAt(10, readBuf, 3);
36	CPPUNIT_ASSERT(err == B_OK);
37	CPPUNIT_ASSERT(pos == 5);
38	CPPUNIT_ASSERT(size == 0);
39
40	NextSubTest();
41	err = mem.SetSize(10);
42	pos = mem.Seek(0, SEEK_END);
43	size = mem.WriteAt(5, readBuf, 6);
44	CPPUNIT_ASSERT(err == B_OK);
45	CPPUNIT_ASSERT(pos == 10);
46	CPPUNIT_ASSERT(size == 5);
47
48	NextSubTest();
49	err = mem.SetSize(20);
50	CPPUNIT_ASSERT(err == B_ERROR);
51}
52
53
54CppUnit::Test *SetSizeTest::suite(void)
55{
56	typedef CppUnit::TestCaller<SetSizeTest>
57		SetSizeTestCaller;
58
59	return(new SetSizeTestCaller("BMemoryIO::SetSize Test", &SetSizeTest::PerformTest));
60}
61