The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#include "stdafx.h"
namespace lucene{ namespace test{
void StoreTest(int_t count, bool ram){
srand(1251971);
int_t i;
long_t veryStart = lucene::util::Misc::currentTimeMillis();
long_t start = lucene::util::Misc::currentTimeMillis();
Directory& store = (ram?(Directory&)*new RAMDirectory(): (Directory&)FSDirectory::getDirectory(_T("test.store"), true) );
int_t LENGTH_MASK = 0xFFF;
char_t name[260];
for (i = 0; i < count; i++) {
stringPrintF(name,_T("%d.dat"),i);
int_t length = rand() & LENGTH_MASK;
l_byte_t b = (l_byte_t)(rand() & 0x7F);
OutputStream& file = store.createFile(name);
for (int_t j = 0; j < length; j++)
file.writeByte(b);
file.close();
delete &file;
}
_cout << (lucene::util::Misc::currentTimeMillis() - start) << _T(" total milliseconds to create") << endl;
if (!ram){
//store.close();
store = (Directory&)FSDirectory::getDirectory(_T("test.store"), false);
}
srand(1251971);
start = lucene::util::Misc::currentTimeMillis();
for (i = 0; i < count; i++) {
stringPrintF(name,_T("%d.dat"),i);
int_t length = rand() & LENGTH_MASK;
l_byte_t b = (l_byte_t)(rand() & 0x7F);
InputStream& file = store.openFile(name);
if (file.Length() != length)
throw; // exception( "length incorrect" );
for (int_t j = 0; j < length; j++)
if (file.readByte() != b)
throw;// exception( "contents incorrect" );
file.close();
delete &file;
}
_cout << (lucene::util::Misc::currentTimeMillis() - start) << _T(" total milliseconds to read") << endl;
srand(1251971);
start = lucene::util::Misc::currentTimeMillis();
for (i = 0; i < count; i++) {
stringPrintF(name,_T("%d.dat"),i);
store.deleteFile(name);
}
_cout << (lucene::util::Misc::currentTimeMillis() - start) << _T(" total milliseconds to delete") << endl;
_cout << (lucene::util::Misc::currentTimeMillis() - veryStart) << _T(" total milliseconds") << endl;
store.close();
if ( ram )
delete &store;
}
}}