[DEV] continue integration
This commit is contained in:
parent
0720c3ffca
commit
ae40e4a10d
@ -22,12 +22,8 @@ static etk::String simplifyPath(etk::String _input) {
|
||||
if (_input.size() == 0) {
|
||||
return _input;
|
||||
}
|
||||
while(currentPos < _input.size()) {
|
||||
if (_input[currentPos] == '\\') {
|
||||
_input[currentPos] = '/';
|
||||
}
|
||||
currentPos++;
|
||||
continue;
|
||||
if (_input[0] == '~') {
|
||||
_input = etk::fs::getHomePath().getString() + "/" + _input.extract(1);
|
||||
}
|
||||
// step 2 : remove all '//'
|
||||
TK_DBG_MODE("Simplify(2) : '" << _input << "'");
|
||||
@ -196,8 +192,29 @@ etk::String etk::Path::getRelative() const {
|
||||
if (isRelative() == true) {
|
||||
return m_data;
|
||||
}
|
||||
// TODO : plouf ...
|
||||
return "todo";
|
||||
etk::String execPath = etk::fs::getExecutionPath().getString();
|
||||
etk::String currentPath = m_data;
|
||||
etk::Vector<etk::String> execPathSplit = execPath.split('/');
|
||||
etk::Vector<etk::String> currentPathSplit = currentPath.split('/');
|
||||
for (size_t iii=0; iii<execPathSplit.size() && iii<currentPathSplit.size(); ++iii) {
|
||||
if (execPathSplit[0] == currentPathSplit[0]) {
|
||||
execPathSplit.popFront();
|
||||
currentPathSplit.popFront();
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
etk::String out = "";
|
||||
for (size_t iii=0; iii<execPathSplit.size(); ++iii) {
|
||||
out += "../";
|
||||
}
|
||||
for (size_t iii=0; iii<currentPathSplit.size(); ++iii) {
|
||||
out += currentPathSplit[iii];
|
||||
if (currentPathSplit.size()-1 != iii) {
|
||||
out += "/";
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
etk::String etk::Path::getRelativeWindows() const {
|
||||
|
@ -1,142 +0,0 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <etest/etest.hpp>
|
||||
#include <test-debug/debug.hpp>
|
||||
#include <etk/os/FSNode.hpp>
|
||||
|
||||
TEST(TestEtkFSNode, checkHomePath) {
|
||||
etk::String homePath = etk::FSNodeGetHomePath();
|
||||
EXPECT_EQ(homePath, "/home/heero");
|
||||
etk::FSNode myNodeTest1("HOME:filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest2("HOME:/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest3("~/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFolder(), "/home/heero");
|
||||
}
|
||||
|
||||
|
||||
|
||||
TEST(TestEtkFSNode, checkDATAFilePresent) {
|
||||
etk::String fileName("DATA:filePresent.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.exist(), true);
|
||||
bool ret = myNodeTest1.fileOpenRead();
|
||||
EXPECT_EQ(ret, true);
|
||||
etk::String data;
|
||||
ret = myNodeTest1.fileGets(data);
|
||||
EXPECT_EQ(ret, true);
|
||||
EXPECT_EQ(data, "plop");
|
||||
ret = myNodeTest1.fileClose();
|
||||
EXPECT_EQ(ret, true);
|
||||
}
|
||||
|
||||
TEST(TestEtkFSNode, checkDATAFileEmpty) {
|
||||
etk::String fileName("DATA:fileEmpty.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "fileEmpty.txt");
|
||||
EXPECT_EQ(myNodeTest1.exist(), true);
|
||||
bool ret = myNodeTest1.fileOpenRead();
|
||||
EXPECT_EQ(ret, true);
|
||||
etk::String data;
|
||||
ret = myNodeTest1.fileGets(data);
|
||||
EXPECT_EQ(ret, false);
|
||||
EXPECT_EQ(data, "");
|
||||
ret = myNodeTest1.fileClose();
|
||||
EXPECT_EQ(ret, true);
|
||||
}
|
||||
|
||||
TEST(TestEtkFSNode, checkDATAFileNotPresent) {
|
||||
etk::String fileName("DATA:fileNotPresent.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "fileNotPresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.exist(), false);
|
||||
}
|
||||
|
||||
|
||||
TEST(TestEtkFSNode, checkType) {
|
||||
etk::String fileName("USERDATA:myFileTest.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "myFileTest.txt");
|
||||
EXPECT_EQ(myNodeTest1.exist(), false);
|
||||
/*
|
||||
TEST_INFO(" GetNameFolder() ='" << myNodeTest1.getNameFolder() << "'");
|
||||
TEST_INFO(" GetName() ='" << myNodeTest1.getName() << "'");
|
||||
TEST_INFO(" GetNameFile() ='" << myNodeTest1.getNameFile() << "'");
|
||||
TEST_INFO(" GetRelativeFolder() ='" << myNodeTest1.getRelativeFolder() << "'");
|
||||
TEST_INFO(" getFileSystemName() ='" << myNodeTest1.getFileSystemName() << "'");
|
||||
TEST_INFO(" exist =" << myNodeTest1.exist());
|
||||
*/
|
||||
}
|
||||
|
||||
void testFSNode() {
|
||||
TEST_INFO("==> Start test of FSNode");
|
||||
etk::String fileName("USERDATA:myFileTest.txt");
|
||||
etk::FSNode myNodeTest1(fileName);
|
||||
TEST_INFO("********************************************");
|
||||
TEST_INFO("** Filename=\"" << fileName << "\"");
|
||||
TEST_INFO("********************************************");
|
||||
TEST_INFO(" GetNameFolder() ='" << myNodeTest1.getNameFolder() << "'");
|
||||
TEST_INFO(" GetName() ='" << myNodeTest1.getName() << "'");
|
||||
TEST_INFO(" GetNameFile() ='" << myNodeTest1.getNameFile() << "'");
|
||||
TEST_INFO(" GetRelativeFolder() ='" << myNodeTest1.getRelativeFolder() << "'");
|
||||
TEST_INFO(" getFileSystemName() ='" << myNodeTest1.getFileSystemName() << "'");
|
||||
TEST_INFO(" exist =" << myNodeTest1.exist());
|
||||
if (true==myNodeTest1.exist()) {
|
||||
TEST_ERROR(" ==> remove the file ==> bad for the test");
|
||||
} else {
|
||||
TEST_INFO(" Display time when file does not exist :");
|
||||
TEST_INFO(" TimeCreatedString() ='" << myNodeTest1.timeCreatedString() << "'");
|
||||
TEST_INFO(" TimeModifiedString() ='" << myNodeTest1.timeModifiedString() << "'");
|
||||
TEST_INFO(" TimeAccessedString() ='" << myNodeTest1.timeAccessedString() << "'");
|
||||
}
|
||||
myNodeTest1.touch();
|
||||
if (false==myNodeTest1.exist()) {
|
||||
TEST_ERROR(" ==> Error, can not create the file ....");
|
||||
} else {
|
||||
TEST_INFO(" Display time when file does exist :");
|
||||
TEST_INFO(" TimeCreatedString() ='" << myNodeTest1.timeCreatedString() << "'");
|
||||
TEST_INFO(" TimeModifiedString() ='" << myNodeTest1.timeModifiedString() << "'");
|
||||
TEST_INFO(" TimeAccessedString() ='" << myNodeTest1.timeAccessedString() << "'");
|
||||
}
|
||||
etk::FSNode myNodeTest2(fileName);
|
||||
TEST_INFO("********************************************");
|
||||
TEST_INFO("** Filename2=\"" << myNodeTest2<< "\"");
|
||||
TEST_INFO("********************************************");
|
||||
TEST_INFO(" GetNameFolder() ='" << myNodeTest2.getNameFolder() << "'");
|
||||
TEST_INFO(" GetName() ='" << myNodeTest2.getName() << "'");
|
||||
TEST_INFO(" GetNameFile() ='" << myNodeTest2.getNameFile() << "'");
|
||||
TEST_INFO(" GetRelativeFolder() ='" << myNodeTest2.getRelativeFolder() << "'");
|
||||
TEST_INFO(" getFileSystemName() ='" << myNodeTest2.getFileSystemName() << "'");
|
||||
TEST_INFO(" exist =" << myNodeTest2.exist());
|
||||
if (false==myNodeTest1.exist()) {
|
||||
TEST_ERROR(" ==> Error, can not create the file ....");
|
||||
} else {
|
||||
TEST_INFO(" Display time when file does exist :");
|
||||
TEST_INFO(" TimeCreatedString() ='" << myNodeTest2.timeCreatedString() << "'");
|
||||
TEST_INFO(" TimeModifiedString() ='" << myNodeTest2.timeModifiedString() << "'");
|
||||
TEST_INFO(" TimeAccessedString() ='" << myNodeTest2.timeAccessedString() << "'");
|
||||
}
|
||||
// Try remove the file :
|
||||
myNodeTest1.remove();
|
||||
if (true==myNodeTest1.exist()) {
|
||||
TEST_ERROR(" ==> The file might be removed ==> but it is not the case ...");
|
||||
} else {
|
||||
TEST_INFO(" ==> The file is removed");
|
||||
}
|
||||
TEST_INFO("********************************************");
|
||||
TEST_INFO("==> Stop test of FSNode");
|
||||
}
|
@ -14,21 +14,4 @@ TEST(TestFileSystem, checkHomePath) {
|
||||
etk::String basicPath = getenv("HOME");
|
||||
EXPECT_EQ(etk::fs::getHomePath(), basicPath);
|
||||
}
|
||||
/*
|
||||
TEST(TestEtkFSNode, checkHomePath) {
|
||||
etk::String homePath = etk::FSNodeGetHomePath();
|
||||
EXPECT_EQ(homePath, "/home/heero");
|
||||
etk::FSNode myNodeTest1("HOME:filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest1.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest2("HOME:/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest2.getNameFolder(), "/home/heero");
|
||||
etk::FSNode myNodeTest3("~/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFile(), "filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getFileSystemName(), homePath + "/filePresent.txt");
|
||||
EXPECT_EQ(myNodeTest3.getNameFolder(), "/home/heero");
|
||||
}
|
||||
*/
|
||||
|
||||
|
@ -140,8 +140,17 @@ TEST(TestPath, parent) {
|
||||
TEST(TestPath, getRelative) {
|
||||
etk::Path path("plouf.pdf");
|
||||
EXPECT_EQ(path.getRelative(), "plouf.pdf");
|
||||
path = "/plouf.pdf";
|
||||
EXPECT_EQ(path.getRelative(), "../../../../plouf.pdf");
|
||||
path = "/ici/plouf.pdf";
|
||||
etk::String test;
|
||||
auto elements = etk::fs::getExecutionPath().getString().split('/');
|
||||
for (size_t iii=0; iii<elements.size(); ++iii) {
|
||||
if (elements[iii].size() == 0) {
|
||||
continue;
|
||||
}
|
||||
test += "../";
|
||||
}
|
||||
test += "ici/plouf.pdf";
|
||||
EXPECT_EQ(path.getRelative(), test);
|
||||
}
|
||||
|
||||
TEST(TestPath, getAbsolute) {
|
||||
@ -151,4 +160,11 @@ TEST(TestPath, getAbsolute) {
|
||||
EXPECT_EQ(path.getAbsolute(), "/plouf.pdf");
|
||||
}
|
||||
|
||||
|
||||
TEST(TestPath, GetHomePath) {
|
||||
etk::String basicPath = getenv("HOME");
|
||||
etk::Path path("~");
|
||||
EXPECT_EQ(path.getString(), basicPath);
|
||||
basicPath += "/plouf.php";
|
||||
path = "~/plouf.php";
|
||||
EXPECT_EQ(path.getString(), basicPath);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user