dbms: IO: added test [#METR-2944].

This commit is contained in:
Alexey Milovidov 2014-01-04 04:52:22 +00:00
parent b9d6fc48eb
commit 6820638c30
3 changed files with 48 additions and 3 deletions

View File

@ -16,13 +16,13 @@ private:
std::string file_name; std::string file_name;
public: public:
ReadBufferFromFile(const std::string & file_name_, size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, ReadBufferFromFile(const std::string & file_name_, size_t buf_size = DBMS_DEFAULT_BUFFER_SIZE, int flags = -1,
char * existing_memory = NULL, size_t alignment = 0) char * existing_memory = NULL, size_t alignment = 0)
: ReadBufferFromFileDescriptor(-1, buf_size, existing_memory, alignment), file_name(file_name_) : ReadBufferFromFileDescriptor(-1, buf_size, existing_memory, alignment), file_name(file_name_)
{ {
ProfileEvents::increment(ProfileEvents::FileOpen); ProfileEvents::increment(ProfileEvents::FileOpen);
fd = open(file_name.c_str(), O_RDONLY); fd = open(file_name.c_str(), flags == -1 ? O_RDONLY : flags);
if (-1 == fd) if (-1 == fd)
throwFromErrno("Cannot open file " + file_name, errno == ENOENT ? ErrorCodes::FILE_DOESNT_EXIST : ErrorCodes::CANNOT_OPEN_FILE); throwFromErrno("Cannot open file " + file_name, errno == ENOENT ? ErrorCodes::FILE_DOESNT_EXIST : ErrorCodes::CANNOT_OPEN_FILE);

View File

@ -0,0 +1,45 @@
#include <string>
#include <iostream>
#include <DB/Core/Types.h>
#include <DB/IO/WriteHelpers.h>
#include <DB/IO/ReadHelpers.h>
#include <DB/IO/WriteBufferFromFile.h>
#include <DB/IO/ReadBufferFromFile.h>
int main(int argc, char ** argv)
{
using namespace DB;
try
{
ReadBufferFromFile rand_in("/dev/urandom");
unsigned rand = 0;
readBinary(rand, rand_in);
String test = "Hello, world! " + toString(rand);
{
WriteBufferFromFile wb("test", 4096);
writeStringBinary(test, wb);
wb.next();
}
{
ReadBufferFromFile rb("test", 4096, O_RDONLY | O_DIRECT, nullptr, 4096);
String res;
readStringBinary(res, rb);
std::cerr << "test: " << test << ", res: " << res << std::endl;
}
}
catch (const Exception & e)
{
std::cerr << e.what() << ", " << e.displayText() << std::endl;
return 1;
}
return 0;
}

View File

@ -112,7 +112,7 @@ void loadMetadata(Context & context)
{ {
static const size_t in_buf_size = 32768; static const size_t in_buf_size = 32768;
char in_buf[in_buf_size]; char in_buf[in_buf_size];
ReadBufferFromFile in(tables[j], 32768, in_buf); ReadBufferFromFile in(tables[j], 32768, -1, in_buf);
WriteBufferFromString out(s); WriteBufferFromString out(s);
copyData(in, out); copyData(in, out);
} }