[Libreoffice-commits] .: sal/qa

Caolán McNamara caolan at kemper.freedesktop.org
Tue Feb 22 03:05:52 PST 2011


 sal/qa/osl/file/makefile.mk           |    4 -
 sal/qa/osl/file/test_cpy_wrt_file.cxx |   79 ++++++++++++----------------------
 2 files changed, 29 insertions(+), 54 deletions(-)

New commits:
commit f31f722e3ebfdadc872627b0a988375f59a6afb3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Feb 22 11:02:50 2011 +0000

    Rework this test to be useful.
    
    Make it test that everything works as expected under EEXIST conditions,
    which is what it effectively tested for before.

diff --git a/sal/qa/osl/file/makefile.mk b/sal/qa/osl/file/makefile.mk
index 86d0e6d..8b6b1ff 100644
--- a/sal/qa/osl/file/makefile.mk
+++ b/sal/qa/osl/file/makefile.mk
@@ -53,9 +53,7 @@ SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
 #-------------------------------------------------------------------
 
 SHL2OBJS=$(SLO)$/test_cpy_wrt_file.obj
-# TODO: disabled because it makes assumption on the build-environment
-# (assumes a target with not enough free disk-space exists)
-# SHL2TARGET=tcwf
+SHL2TARGET=tcwf
 SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
 SHL2IMPLIB=i$(SHL2TARGET)
 SHL2DEF=$(MISC)$/$(SHL2TARGET).def
diff --git a/sal/qa/osl/file/test_cpy_wrt_file.cxx b/sal/qa/osl/file/test_cpy_wrt_file.cxx
index f982320..cfa7246 100644
--- a/sal/qa/osl/file/test_cpy_wrt_file.cxx
+++ b/sal/qa/osl/file/test_cpy_wrt_file.cxx
@@ -39,43 +39,7 @@
 using namespace osl;
 using namespace rtl;
 
-//########################################
-#ifdef UNX
-#   define COPY_SOURCE_PATH "/home/tr109510/ucbhelper.cxx"
-#   define COPY_DEST_PATH "/mnt/mercury08/ucbhelper.cxx"
-#else /* if WNT */
-#   define COPY_SOURCE_PATH "d:\\msvcr70.dll"
-#   define COPY_DEST_PATH "x:\\tra\\msvcr70.dll"
-#endif
-
-class test_osl_copyFile : public CppUnit::TestFixture
-{
-public:
-    void cp_file()
-    {
-        rtl::OUString src_url;
-        FileBase::getFileURLFromSystemPath(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(COPY_SOURCE_PATH)), src_url);
-
-        rtl::OUString dest_url;
-        FileBase::getFileURLFromSystemPath(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(COPY_DEST_PATH)), dest_url);
-
-        FileBase::RC err = File::copy(src_url, dest_url);
-        CPPUNIT_ASSERT_MESSAGE("Copy didn't recognized disk full", err != FileBase::E_None);
-    }
-
-    CPPUNIT_TEST_SUITE(test_osl_copyFile);
-    CPPUNIT_TEST(cp_file);
-    CPPUNIT_TEST_SUITE_END();
-};
-
-//########################################
-#ifdef UNX
-#   define WRITE_DEST_PATH "/tmp/muell.tmp"
-#else /* if WNT */
-#   define WRITE_DEST_PATH "d:\\tmp_data.tmp"
-#endif
-
-//Use to deliberately silence warnings for a deliberate error
+//Use to silence OSL_ warnings for a deliberate error
 extern "C" void SAL_CALL suppressOslDebugMessage( const sal_Char *, sal_Int32, const sal_Char * )
 {
 }
@@ -85,28 +49,42 @@ class test_osl_writeFile : public CppUnit::TestFixture
 public:
     void wrt_file()
     {
-        rtl::OUString dest_url;
-        FileBase::getFileURLFromSystemPath(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(WRITE_DEST_PATH)), dest_url);
+        FileBase::RC err;
+
+        //create a tempfile
+        rtl::OUString aTmpFile;
+        err = FileBase::createTempFile(NULL, NULL, &aTmpFile);
+        CPPUNIT_ASSERT_MESSAGE("temp File creation failed", err == osl::FileBase::E_None);
 
-        File tmp_file(dest_url);
-        rtl::OString sErrorMsg = "File creation failed: ";
-        sErrorMsg += rtl::OUStringToOString( dest_url, RTL_TEXTENCODING_ASCII_US );
-        FileBase::RC err = tmp_file.open(osl_File_OpenFlag_Write | osl_File_OpenFlag_Create);
+        //now attempt to open with Create flag an existing file, should get E_EXIST
+        File tmp_file(aTmpFile);
+        err = tmp_file.open(osl_File_OpenFlag_Write | osl_File_OpenFlag_Create);
 
-        CPPUNIT_ASSERT_MESSAGE( sErrorMsg.getStr(), err == FileBase::E_None || err == FileBase::E_EXIST );
+        rtl::OString sErrorMsg = "Expected that '";
+        sErrorMsg += rtl::OUStringToOString(aTmpFile, RTL_TEXTENCODING_ASCII_US);
+        sErrorMsg += "' would exist!";
+        CPPUNIT_ASSERT_MESSAGE(sErrorMsg.getStr(), err == FileBase::E_EXIST);
 
-        char buffer[50000];
+        //deliberate errors, suppress run-time warning for operations on
+        //un-opened File
+        pfunc_osl_printDetailedDebugMessage pOldDebugMessageFunc =
+            osl_setDetailedDebugMessageFunc( &suppressOslDebugMessage );
+
+        char buffer[1];
         sal_uInt64 written = 0;
         err = tmp_file.write((void*)buffer, sizeof(buffer), written);
+        CPPUNIT_ASSERT_MESSAGE("write on unconnected file should fail",
+            err != osl::FileBase::E_None && written == 0);
 
-        //deliberate error, suppress run-time warning
-        pfunc_osl_printDetailedDebugMessage pOldDebugMessageFunc = osl_setDetailedDebugMessageFunc( &suppressOslDebugMessage );
         err = tmp_file.sync();
-        osl_setDetailedDebugMessageFunc( pOldDebugMessageFunc );
+        CPPUNIT_ASSERT_MESSAGE("sync on unconnected file should fail", err != FileBase::E_None);
+        err = tmp_file.close();
+        CPPUNIT_ASSERT_MESSAGE("close on unconnected file should fail", err != FileBase::E_None);
 
-        CPPUNIT_ASSERT_MESSAGE("Write didn't recognized disk full", err != FileBase::E_None);
+        osl_setDetailedDebugMessageFunc( pOldDebugMessageFunc );
 
-        tmp_file.close();
+        err = ::osl::File::remove(aTmpFile);
+        CPPUNIT_ASSERT_MESSAGE("temp file should have existed", err == FileBase::E_None);
     }
 
     CPPUNIT_TEST_SUITE(test_osl_writeFile);
@@ -117,7 +95,6 @@ public:
 //#####################################
 // register test suites
 CPPUNIT_TEST_SUITE_REGISTRATION(test_osl_writeFile);
-CPPUNIT_TEST_SUITE_REGISTRATION(test_osl_copyFile);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
 


More information about the Libreoffice-commits mailing list