%description: Tests splitFileName() function. NOTE: the output is far from being perfect, but for canonical absolute paths it is OK (we use for that)... %includes: #include %global: using namespace omnetpp::common; static void slice(const char *s) { std::string path = s; for (;;) { std::string dir, fname; splitFileName(path.c_str(), dir, fname); EV << path << " -> " << dir << " + " << fname << "\n"; if (path == dir) break; path = dir; } EV << "\n"; } %activity: slice("."); slice(".."); slice("../../."); slice("./../../."); slice("dir"); slice("dir//"); slice("./dir"); slice("../dir"); slice("dir/.."); slice("dir1/dir2/.."); slice("dir1/../dir2"); slice("dir1/../.."); slice("dir1/../../.."); slice("c:dir"); slice("c:./dir"); slice("c:../dir"); slice("c:dir/.."); slice("c:dir1/dir2/.."); slice("c:dir1/../dir2"); slice("c:dir1/../.."); slice("c:dir1/../../.."); slice("/usr"); slice("/usr/bin"); slice("/usr/bin/.."); slice("/usr/bin/../.."); slice("/usr/bin/../../.."); slice("/usr/.///"); slice("c:/tmp/queuenet/node.ned"); slice("c://tmp/queuenet//node.ned"); slice("c:/./tmp/queuenet/./node.ned"); slice("c:/./tmp/../queuenet/node.ned"); slice("c:/./tmp/../queuenet/../node.ned"); slice("c:/./tmp/queuenet/../../node.ned"); slice("c:/./tmp/queuenet/../../../node.ned"); EV << ".\n"; %exitcode: 0 %contains: stdout . -> . + .. -> .. + ../../. -> ../../ + . ../../ -> ../ + ../ ../ -> . + ../ . -> . + ./../../. -> ./../../ + . ./../../ -> ./../ + ../ ./../ -> ./ + ../ ./ -> . + ./ . -> . + dir -> . + dir . -> . + dir// -> dir/ + / dir/ -> . + dir/ . -> . + ./dir -> ./ + dir ./ -> . + ./ . -> . + ../dir -> ../ + dir ../ -> . + ../ . -> . + dir/.. -> dir/ + .. dir/ -> . + dir/ . -> . + dir1/dir2/.. -> dir1/dir2/ + .. dir1/dir2/ -> dir1/ + dir2/ dir1/ -> . + dir1/ . -> . + dir1/../dir2 -> dir1/../ + dir2 dir1/../ -> dir1/ + ../ dir1/ -> . + dir1/ . -> . + dir1/../.. -> dir1/../ + .. dir1/../ -> dir1/ + ../ dir1/ -> . + dir1/ . -> . + dir1/../../.. -> dir1/../../ + .. dir1/../../ -> dir1/../ + ../ dir1/../ -> dir1/ + ../ dir1/ -> . + dir1/ . -> . + c:dir -> c:dir + c:./dir -> c:./ + dir c:./ -> c:./ + c:../dir -> c:../ + dir c:../ -> c:../ + c:dir/.. -> c:dir/ + .. c:dir/ -> c:dir/ + c:dir1/dir2/.. -> c:dir1/dir2/ + .. c:dir1/dir2/ -> c:dir1/ + dir2/ c:dir1/ -> c:dir1/ + c:dir1/../dir2 -> c:dir1/../ + dir2 c:dir1/../ -> c:dir1/ + ../ c:dir1/ -> c:dir1/ + c:dir1/../.. -> c:dir1/../ + .. c:dir1/../ -> c:dir1/ + ../ c:dir1/ -> c:dir1/ + c:dir1/../../.. -> c:dir1/../../ + .. c:dir1/../../ -> c:dir1/../ + ../ c:dir1/../ -> c:dir1/ + ../ c:dir1/ -> c:dir1/ + /usr -> . + /usr . -> . + /usr/bin -> /usr/ + bin /usr/ -> . + /usr/ . -> . + /usr/bin/.. -> /usr/bin/ + .. /usr/bin/ -> /usr/ + bin/ /usr/ -> . + /usr/ . -> . + /usr/bin/../.. -> /usr/bin/../ + .. /usr/bin/../ -> /usr/bin/ + ../ /usr/bin/ -> /usr/ + bin/ /usr/ -> . + /usr/ . -> . + /usr/bin/../../.. -> /usr/bin/../../ + .. /usr/bin/../../ -> /usr/bin/../ + ../ /usr/bin/../ -> /usr/bin/ + ../ /usr/bin/ -> /usr/ + bin/ /usr/ -> . + /usr/ . -> . + /usr/./// -> /usr/.// + / /usr/.// -> /usr/./ + / /usr/./ -> /usr/ + ./ /usr/ -> . + /usr/ . -> . + c:/tmp/queuenet/node.ned -> c:/tmp/queuenet/ + node.ned c:/tmp/queuenet/ -> c:/tmp/ + queuenet/ c:/tmp/ -> c:/ + tmp/ c:/ -> c:/ + c://tmp/queuenet//node.ned -> c://tmp/queuenet// + node.ned c://tmp/queuenet// -> c://tmp/queuenet/ + / c://tmp/queuenet/ -> c://tmp/ + queuenet/ c://tmp/ -> c:// + tmp/ c:// -> c:/ + / c:/ -> c:/ + c:/./tmp/queuenet/./node.ned -> c:/./tmp/queuenet/./ + node.ned c:/./tmp/queuenet/./ -> c:/./tmp/queuenet/ + ./ c:/./tmp/queuenet/ -> c:/./tmp/ + queuenet/ c:/./tmp/ -> c:/./ + tmp/ c:/./ -> c:/ + ./ c:/ -> c:/ + c:/./tmp/../queuenet/node.ned -> c:/./tmp/../queuenet/ + node.ned c:/./tmp/../queuenet/ -> c:/./tmp/../ + queuenet/ c:/./tmp/../ -> c:/./tmp/ + ../ c:/./tmp/ -> c:/./ + tmp/ c:/./ -> c:/ + ./ c:/ -> c:/ + c:/./tmp/../queuenet/../node.ned -> c:/./tmp/../queuenet/../ + node.ned c:/./tmp/../queuenet/../ -> c:/./tmp/../queuenet/ + ../ c:/./tmp/../queuenet/ -> c:/./tmp/../ + queuenet/ c:/./tmp/../ -> c:/./tmp/ + ../ c:/./tmp/ -> c:/./ + tmp/ c:/./ -> c:/ + ./ c:/ -> c:/ + c:/./tmp/queuenet/../../node.ned -> c:/./tmp/queuenet/../../ + node.ned c:/./tmp/queuenet/../../ -> c:/./tmp/queuenet/../ + ../ c:/./tmp/queuenet/../ -> c:/./tmp/queuenet/ + ../ c:/./tmp/queuenet/ -> c:/./tmp/ + queuenet/ c:/./tmp/ -> c:/./ + tmp/ c:/./ -> c:/ + ./ c:/ -> c:/ + c:/./tmp/queuenet/../../../node.ned -> c:/./tmp/queuenet/../../../ + node.ned c:/./tmp/queuenet/../../../ -> c:/./tmp/queuenet/../../ + ../ c:/./tmp/queuenet/../../ -> c:/./tmp/queuenet/../ + ../ c:/./tmp/queuenet/../ -> c:/./tmp/queuenet/ + ../ c:/./tmp/queuenet/ -> c:/./tmp/ + queuenet/ c:/./tmp/ -> c:/./ + tmp/ c:/./ -> c:/ + ./ c:/ -> c:/ + .