[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) {
|
if (_input.size() == 0) {
|
||||||
return _input;
|
return _input;
|
||||||
}
|
}
|
||||||
while(currentPos < _input.size()) {
|
if (_input[0] == '~') {
|
||||||
if (_input[currentPos] == '\\') {
|
_input = etk::fs::getHomePath().getString() + "/" + _input.extract(1);
|
||||||
_input[currentPos] = '/';
|
|
||||||
}
|
|
||||||
currentPos++;
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
// step 2 : remove all '//'
|
// step 2 : remove all '//'
|
||||||
TK_DBG_MODE("Simplify(2) : '" << _input << "'");
|
TK_DBG_MODE("Simplify(2) : '" << _input << "'");
|
||||||
@ -196,8 +192,29 @@ etk::String etk::Path::getRelative() const {
|
|||||||
if (isRelative() == true) {
|
if (isRelative() == true) {
|
||||||
return m_data;
|
return m_data;
|
||||||
}
|
}
|
||||||
// TODO : plouf ...
|
etk::String execPath = etk::fs::getExecutionPath().getString();
|
||||||
return "todo";
|
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 {
|
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");
|
etk::String basicPath = getenv("HOME");
|
||||||
EXPECT_EQ(etk::fs::getHomePath(), basicPath);
|
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) {
|
TEST(TestPath, getRelative) {
|
||||||
etk::Path path("plouf.pdf");
|
etk::Path path("plouf.pdf");
|
||||||
EXPECT_EQ(path.getRelative(), "plouf.pdf");
|
EXPECT_EQ(path.getRelative(), "plouf.pdf");
|
||||||
path = "/plouf.pdf";
|
path = "/ici/plouf.pdf";
|
||||||
EXPECT_EQ(path.getRelative(), "../../../../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) {
|
TEST(TestPath, getAbsolute) {
|
||||||
@ -151,4 +160,11 @@ TEST(TestPath, getAbsolute) {
|
|||||||
EXPECT_EQ(path.getAbsolute(), "/plouf.pdf");
|
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