Missing files.
authorCarl Hetherington <carl@carlh.net>
Mon, 28 May 2012 16:48:39 +0000 (16:48 +0000)
committerCarl Hetherington <carl@carlh.net>
Mon, 28 May 2012 16:48:39 +0000 (16:48 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12469 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/pbd/test/filesystem_test.cc [new file with mode: 0644]
libs/pbd/test/filesystem_test.h [new file with mode: 0644]

diff --git a/libs/pbd/test/filesystem_test.cc b/libs/pbd/test/filesystem_test.cc
new file mode 100644 (file)
index 0000000..11371c8
--- /dev/null
@@ -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 (file)
index 0000000..57f2663
--- /dev/null
@@ -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 ();
+
+};
+