Kaydet (Commit) aa20acb8 authored tarafından Matúš Kukan's avatar Matúš Kukan

basic: Merge macro snippet tests

Change-Id: Ia2d8944227c6be8b5ae7b42f7d566ac150d522b9
üst 12c59662
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CppunitTest_CppunitTest,basic_coverage))
$(eval $(call gb_CppunitTest_use_external,basic_coverage,boost_headers))
$(eval $(call gb_CppunitTest_add_exception_objects,basic_coverage, \
basic/qa/cppunit/basic_coverage \
))
#$(eval $(call gb_CppunitTest_use_library_objects,basic_coverage,sb))
# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_use_libraries,basic_coverage, \
comphelper \
cppu \
cppuhelper \
sal \
salhelper \
sb \
sot \
svl \
svt \
test \
tl \
unotest \
utl \
vcl \
xmlscript \
i18nlangtag \
$(gb_UWINAPI) \
))
ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_coverage, \
oleaut32 \
))
endif
$(eval $(call gb_CppunitTest_set_include,basic_coverage,\
-I$(SRCDIR)/basic/source/inc \
-I$(SRCDIR)/basic/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,basic_coverage,\
offapi \
udkapi \
))
$(eval $(call gb_CppunitTest_use_ure,basic_coverage))
$(eval $(call gb_CppunitTest_use_vcl,basic_coverage))
$(eval $(call gb_CppunitTest_use_components,basic_coverage,\
configmgr/source/configmgr \
i18npool/util/i18npool \
))
$(eval $(call gb_CppunitTest_use_configuration,basic_coverage))
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CppunitTest_CppunitTest,basic_enable))
$(eval $(call gb_CppunitTest_use_external,basic_enable,boost_headers))
$(eval $(call gb_CppunitTest_add_exception_objects,basic_enable, \
basic/qa/cppunit/test_append \
))
# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_use_libraries,basic_enable, \
comphelper \
cppu \
cppuhelper \
sal \
salhelper \
sb \
sot \
svl \
svt \
tl \
utl \
vcl \
xmlscript \
test \
$(gb_UWINAPI) \
))
ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_enable, \
oleaut32 \
))
endif
$(eval $(call gb_CppunitTest_set_include,basic_enable,\
-I$(SRCDIR)/basic/source/inc \
-I$(SRCDIR)/basic/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,basic_enable,\
offapi \
udkapi \
))
$(eval $(call gb_CppunitTest_use_ure,basic_enable))
$(eval $(call gb_CppunitTest_use_vcl,basic_enable))
$(eval $(call gb_CppunitTest_use_components,basic_enable,\
configmgr/source/configmgr \
i18npool/util/i18npool \
))
$(eval $(call gb_CppunitTest_use_configuration,basic_enable))
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
# #
# This file is part of the LibreOffice project. # This file is part of the LibreOffice project.
# #
...@@ -6,63 +7,59 @@ ...@@ -6,63 +7,59 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
# #
$(eval $(call gb_CppunitTest_CppunitTest,basic_vba)) $(eval $(call gb_CppunitTest_CppunitTest,basic_macros))
$(eval $(call gb_CppunitTest_use_external,basic_vba,boost_headers)) $(eval $(call gb_CppunitTest_use_external,basic_macros,boost_headers))
$(eval $(call gb_CppunitTest_add_exception_objects,basic_vba, \ $(eval $(call gb_CppunitTest_add_exception_objects,basic_macros, \
basic/qa/cppunit/test_vba \ basic/qa/cppunit/basictest \
basic/qa/cppunit/basic_coverage \
basic/qa/cppunit/test_append \
basic/qa/cppunit/test_nested_struct \
basic/qa/cppunit/test_vba \
)) ))
#$(eval $(call gb_CppunitTest_use_library_objects,basic_vba,sb)) $(eval $(call gb_CppunitTest_use_libraries,basic_macros, \
comphelper \
# add a list of all needed libraries here cppu \
$(eval $(call gb_CppunitTest_use_libraries,basic_vba, \ cppuhelper \
comphelper \ i18nlangtag \
cppu \ sal \
cppuhelper \ salhelper \
i18nlangtag \ sb \
sal \ sot \
salhelper \ svl \
sb \ svt \
sot \ test \
svl \ tl \
svt \ unotest \
test \ utl \
tl \ vcl \
unotest \ xmlscript \
utl \ $(gb_UWINAPI) \
vcl \
xmlscript \
$(gb_UWINAPI) \
)) ))
ifeq ($(OS),WNT) ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_vba, \ $(eval $(call gb_CppunitTest_use_system_win32_libs,basic_macros, \
oleaut32 \ oleaut32 \
)) ))
endif endif
$(eval $(call gb_CppunitTest_set_include,basic_vba,\ $(eval $(call gb_CppunitTest_use_api,basic_macros,\
-I$(SRCDIR)/basic/source/inc \
-I$(SRCDIR)/basic/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,basic_vba,\
offapi \ offapi \
udkapi \ udkapi \
oovbaapi \ oovbaapi \
)) ))
$(eval $(call gb_CppunitTest_use_ure,basic_vba)) $(eval $(call gb_CppunitTest_use_ure,basic_macros))
$(eval $(call gb_CppunitTest_use_vcl,basic_vba)) $(eval $(call gb_CppunitTest_use_vcl,basic_macros))
$(eval $(call gb_CppunitTest_use_components,basic_vba,\ $(eval $(call gb_CppunitTest_use_components,basic_macros,\
configmgr/source/configmgr \ configmgr/source/configmgr \
i18npool/util/i18npool \ i18npool/util/i18npool \
$(if $(DISABLE_ATL),,$(if $(filter $(OS),WNT), \ $(if $(DISABLE_ATL),,$(if $(filter $(OS),WNT), \
extensions/source/ole/oleautobridge)) \ extensions/source/ole/oleautobridge)) \
)) ))
$(eval $(call gb_CppunitTest_use_configuration,basic_macros))
$(eval $(call gb_CppunitTest_use_configuration,basic_vba)) # vim: set noet sw=4 ts=4:
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CppunitTest_CppunitTest,basic_nested_struct))
$(eval $(call gb_CppunitTest_use_external,basic_nested_struct,boost_headers))
$(eval $(call gb_CppunitTest_add_exception_objects,basic_nested_struct, \
basic/qa/cppunit/test_nested_struct \
))
# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_use_libraries,basic_nested_struct, \
comphelper \
cppu \
cppuhelper \
sal \
salhelper \
sb \
sot \
svl \
svt \
tl \
utl \
vcl \
xmlscript \
test \
$(gb_UWINAPI) \
))
ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_nested_struct, \
oleaut32 \
))
endif
$(eval $(call gb_CppunitTest_set_include,basic_nested_struct,\
-I$(SRCDIR)/basic/source/inc \
-I$(SRCDIR)/basic/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,basic_nested_struct,\
offapi \
udkapi \
))
$(eval $(call gb_CppunitTest_use_ure,basic_nested_struct))
$(eval $(call gb_CppunitTest_use_vcl,basic_nested_struct))
$(eval $(call gb_CppunitTest_use_components,basic_nested_struct,\
configmgr/source/configmgr \
i18npool/util/i18npool \
))
$(eval $(call gb_CppunitTest_use_configuration,basic_nested_struct))
# vim: set noet sw=4 ts=4:
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
# #
# This file is part of the LibreOffice project. # This file is part of the LibreOffice project.
# #
...@@ -11,12 +12,11 @@ $(eval $(call gb_CppunitTest_CppunitTest,basic_scanner)) ...@@ -11,12 +12,11 @@ $(eval $(call gb_CppunitTest_CppunitTest,basic_scanner))
$(eval $(call gb_CppunitTest_use_ure,basic_scanner)) $(eval $(call gb_CppunitTest_use_ure,basic_scanner))
$(eval $(call gb_CppunitTest_add_exception_objects,basic_scanner, \ $(eval $(call gb_CppunitTest_add_exception_objects,basic_scanner, \
basic/qa/cppunit/test_scanner \ basic/qa/cppunit/test_scanner \
)) ))
$(eval $(call gb_CppunitTest_use_library_objects,basic_scanner,sb)) $(eval $(call gb_CppunitTest_use_library_objects,basic_scanner,sb))
# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_use_libraries,basic_scanner, \ $(eval $(call gb_CppunitTest_use_libraries,basic_scanner, \
comphelper \ comphelper \
cppu \ cppu \
...@@ -45,3 +45,5 @@ $(eval $(call gb_CppunitTest_set_include,basic_scanner,\ ...@@ -45,3 +45,5 @@ $(eval $(call gb_CppunitTest_set_include,basic_scanner,\
-I$(SRCDIR)/basic/inc \ -I$(SRCDIR)/basic/inc \
$$(INCLUDE) \ $$(INCLUDE) \
)) ))
# vim: set noet sw=4 ts=4:
...@@ -16,11 +16,8 @@ $(eval $(call gb_Module_add_l10n_targets,basic,\ ...@@ -16,11 +16,8 @@ $(eval $(call gb_Module_add_l10n_targets,basic,\
)) ))
$(eval $(call gb_Module_add_check_targets,basic,\ $(eval $(call gb_Module_add_check_targets,basic,\
CppunitTest_basic_scanner \ CppunitTest_basic_scanner \
CppunitTest_basic_enable \ CppunitTest_basic_macros \
CppunitTest_basic_nested_struct \
CppunitTest_basic_coverage \
CppunitTest_basic_vba \
)) ))
endif endif
......
...@@ -166,8 +166,5 @@ void Coverage::Coverage_Iterator() ...@@ -166,8 +166,5 @@ void Coverage::Coverage_Iterator()
CPPUNIT_TEST_SUITE_REGISTRATION(Coverage); CPPUNIT_TEST_SUITE_REGISTRATION(Coverage);
} }
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "basictest.hxx"
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/plugin/TestPlugIn.h>
#include <basic/sbstar.hxx>
#include <basic/basrdll.hxx>
#include <basic/sbmod.hxx>
#include <basic/sbmeth.hxx>
#include <basic/sbuno.hxx>
#include <osl/file.hxx>
void MacroSnippet::InitSnippet()
{
CPPUNIT_ASSERT_MESSAGE( "No resource manager", maDll.GetBasResMgr() != nullptr );
mpBasic = new StarBASIC();
StarBASIC::SetGlobalErrorHdl( LINK( this, MacroSnippet, BasicErrorHdl ) );
}
void MacroSnippet::MakeModule( const OUString& sSource )
{
mpMod = mpBasic->MakeModule( "TestModule", sSource );
}
MacroSnippet::MacroSnippet( const OUString& sSource )
: mbError(false)
{
InitSnippet();
MakeModule( sSource );
}
MacroSnippet::MacroSnippet()
: mbError(false)
{
InitSnippet();
}
void MacroSnippet::LoadSourceFromFile( const OUString& sMacroFileURL )
{
OUString sSource;
fprintf(stderr,"loadSource opening macro file %s\n", OUStringToOString( sMacroFileURL, RTL_TEXTENCODING_UTF8 ).getStr() );
osl::File aFile(sMacroFileURL);
if(osl::FileBase::E_None == aFile.open(osl_File_OpenFlag_Read))
{
sal_uInt64 size;
sal_uInt64 size_read;
if(osl::FileBase::E_None == aFile.getSize(size))
{
void* buffer = calloc(1, size+1);
CPPUNIT_ASSERT(buffer);
if(osl::FileBase::E_None == aFile.read( buffer, size, size_read))
{
if(size == size_read)
{
OUString sCode(static_cast<sal_Char*>(buffer), size, RTL_TEXTENCODING_UTF8);
sSource = sCode;
}
}
free(buffer);
}
}
CPPUNIT_ASSERT_MESSAGE( "Source is empty", ( sSource.getLength() > 0 ) );
MakeModule( sSource );
}
SbxVariableRef MacroSnippet::Run( const css::uno::Sequence< css::uno::Any >& rArgs )
{
SbxVariableRef pReturn = nullptr;
if ( !Compile() )
return pReturn;
SbMethod* pMeth = mpMod ? static_cast<SbMethod*>(mpMod->Find( "doUnitTest", SbxCLASS_METHOD )) : nullptr;
if ( pMeth )
{
if ( rArgs.getLength() )
{
SbxArrayRef aArgs = new SbxArray;
for ( int i=0; i < rArgs.getLength(); ++i )
{
SbxVariable* pVar = new SbxVariable();
unoToSbxValue( pVar, rArgs[ i ] );
aArgs->Put( pVar, i + 1 );
}
pMeth->SetParameters( aArgs );
}
pReturn = new SbxMethod( *static_cast<SbxMethod*>(pMeth));
}
return pReturn;
}
SbxVariableRef MacroSnippet::Run()
{
css::uno::Sequence< css::uno::Any > aArgs;
return Run( aArgs );
}
bool MacroSnippet::Compile()
{
CPPUNIT_ASSERT_MESSAGE("module is NULL", mpMod != nullptr );
mpMod->Compile();
return !mbError;
}
bool MacroSnippet::HasError() { return mbError; }
IMPL_LINK_TYPED( MacroSnippet, BasicErrorHdl, StarBASIC *, /*pBasic*/, bool)
{
fprintf(stderr,"(%d:%d)\n",
StarBASIC::GetLine(), StarBASIC::GetCol1());
fprintf(stderr,"Basic error: %s\n", OUStringToOString( StarBASIC::GetErrorText(), RTL_TEXTENCODING_UTF8 ).getStr() );
mbError = true;
return false;
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -19,119 +19,35 @@ ...@@ -19,119 +19,35 @@
#include <basic/sbmod.hxx> #include <basic/sbmod.hxx>
#include <basic/sbmeth.hxx> #include <basic/sbmeth.hxx>
#include <basic/sbuno.hxx> #include <basic/sbuno.hxx>
#include <osl/file.hxx>
class MacroSnippet class MacroSnippet
{ {
private: private:
bool mbError; bool mbError;
BasicDLL maDll; // we need a dll instance for resource manager etc. BasicDLL maDll; // we need a dll instance for resource manager etc.
SbModuleRef mpMod; SbModuleRef mpMod;
StarBASICRef mpBasic; StarBASICRef mpBasic;
void InitSnippet() void InitSnippet();
{ void MakeModule( const OUString& sSource );
CPPUNIT_ASSERT_MESSAGE( "No resource manager", maDll.GetBasResMgr() != nullptr );
mpBasic = new StarBASIC();
StarBASIC::SetGlobalErrorHdl( LINK( this, MacroSnippet, BasicErrorHdl ) );
}
void MakeModule( const OUString& sSource )
{
mpMod = mpBasic->MakeModule( "TestModule", sSource );
}
public:
explicit MacroSnippet(const OUString& sSource) public:
: mbError(false) explicit MacroSnippet( const OUString& sSource );
{ MacroSnippet();
InitSnippet();
MakeModule( sSource );
}
MacroSnippet() : mbError(false)
{
InitSnippet();
}
void LoadSourceFromFile( const OUString& sMacroFileURL )
{
OUString sSource;
fprintf(stderr,"loadSource opening macro file %s\n", OUStringToOString( sMacroFileURL, RTL_TEXTENCODING_UTF8 ).getStr() );
osl::File aFile(sMacroFileURL); void LoadSourceFromFile( const OUString& sMacroFileURL );
if(osl::FileBase::E_None == aFile.open(osl_File_OpenFlag_Read))
{
sal_uInt64 size;
sal_uInt64 size_read;
if(osl::FileBase::E_None == aFile.getSize(size))
{
void* buffer = calloc(1, size+1);
CPPUNIT_ASSERT(buffer);
if(osl::FileBase::E_None == aFile.read( buffer, size, size_read))
{
if(size == size_read)
{
OUString sCode(static_cast<sal_Char*>(buffer), size, RTL_TEXTENCODING_UTF8);
sSource = sCode;
}
}
free(buffer); SbxVariableRef Run( const css::uno::Sequence< css::uno::Any >& rArgs );
}
}
CPPUNIT_ASSERT_MESSAGE( "Source is empty", ( sSource.getLength() > 0 ) );
MakeModule( sSource );
}
SbxVariableRef Run( const css::uno::Sequence< css::uno::Any >& rArgs ) SbxVariableRef Run();
{
SbxVariableRef pReturn = nullptr;
if ( !Compile() )
return pReturn;
SbMethod* pMeth = mpMod ? static_cast<SbMethod*>(mpMod->Find( "doUnitTest", SbxCLASS_METHOD )) : nullptr;
if ( pMeth )
{
if ( rArgs.getLength() )
{
SbxArrayRef aArgs = new SbxArray;
for ( int i=0; i < rArgs.getLength(); ++i )
{
SbxVariable* pVar = new SbxVariable();
unoToSbxValue( pVar, rArgs[ i ] );
aArgs->Put( pVar, i + 1 );
}
pMeth->SetParameters( aArgs );
}
pReturn = new SbxMethod( *static_cast<SbxMethod*>(pMeth));
}
return pReturn;
}
SbxVariableRef Run() bool Compile();
{
css::uno::Sequence< css::uno::Any > aArgs;
return Run( aArgs );
}
bool Compile()
{
CPPUNIT_ASSERT_MESSAGE("module is NULL", mpMod != nullptr );
mpMod->Compile();
return !mbError;
}
DECL_LINK_TYPED( BasicErrorHdl, StarBASIC *, bool ); DECL_LINK_TYPED( BasicErrorHdl, StarBASIC *, bool );
bool HasError() { return mbError; } bool HasError();
}; };
IMPL_LINK_TYPED( MacroSnippet, BasicErrorHdl, StarBASIC *, /*pBasic*/, bool)
{
fprintf(stderr,"(%d:%d)\n",
StarBASIC::GetLine(), StarBASIC::GetCol1());
fprintf(stderr,"Basic error: %s\n", OUStringToOString( StarBASIC::GetErrorText(), RTL_TEXTENCODING_UTF8 ).getStr() );
mbError = true;
return false;
}
#endif #endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -65,7 +65,6 @@ void EnableTest::testDimEnable() ...@@ -65,7 +65,6 @@ void EnableTest::testDimEnable()
// Put the test suite in the registry // Put the test suite in the registry
CPPUNIT_TEST_SUITE_REGISTRATION(EnableTest); CPPUNIT_TEST_SUITE_REGISTRATION(EnableTest);
} // namespace }
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -302,7 +302,6 @@ void Nested_Struct::testUnoAccess() ...@@ -302,7 +302,6 @@ void Nested_Struct::testUnoAccess()
// Put the test suite in the registry // Put the test suite in the registry
CPPUNIT_TEST_SUITE_REGISTRATION(Nested_Struct); CPPUNIT_TEST_SUITE_REGISTRATION(Nested_Struct);
} // namespace }
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -7,15 +7,13 @@ ...@@ -7,15 +7,13 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#include "basictest.hxx" #include "basictest.hxx"
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <comphelper/processfactory.hxx> #include <comphelper/processfactory.hxx>
#include <unotools/syslocaleoptions.hxx>
using namespace ::com::sun::star; using namespace ::com::sun::star;
namespace namespace
{ {
class VBATest : public test::BootstrapFixture class VBATest : public test::BootstrapFixture
{ {
public: public:
...@@ -58,9 +56,10 @@ void VBATest::testMiscVBAFunctions() ...@@ -58,9 +56,10 @@ void VBATest::testMiscVBAFunctions()
}; };
OUString sMacroPathURL = getURLFromSrc("/basic/qa/vba_tests/"); OUString sMacroPathURL = getURLFromSrc("/basic/qa/vba_tests/");
// Some test data expects the uk locale // Some test data expects the uk locale
AllSettings aSettings = Application::GetSettings(); LanguageTag aLocale(LANGUAGE_ENGLISH_UK);
aSettings.SetLanguageTag( LanguageTag( LANGUAGE_ENGLISH_UK ) ); SvtSysLocaleOptions aLocalOptions;
Application::SetSettings( aSettings ); aLocalOptions.SetLocaleConfigString( aLocale.getBcp47() );
for ( sal_uInt32 i=0; i<SAL_N_ELEMENTS( macroSource ); ++i ) for ( sal_uInt32 i=0; i<SAL_N_ELEMENTS( macroSource ); ++i )
{ {
OUString sMacroURL( sMacroPathURL ); OUString sMacroURL( sMacroPathURL );
...@@ -141,11 +140,8 @@ void VBATest::testMiscOLEStuff() ...@@ -141,11 +140,8 @@ void VBATest::testMiscOLEStuff()
#endif #endif
} }
// Put the test suite in the registry
// Put the test suite in the registry // Put the test suite in the registry
CPPUNIT_TEST_SUITE_REGISTRATION(VBATest); CPPUNIT_TEST_SUITE_REGISTRATION(VBATest);
} // namespace }
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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