summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-05-28 16:48:39 +0000
committerCarl Hetherington <carl@carlh.net>2012-05-28 16:48:39 +0000
commitec362b39ad0375845e583252c29398e920b97409 (patch)
tree9635ae73d752fcde21131b83fea57a67621e740d /libs
parent7eb8a33910bfdab21b98d794dc731bc8e8557cb9 (diff)
Missing files.
git-svn-id: svn://localhost/ardour2/branches/3.0@12469 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/pbd/test/filesystem_test.cc35
-rw-r--r--libs/pbd/test/filesystem_test.h14
2 files changed, 49 insertions, 0 deletions
diff --git a/libs/pbd/test/filesystem_test.cc b/libs/pbd/test/filesystem_test.cc
new file mode 100644
index 0000000000..11371c8cb6
--- /dev/null
+++ b/libs/pbd/test/filesystem_test.cc
@@ -0,0 +1,35 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include "filesystem_test.h"
+#include "pbd/filesystem.h"
+
+using namespace std;
+
+CPPUNIT_TEST_SUITE_REGISTRATION (FilesystemTest);
+
+void
+FilesystemTest::testPathIsWithin ()
+{
+ system ("rm -r foo");
+ PBD::sys::create_directories ("foo/bar/baz");
+
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar/baz", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar"));
+
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar/baz", "frobozz") == false);
+
+ int const r = symlink ("bar", "foo/jim");
+ CPPUNIT_ASSERT (r == 0);
+
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar/baz", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar/baz"));
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/bar", "foo/bar"));
+
+ CPPUNIT_ASSERT (PBD::sys::path_is_within ("foo/jim/baz", "frobozz") == false);
+}
+
diff --git a/libs/pbd/test/filesystem_test.h b/libs/pbd/test/filesystem_test.h
new file mode 100644
index 0000000000..57f26631d0
--- /dev/null
+++ b/libs/pbd/test/filesystem_test.h
@@ -0,0 +1,14 @@
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+class FilesystemTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE (FilesystemTest);
+ CPPUNIT_TEST (testPathIsWithin);
+ CPPUNIT_TEST_SUITE_END ();
+
+public:
+ void testPathIsWithin ();
+
+};
+