You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Added SMDataFile methods to the list tested.
This commit is contained in:
@ -65,6 +65,8 @@ SMComm * SMComm::get()
|
|||||||
errno = l_errno; \
|
errno = l_errno; \
|
||||||
common_exit(bs1, bs2, retCode); \
|
common_exit(bs1, bs2, retCode); \
|
||||||
} \
|
} \
|
||||||
|
else \
|
||||||
|
errno = 0; \
|
||||||
}
|
}
|
||||||
|
|
||||||
SMComm::SMComm()
|
SMComm::SMComm()
|
||||||
|
@ -127,4 +127,17 @@ int SMDataFile::close()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// constructor used for testing
|
||||||
|
SMDataFile::SMDataFile(const char *fname, int _openmode, size_t fake_size)
|
||||||
|
: IDBDataFile(fname)
|
||||||
|
{
|
||||||
|
openmode = _openmode;
|
||||||
|
// the 'a' file open mode is the only one that starts at EOF
|
||||||
|
if ((openmode & O_APPEND) && !(openmode & O_RDWR))
|
||||||
|
position = fake_size;
|
||||||
|
else
|
||||||
|
position = 0;
|
||||||
|
comm = SMComm::get();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,9 @@ class SMDataFile : public IDBDataFile
|
|||||||
time_t mtime();
|
time_t mtime();
|
||||||
int close();
|
int close();
|
||||||
|
|
||||||
|
// for testing only
|
||||||
|
SMDataFile(const char *fname, int openmode, size_t fake_size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SMDataFile();
|
SMDataFile();
|
||||||
SMDataFile(const char *fname, int openmode, const struct stat &);
|
SMDataFile(const char *fname, int openmode, const struct stat &);
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
@ -127,8 +129,8 @@ int test1()
|
|||||||
SMFileFactory factory;
|
SMFileFactory factory;
|
||||||
|
|
||||||
cout << "open" << endl;
|
cout << "open" << endl;
|
||||||
IDBDataFile *f = factory.open("dummy", "r", 0, 0);
|
IDBDataFile *file = factory.open("dummy", "r", 0, 0);
|
||||||
assert(f == NULL && errno == EINVAL && !die);
|
assert(file == NULL && errno == EINVAL && !die);
|
||||||
|
|
||||||
SMFileSystem filesystem;
|
SMFileSystem filesystem;
|
||||||
|
|
||||||
@ -162,35 +164,89 @@ int test1()
|
|||||||
|
|
||||||
cout << "exists" << endl;
|
cout << "exists" << endl;
|
||||||
err = filesystem.exists("dummy");
|
err = filesystem.exists("dummy");
|
||||||
assert(!err);
|
assert(!err && errno == EINVAL);
|
||||||
|
|
||||||
cout << "filesystemisup" << endl;
|
cout << "filesystemisup" << endl;
|
||||||
err = filesystem.filesystemIsUp();
|
err = filesystem.filesystemIsUp();
|
||||||
assert(!err && !die);
|
assert(!err && errno == EINVAL && !die);
|
||||||
|
|
||||||
cout << "isdir" << endl;
|
cout << "isdir" << endl;
|
||||||
err = filesystem.isDir("dummy");
|
err = filesystem.isDir("dummy");
|
||||||
assert(!err && !die);
|
assert(!err && errno == EINVAL && !die);
|
||||||
|
|
||||||
cout << "listdirectory" << endl;
|
cout << "listdirectory" << endl;
|
||||||
list<string> filenames;
|
list<string> filenames;
|
||||||
err = filesystem.listDirectory("dummy", filenames);
|
err = filesystem.listDirectory("dummy", filenames);
|
||||||
assert(err == -1 && filenames.empty() && !die);
|
assert(err == -1 && errno == EINVAL && filenames.empty() && !die);
|
||||||
|
|
||||||
cout << "remove" << endl;
|
cout << "remove" << endl;
|
||||||
err = filesystem.remove("dummy");
|
err = filesystem.remove("dummy");
|
||||||
assert(err == -1 && !die);
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
cout << "size" << endl;
|
cout << "size" << endl;
|
||||||
err = filesystem.size("dummy");
|
err = filesystem.size("dummy");
|
||||||
assert(err == -1 && !die);
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
cout << "mkdir" << endl;
|
cout << "mkdir" << endl;
|
||||||
err = filesystem.mkdir("dummy");
|
err = filesystem.mkdir("dummy");
|
||||||
assert(err == 0 && !die);
|
assert(err == 0 && !die);
|
||||||
|
|
||||||
|
cout << "datafile constructor" << endl;
|
||||||
|
SMDataFile f("dummy", O_RDONLY, 12345);
|
||||||
|
f = SMDataFile("dummy2", O_WRONLY, 123456);
|
||||||
|
f = SMDataFile("dummy2", O_RDWR | O_APPEND, 1234567);
|
||||||
|
|
||||||
|
cout << "pread" << endl;
|
||||||
|
uint8_t buf[1024];
|
||||||
|
err = f.pread(buf, 0, 1024);
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "read" << endl;
|
||||||
|
err = f.read(buf, 1024);
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "write" << endl;
|
||||||
|
err = f.write(buf, 1024);
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "seek" << endl;
|
||||||
|
err = f.seek(1234, SEEK_SET);
|
||||||
|
assert(err == 0 && !die);
|
||||||
|
|
||||||
|
err = f.seek(1234, SEEK_CUR);
|
||||||
|
assert(err == 0 && !die);
|
||||||
|
|
||||||
|
err = f.seek(1234, SEEK_END);
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "truncate" << endl;
|
||||||
|
err = f.truncate(1234);
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "size" << endl;
|
||||||
|
err = f.size();
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "tell" << endl;
|
||||||
|
err = f.tell();
|
||||||
|
assert(err == 2468);
|
||||||
|
|
||||||
|
cout << "flush" << endl;
|
||||||
|
err = f.flush();
|
||||||
|
assert(err == 0);
|
||||||
|
|
||||||
|
cout << "mtime" << endl;
|
||||||
|
err = f.mtime();
|
||||||
|
assert(err == -1 && errno == EINVAL && !die);
|
||||||
|
|
||||||
|
cout << "close" << endl;
|
||||||
|
err = f.close();
|
||||||
|
assert(err == 0);
|
||||||
|
|
||||||
|
|
||||||
// done, return errCode
|
// done, return errCode
|
||||||
die = true;
|
die = true;
|
||||||
|
cout << "done, waiting for server thread to stop" << endl;
|
||||||
server_thread.join();
|
server_thread.join();
|
||||||
return errCode;
|
return errCode;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user