13
0

Add test for PBD::copy_file

From this I can see that PBD::copy_file is not working correctly on windows
as it is adding windows style line endings. Adding O_BINARY to ::open flags
would fix it, but perhaps there is a better way...
This commit is contained in:
Tim Mayberry 2014-06-24 17:05:45 +10:00 committed by Paul Davis
parent 94d8dfa256
commit 7338c4e242
2 changed files with 23 additions and 1 deletions

View File

@ -1,8 +1,14 @@
#include "filesystem_test.h"
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include "filesystem_test.h"
#include <glibmm/miscutils.h>
#include "pbd/file_utils.h" #include "pbd/file_utils.h"
#include "test_common.h"
using namespace std; using namespace std;
CPPUNIT_TEST_SUITE_REGISTRATION (FilesystemTest); CPPUNIT_TEST_SUITE_REGISTRATION (FilesystemTest);
@ -35,3 +41,17 @@ FilesystemTest::testPathIsWithin ()
#endif #endif
} }
void
FilesystemTest::testCopyFile ()
{
std::string testdata_path;
CPPUNIT_ASSERT (find_file (test_search_path (), "RosegardenPatchFile.xml", testdata_path));
std::string output_path = test_output_directory ("CopyFile");
output_path = Glib::build_filename (output_path, "RosegardenPatchFile.xml");
cerr << "CopyFile test output path: " << output_path << endl;
CPPUNIT_ASSERT (PBD::copy_file (testdata_path, output_path));
}

View File

@ -5,10 +5,12 @@ class FilesystemTest : public CppUnit::TestFixture
{ {
CPPUNIT_TEST_SUITE (FilesystemTest); CPPUNIT_TEST_SUITE (FilesystemTest);
CPPUNIT_TEST (testPathIsWithin); CPPUNIT_TEST (testPathIsWithin);
CPPUNIT_TEST (testCopyFile);
CPPUNIT_TEST_SUITE_END (); CPPUNIT_TEST_SUITE_END ();
public: public:
void testPathIsWithin (); void testPathIsWithin ();
void testCopyFile ();
}; };