diff --git a/examples/osgunittests/CMakeLists.txt b/examples/osgunittests/CMakeLists.txt index 4a3ccc33d..e6cfaa7a7 100644 --- a/examples/osgunittests/CMakeLists.txt +++ b/examples/osgunittests/CMakeLists.txt @@ -4,6 +4,7 @@ SET(TARGET_SRC osgunittests.cpp performance.cpp MultiThreadRead.cpp + FileNameUtils.cpp ) SET(TARGET_H diff --git a/examples/osgunittests/FileNameUtils.cpp b/examples/osgunittests/FileNameUtils.cpp new file mode 100644 index 000000000..acfa26802 --- /dev/null +++ b/examples/osgunittests/FileNameUtils.cpp @@ -0,0 +1,66 @@ +/* -*-c++-*- +* +* OpenSceneGraph example, osgunittests. +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +#include +#include +#include +#include + +void runFileNameUtilsTest(osg::ArgumentParser&) +{ +typedef std::list Strings; + Strings strings; + strings.push_back(std::string("")); + strings.push_back(std::string("myfile")); + strings.push_back(std::string(".osg")); + strings.push_back(std::string("myfile.osg")); + strings.push_back(std::string("/myfile.osg")); + strings.push_back(std::string("home/robert/myfile.osg")); + strings.push_back(std::string("/home/robert/myfile.osg")); + strings.push_back(std::string("\\myfile.osg")); + strings.push_back(std::string("home\\robert\\myfile.osg")); + strings.push_back(std::string("\\home\\robert\\myfile.osg")); + strings.push_back(std::string("\\home/robert\\myfile.osg")); + strings.push_back(std::string("\\home\\robert/myfile.osg")); + strings.push_back(std::string("home/robert/")); + strings.push_back(std::string("\\home\\robert\\")); + strings.push_back(std::string("home/robert/myfile")); + strings.push_back(std::string("\\home\\robert\\myfile")); + strings.push_back(std::string("home/robert/.osg")); + strings.push_back(std::string("\\home\\robert\\.osg")); + strings.push_back(std::string("home/robert/myfile.ext.osg")); + strings.push_back(std::string("home\\robert\\myfile.ext.osg")); + + for(Strings::iterator itr = strings.begin(); + itr != strings.end(); + ++itr) + { + std::string& str = *itr; + OSG_NOTICE<<"string="<