basic: Merge macro snippet tests
Change-Id: Ia2d8944227c6be8b5ae7b42f7d566ac150d522b9
This commit is contained in:
@@ -1,64 +0,0 @@
|
|||||||
#
|
|
||||||
# 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))
|
|
@@ -1,60 +0,0 @@
|
|||||||
#
|
|
||||||
# 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))
|
|
65
basic/CppunitTest_basic_macros.mk
Normal file
65
basic/CppunitTest_basic_macros.mk
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# -*- 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_macros))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_external,basic_macros,boost_headers))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_add_exception_objects,basic_macros, \
|
||||||
|
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_libraries,basic_macros, \
|
||||||
|
comphelper \
|
||||||
|
cppu \
|
||||||
|
cppuhelper \
|
||||||
|
i18nlangtag \
|
||||||
|
sal \
|
||||||
|
salhelper \
|
||||||
|
sb \
|
||||||
|
sot \
|
||||||
|
svl \
|
||||||
|
svt \
|
||||||
|
test \
|
||||||
|
tl \
|
||||||
|
unotest \
|
||||||
|
utl \
|
||||||
|
vcl \
|
||||||
|
xmlscript \
|
||||||
|
$(gb_UWINAPI) \
|
||||||
|
))
|
||||||
|
|
||||||
|
ifeq ($(OS),WNT)
|
||||||
|
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_macros, \
|
||||||
|
oleaut32 \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_api,basic_macros,\
|
||||||
|
offapi \
|
||||||
|
udkapi \
|
||||||
|
oovbaapi \
|
||||||
|
))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_ure,basic_macros))
|
||||||
|
$(eval $(call gb_CppunitTest_use_vcl,basic_macros))
|
||||||
|
|
||||||
|
$(eval $(call gb_CppunitTest_use_components,basic_macros,\
|
||||||
|
configmgr/source/configmgr \
|
||||||
|
i18npool/util/i18npool \
|
||||||
|
$(if $(DISABLE_ATL),,$(if $(filter $(OS),WNT), \
|
||||||
|
extensions/source/ole/oleautobridge)) \
|
||||||
|
))
|
||||||
|
$(eval $(call gb_CppunitTest_use_configuration,basic_macros))
|
||||||
|
|
||||||
|
# vim: set noet sw=4 ts=4:
|
@@ -1,63 +0,0 @@
|
|||||||
# -*- 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:
|
|
@@ -1,3 +1,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))
|
|||||||
$(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,\
|
|||||||
-I$(SRCDIR)/basic/inc \
|
-I$(SRCDIR)/basic/inc \
|
||||||
$$(INCLUDE) \
|
$$(INCLUDE) \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# vim: set noet sw=4 ts=4:
|
||||||
|
@@ -1,68 +0,0 @@
|
|||||||
#
|
|
||||||
# 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_vba))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_use_external,basic_vba,boost_headers))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_add_exception_objects,basic_vba, \
|
|
||||||
basic/qa/cppunit/test_vba \
|
|
||||||
))
|
|
||||||
|
|
||||||
#$(eval $(call gb_CppunitTest_use_library_objects,basic_vba,sb))
|
|
||||||
|
|
||||||
# add a list of all needed libraries here
|
|
||||||
$(eval $(call gb_CppunitTest_use_libraries,basic_vba, \
|
|
||||||
comphelper \
|
|
||||||
cppu \
|
|
||||||
cppuhelper \
|
|
||||||
i18nlangtag \
|
|
||||||
sal \
|
|
||||||
salhelper \
|
|
||||||
sb \
|
|
||||||
sot \
|
|
||||||
svl \
|
|
||||||
svt \
|
|
||||||
test \
|
|
||||||
tl \
|
|
||||||
unotest \
|
|
||||||
utl \
|
|
||||||
vcl \
|
|
||||||
xmlscript \
|
|
||||||
$(gb_UWINAPI) \
|
|
||||||
))
|
|
||||||
|
|
||||||
ifeq ($(OS),WNT)
|
|
||||||
$(eval $(call gb_CppunitTest_use_system_win32_libs,basic_vba, \
|
|
||||||
oleaut32 \
|
|
||||||
))
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_set_include,basic_vba,\
|
|
||||||
-I$(SRCDIR)/basic/source/inc \
|
|
||||||
-I$(SRCDIR)/basic/inc \
|
|
||||||
$$(INCLUDE) \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_use_api,basic_vba,\
|
|
||||||
offapi \
|
|
||||||
udkapi \
|
|
||||||
oovbaapi \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_use_ure,basic_vba))
|
|
||||||
$(eval $(call gb_CppunitTest_use_vcl,basic_vba))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_use_components,basic_vba,\
|
|
||||||
configmgr/source/configmgr \
|
|
||||||
i18npool/util/i18npool \
|
|
||||||
$(if $(DISABLE_ATL),,$(if $(filter $(OS),WNT), \
|
|
||||||
extensions/source/ole/oleautobridge)) \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call gb_CppunitTest_use_configuration,basic_vba))
|
|
@@ -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()
|
|||||||
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: */
|
||||||
|
126
basic/qa/cppunit/basictest.cxx
Normal file
126
basic/qa/cppunit/basictest.cxx
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
/* -*- 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 @@
|
|||||||
#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()
|
|||||||
|
|
||||||
// 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()
|
|||||||
|
|
||||||
// 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 @@
|
|||||||
* 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()
|
|||||||
};
|
};
|
||||||
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()
|
|||||||
#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: */
|
||||||
|
Reference in New Issue
Block a user