Kaydet (Commit) d7b7943a authored tarafından Damjan Jovanovic's avatar Damjan Jovanovic

#i125003# migrate main/configmgr/qa/unit from cppunit to Google Test. All tests fail

and on Windows it doesn't start running, but these look like problems from before
and at least it doesn't run during the build.
üst faff774b
...@@ -29,20 +29,25 @@ ENABLE_EXCEPTIONS = TRUE ...@@ -29,20 +29,25 @@ ENABLE_EXCEPTIONS = TRUE
.INCLUDE: settings.mk .INCLUDE: settings.mk
CFLAGSCXX += $(CPPUNIT_CFLAGS) .IF "$(ENABLE_UNIT_TESTS)" != "YES"
all:
@echo unit tests are disabled. Nothing to do.
.ELSE
SLOFILES = $(SLO)/test.obj SLOFILES = $(SLO)/test.obj
SHL1OBJS = $(SLOFILES) APP1OBJS = $(SLOFILES)
SHL1STDLIBS = \ APP1STDLIBS = \
$(CPPUHELPERLIB) \ $(CPPUHELPERLIB) \
$(CPPULIB) \ $(CPPULIB) \
$(CPPUNITLIB) \ $(GTESTLIB) \
$(SALLIB) \ $(SALLIB) \
$(TESTSHL2LIB) $(TESTSHL2LIB)
SHL1TARGET = unit APP1TARGET = unit
SHL1VERSIONMAP = version.map APP1RPATH = NONE
DEF1NAME = $(SHL1TARGET) # this is a custom test, can't use APP1TARGET_run so disable it here:
APP1TEST = disabled
.INCLUDE: target.mk .INCLUDE: target.mk
...@@ -54,11 +59,13 @@ MY_INI = .ini ...@@ -54,11 +59,13 @@ MY_INI = .ini
MY_INI = rc MY_INI = rc
.ENDIF .ENDIF
DLLPRE = # no leading "lib" on .so files
$(MISC)/unit.rdb .ERRREMOVE: $(MISC)/unit.rdb .ERRREMOVE:
cp $(SOLARBINDIR)/types.rdb $@ cp $(SOLARBINDIR)/types.rdb $@
$(REGCOMP) -register -r $@ -c $(DLLDEST)/$(DLLPRE)configmgr$(DLLPOST) $(REGCOMP) -register -r $@ -c $(DLLDEST)/$(DLLPRE)configmgr.uno$(DLLPOST)
TEST .PHONY: $(SHL1TARGETN) $(MISC)/unit.rdb TEST .PHONY: $(APP1TARGETN) $(MISC)/unit.rdb
rm -rf $(MISC)/unitdata rm -rf $(MISC)/unitdata
mkdir $(MISC)/unitdata mkdir $(MISC)/unitdata
cp urebootstrap.ini $(MISC)/unitdata cp urebootstrap.ini $(MISC)/unitdata
...@@ -78,12 +85,9 @@ TEST .PHONY: $(SHL1TARGETN) $(MISC)/unit.rdb ...@@ -78,12 +85,9 @@ TEST .PHONY: $(SHL1TARGETN) $(MISC)/unit.rdb
echo '[Bootstrap]' > $(MISC)/unitdata/brand/program/bootstrap$(MY_INI) echo '[Bootstrap]' > $(MISC)/unitdata/brand/program/bootstrap$(MY_INI)
echo 'UserInstallation = $$ORIGIN/../../user' \ echo 'UserInstallation = $$ORIGIN/../../user' \
>> $(MISC)/unitdata/brand/program/bootstrap$(MY_INI) >> $(MISC)/unitdata/brand/program/bootstrap$(MY_INI)
.IF "$(USE_SHELL)" == "bash" $(COMMAND_ECHO) $(AUGMENT_LIBRARY_PATH_LOCAL) \
export \
URE_BOOTSTRAP=vnd.sun.star.pathname:$(MISC)/unitdata/urebootstrap.ini \ URE_BOOTSTRAP=vnd.sun.star.pathname:$(MISC)/unitdata/urebootstrap.ini \
&& $(TESTSHL2) $(SHL1TARGETN) -forward $(MISC)/unit.rdb CONFIGMGR_UNIT_FORWARD_STRING=$(MISC)/unit.rdb \
.ELSE $(APP1TARGETN) --gtest_output="xml:$(BIN)/$(APP1TARGET)_result.xml"
setenv \
URE_BOOTSTRAP vnd.sun.star.pathname:$(MISC)/unitdata/urebootstrap.ini \ .ENDIF # "$(ENABLE_UNIT_TESTS)" != "YES"
&& $(TESTSHL2) $(SHL1TARGETN) -forward $(MISC)/unit.rdb
.ENDIF
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "sal/config.h" #include "sal/config.h"
#include <cstddef> #include <cstddef>
#include <cstdlib>
#include "com/sun/star/beans/NamedValue.hpp" #include "com/sun/star/beans/NamedValue.hpp"
#include "com/sun/star/beans/PropertyChangeEvent.hpp" #include "com/sun/star/beans/PropertyChangeEvent.hpp"
...@@ -47,6 +48,7 @@ ...@@ -47,6 +48,7 @@
#include "cppuhelper/implbase1.hxx" #include "cppuhelper/implbase1.hxx"
#include "cppuhelper/servicefactory.hxx" #include "cppuhelper/servicefactory.hxx"
#include "osl/conditn.hxx" #include "osl/conditn.hxx"
#include "osl/process.h"
#include "osl/thread.h" #include "osl/thread.h"
#include "osl/thread.hxx" #include "osl/thread.hxx"
#include "osl/time.h" #include "osl/time.h"
...@@ -57,7 +59,7 @@ ...@@ -57,7 +59,7 @@
#include "rtl/ustring.h" #include "rtl/ustring.h"
#include "rtl/ustring.hxx" #include "rtl/ustring.hxx"
#include "sal/types.h" #include "sal/types.h"
#include "testshl/simpleheader.hxx" #include "gtest/gtest.h"
namespace { namespace {
...@@ -80,27 +82,11 @@ void normalize( ...@@ -80,27 +82,11 @@ void normalize(
} }
} }
class Test: public CppUnit::TestFixture { class Test: public ::testing::Test {
public: public:
virtual void setUp(); virtual void SetUp();
virtual void tearDown(); virtual void TearDown();
void testKeyFetch();
void testKeySet();
void testKeyReset();
void testSetSetMemberName();
void testReadCommands();
void testThreads();
void testRecursive();
void testCrossThreads();
css::uno::Any getKey( css::uno::Any getKey(
rtl::OUString const & path, rtl::OUString const & relative) const; rtl::OUString const & path, rtl::OUString const & relative) const;
...@@ -117,17 +103,6 @@ public: ...@@ -117,17 +103,6 @@ public:
css::uno::Reference< css::uno::XInterface > createUpdateAccess( css::uno::Reference< css::uno::XInterface > createUpdateAccess(
rtl::OUString const & path) const; rtl::OUString const & path) const;
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(testKeyFetch);
CPPUNIT_TEST(testKeySet);
CPPUNIT_TEST(testKeyReset);
CPPUNIT_TEST(testSetSetMemberName);
CPPUNIT_TEST(testReadCommands);
CPPUNIT_TEST(testThreads);
CPPUNIT_TEST(testRecursive);
CPPUNIT_TEST(testCrossThreads);
CPPUNIT_TEST_SUITE_END();
private: private:
css::uno::Reference< css::uno::XComponentContext > context_; css::uno::Reference< css::uno::XComponentContext > context_;
css::uno::Reference< css::lang::XMultiServiceFactory > provider_; css::uno::Reference< css::lang::XMultiServiceFactory > provider_;
...@@ -275,7 +250,7 @@ void RecursiveTest::test() { ...@@ -275,7 +250,7 @@ void RecursiveTest::test() {
properties_->addPropertyChangeListener( properties_->addPropertyChangeListener(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label")), this); rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label")), this);
step(); step();
CPPUNIT_ASSERT(count_ == 0); ASSERT_TRUE(count_ == 0);
css::uno::Reference< css::lang::XComponent >( css::uno::Reference< css::lang::XComponent >(
properties_, css::uno::UNO_QUERY_THROW)->dispose(); properties_, css::uno::UNO_QUERY_THROW)->dispose();
} }
...@@ -287,14 +262,14 @@ RecursiveTest::~RecursiveTest() { ...@@ -287,14 +262,14 @@ RecursiveTest::~RecursiveTest() {
void RecursiveTest::disposing(css::lang::EventObject const & Source) void RecursiveTest::disposing(css::lang::EventObject const & Source)
throw (css::uno::RuntimeException) throw (css::uno::RuntimeException)
{ {
CPPUNIT_ASSERT(properties_.is() && Source.Source == properties_); ASSERT_TRUE(properties_.is() && Source.Source == properties_);
properties_.clear(); properties_.clear();
} }
void RecursiveTest::propertyChange(css::beans::PropertyChangeEvent const & evt) void RecursiveTest::propertyChange(css::beans::PropertyChangeEvent const & evt)
throw (css::uno::RuntimeException) throw (css::uno::RuntimeException)
{ {
CPPUNIT_ASSERT( ASSERT_TRUE(
evt.Source == properties_ && evt.Source == properties_ &&
evt.PropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Label"))); evt.PropertyName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Label")));
if (count_ > 0) { if (count_ > 0) {
...@@ -357,10 +332,10 @@ void CrossThreadTest::step() const { ...@@ -357,10 +332,10 @@ void CrossThreadTest::step() const {
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))); rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label")));
} }
void Test::setUp() { void Test::SetUp() {
char const * forward = getForwardString(); char const * forward = getenv("CONFIGMGR_UNIT_FORWARD_STRING");
rtl_uString * registry = 0; rtl_uString * registry = 0;
CPPUNIT_ASSERT( ASSERT_TRUE(
rtl_convertStringToUString( rtl_convertStringToUString(
&registry, forward, rtl_str_getLength(forward), &registry, forward, rtl_str_getLength(forward),
osl_getThreadTextEncoding(), osl_getThreadTextEncoding(),
...@@ -374,7 +349,7 @@ void Test::setUp() { ...@@ -374,7 +349,7 @@ void Test::setUp() {
css::uno::UNO_QUERY_THROW)->getPropertyValue( css::uno::UNO_QUERY_THROW)->getPropertyValue(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext"))), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext"))),
css::uno::UNO_QUERY_THROW); css::uno::UNO_QUERY_THROW);
CPPUNIT_ASSERT( ASSERT_TRUE(
context_->getValueByName( context_->getValueByName(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM( RTL_CONSTASCII_USTRINGPARAM(
...@@ -383,61 +358,61 @@ void Test::setUp() { ...@@ -383,61 +358,61 @@ void Test::setUp() {
provider_); provider_);
} }
void Test::tearDown() { void Test::TearDown() {
css::uno::Reference< css::lang::XComponent >( css::uno::Reference< css::lang::XComponent >(
context_, css::uno::UNO_QUERY_THROW)->dispose(); context_, css::uno::UNO_QUERY_THROW)->dispose();
} }
void Test::testKeyFetch() { TEST_F(Test, testKeyFetch) {
rtl::OUString s; rtl::OUString s;
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("L10N/ooLocale"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("L10N/ooLocale"))) >>=
s); s);
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Test/AString"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Test/AString"))) >>=
s); s);
} }
void Test::testKeySet() { TEST_F(Test, testKeySet) {
setKey( setKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")), RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString")), rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString")),
css::uno::makeAny(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("baa")))); css::uno::makeAny(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("baa"))));
rtl::OUString s; rtl::OUString s;
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")), RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString"))) >>=
s); s);
CPPUNIT_ASSERT(s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("baa"))); ASSERT_TRUE(s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("baa")));
} }
void Test::testKeyReset() { TEST_F(Test, testKeyReset) {
if (resetKey( if (resetKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")), RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString")))) rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString"))))
{ {
rtl::OUString s; rtl::OUString s;
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")), RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup/Test")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AString"))) >>=
s); s);
CPPUNIT_ASSERT(s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Foo"))); ASSERT_TRUE(s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Foo")));
} }
} }
void Test::testSetSetMemberName() { TEST_F(Test, testSetSetMemberName) {
rtl::OUString s; rtl::OUString s;
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM( RTL_CONSTASCII_USTRINGPARAM(
...@@ -445,7 +420,7 @@ void Test::testSetSetMemberName() { ...@@ -445,7 +420,7 @@ void Test::testSetSetMemberName() {
".uno:FontworkShapeType")), ".uno:FontworkShapeType")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))) >>=
s); s);
CPPUNIT_ASSERT( ASSERT_TRUE(
s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Fontwork Shape"))); s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Fontwork Shape")));
css::uno::Reference< css::container::XNameAccess > access( css::uno::Reference< css::container::XNameAccess > access(
...@@ -460,7 +435,7 @@ void Test::testSetSetMemberName() { ...@@ -460,7 +435,7 @@ void Test::testSetSetMemberName() {
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(".uno:FontworkGalleryFloater"))) >>= RTL_CONSTASCII_USTRINGPARAM(".uno:FontworkGalleryFloater"))) >>=
member; member;
CPPUNIT_ASSERT(member.is()); ASSERT_TRUE(member.is());
member->setName( member->setName(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(".uno:FontworkShapeType"))); RTL_CONSTASCII_USTRINGPARAM(".uno:FontworkShapeType")));
...@@ -469,7 +444,7 @@ void Test::testSetSetMemberName() { ...@@ -469,7 +444,7 @@ void Test::testSetSetMemberName() {
css::uno::Reference< css::lang::XComponent >( css::uno::Reference< css::lang::XComponent >(
access, css::uno::UNO_QUERY_THROW)->dispose(); access, css::uno::UNO_QUERY_THROW)->dispose();
CPPUNIT_ASSERT( ASSERT_TRUE(
getKey( getKey(
rtl::OUString( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM( RTL_CONSTASCII_USTRINGPARAM(
...@@ -477,11 +452,11 @@ void Test::testSetSetMemberName() { ...@@ -477,11 +452,11 @@ void Test::testSetSetMemberName() {
".uno:FontworkShapeType")), ".uno:FontworkShapeType")),
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))) >>= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))) >>=
s); s);
CPPUNIT_ASSERT( ASSERT_TRUE(
s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Fontwork Gallery"))); s.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("Fontwork Gallery")));
} }
void Test::testReadCommands() { TEST_F(Test, testReadCommands) {
css::uno::Reference< css::container::XNameAccess > access( css::uno::Reference< css::container::XNameAccess > access(
createViewAccess( createViewAccess(
rtl::OUString( rtl::OUString(
...@@ -490,14 +465,14 @@ void Test::testReadCommands() { ...@@ -490,14 +465,14 @@ void Test::testReadCommands() {
"Commands"))), "Commands"))),
css::uno::UNO_QUERY_THROW); css::uno::UNO_QUERY_THROW);
css::uno::Sequence< rtl::OUString > names(access->getElementNames()); css::uno::Sequence< rtl::OUString > names(access->getElementNames());
CPPUNIT_ASSERT(names.getLength() == 695); ASSERT_TRUE(names.getLength() == 695);
// testSetSetMemberName() already removed ".uno:FontworkGalleryFloater" // testSetSetMemberName() already removed ".uno:FontworkGalleryFloater"
sal_uInt32 n = osl_getGlobalTimer(); sal_uInt32 n = osl_getGlobalTimer();
for (int i = 0; i < 8; ++i) { for (int i = 0; i < 8; ++i) {
for (sal_Int32 j = 0; j < names.getLength(); ++j) { for (sal_Int32 j = 0; j < names.getLength(); ++j) {
css::uno::Reference< css::container::XNameAccess > child; css::uno::Reference< css::container::XNameAccess > child;
if (access->getByName(names[j]) >>= child) { if (access->getByName(names[j]) >>= child) {
CPPUNIT_ASSERT(child.is()); ASSERT_TRUE(child.is());
child->getByName( child->getByName(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label"))); rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Label")));
child->getByName( child->getByName(
...@@ -508,12 +483,12 @@ void Test::testReadCommands() { ...@@ -508,12 +483,12 @@ void Test::testReadCommands() {
} }
} }
n = osl_getGlobalTimer() - n; n = osl_getGlobalTimer() - n;
t_print("Reading elements took %" SAL_PRIuUINT32 " ms\n", n); printf("Reading elements took %" SAL_PRIuUINT32 " ms\n", n);
css::uno::Reference< css::lang::XComponent >( css::uno::Reference< css::lang::XComponent >(
access, css::uno::UNO_QUERY_THROW)->dispose(); access, css::uno::UNO_QUERY_THROW)->dispose();
} }
void Test::testThreads() { TEST_F(Test, testThreads) {
struct Entry { rtl::OUString path; rtl::OUString relative; }; struct Entry { rtl::OUString path; rtl::OUString relative; };
Entry list[] = { Entry list[] = {
{ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")), { rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Setup")),
...@@ -549,7 +524,7 @@ void Test::testThreads() { ...@@ -549,7 +524,7 @@ void Test::testThreads() {
WriterThread * writers[numWriters]; WriterThread * writers[numWriters];
osl::Condition stop; osl::Condition stop;
for (std::size_t i = 0; i < numReaders; ++i) { for (std::size_t i = 0; i < numReaders; ++i) {
CPPUNIT_ASSERT(getKey(list[i].path, list[i].relative).hasValue()); ASSERT_TRUE(getKey(list[i].path, list[i].relative).hasValue());
readers[i] = new ReaderThread( readers[i] = new ReaderThread(
stop, *this, list[i].path, list[i].relative); stop, *this, list[i].path, list[i].relative);
} }
...@@ -578,21 +553,21 @@ void Test::testThreads() { ...@@ -578,21 +553,21 @@ void Test::testThreads() {
success = success && writers[i]->getSuccess(); success = success && writers[i]->getSuccess();
delete writers[i]; delete writers[i];
} }
CPPUNIT_ASSERT(success); ASSERT_TRUE(success);
} }
void Test::testRecursive() { TEST_F(Test, testRecursive) {
bool destroyed = false; bool destroyed = false;
rtl::Reference< RecursiveTest >( rtl::Reference< RecursiveTest >(
new SimpleRecursiveTest(*this, 100, &destroyed))->test(); new SimpleRecursiveTest(*this, 100, &destroyed))->test();
CPPUNIT_ASSERT(destroyed); ASSERT_TRUE(destroyed);
} }
void Test::testCrossThreads() { TEST_F(Test, testCrossThreads) {
bool destroyed = false; bool destroyed = false;
rtl::Reference< RecursiveTest >( rtl::Reference< RecursiveTest >(
new SimpleRecursiveTest(*this, 10, &destroyed))->test(); new SimpleRecursiveTest(*this, 10, &destroyed))->test();
CPPUNIT_ASSERT(destroyed); ASSERT_TRUE(destroyed);
} }
css::uno::Any Test::getKey( css::uno::Any Test::getKey(
...@@ -667,8 +642,12 @@ css::uno::Reference< css::uno::XInterface > Test::createUpdateAccess( ...@@ -667,8 +642,12 @@ css::uno::Reference< css::uno::XInterface > Test::createUpdateAccess(
css::uno::Sequence< css::uno::Any >(&arg, 1)); css::uno::Sequence< css::uno::Any >(&arg, 1));
} }
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltest");
} }
NOADDITIONAL; int main(int argc, char **argv)
{
osl_setCommandArgs(argc, argv);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment