summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2020-11-12 21:46:06 +0200
committerCaolán McNamara <caolanm@redhat.com>2020-11-24 10:11:24 +0100
commit499236daa90837b54a6a017f153f4e706f1c9409 (patch)
tree23b5eef8a9bb85792d0e3aa654d240ce48a7bc41
parent6b3f94245a49945626c4546a213c8ce52db7f790 (diff)
Make bridgetest exercise parameter passing in the C++/UNO bridge harder
The C++/UNO bridge for macOS on arm64 currently uses the Linux code. Apple's ABI uses slightly different parameter passing on the stack, though. See https://developer.apple.com/documentation/xcode/writing_arm64_code_for_apple_platforms?language=objc That has not been taken into account yet in the bridge code. The bridgetest, when run on macOS on arm64, didn't notice, sadly, but succeeded. With this change it crashes, as one would expect it to do. Add one more byte and short parameter to the setValues(), setValues2() and getValues() calls in the XBridgeTestBase interface. The stack allocation for those [in] parameters to setValues() differ between the Linux and Apple ABIs. Add corresponding attributes to the interface, and members to the SimpleTest struct. The changes to the source files in the cli subdirectory (C++/CLI, VB.NET, and C#) are done blindly as they aren't compiled even on Windows currently. Most likely the changes to them are incomplete and erroneous. Change-Id: I6f689a130d89b23cad9918829107d7da49a79c55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105770 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105888 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106470 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--testtools/com/sun/star/comp/bridge/TestComponent.java32
-rw-r--r--testtools/source/bridgetest/bridgetest.cxx31
-rw-r--r--testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx34
-rw-r--r--testtools/source/bridgetest/cppobj.cxx32
-rw-r--r--testtools/source/bridgetest/idl/bridgetest.idl10
5 files changed, 126 insertions, 13 deletions
diff --git a/testtools/com/sun/star/comp/bridge/TestComponent.java b/testtools/com/sun/star/comp/bridge/TestComponent.java
index f8b50f23e222..7d59de570591 100644
--- a/testtools/com/sun/star/comp/bridge/TestComponent.java
+++ b/testtools/com/sun/star/comp/bridge/TestComponent.java
@@ -304,6 +304,8 @@ public class TestComponent {
private float _float;
private double _double;
private String _string;
+ private byte _byte2;
+ private short _short2;
private Object _xInterface;
private Object _any;
private TestEnum _testEnum = TestEnum.TEST;
@@ -353,6 +355,8 @@ public class TestComponent {
double fDouble,
TestEnum testEnum,
String string,
+ byte nByte2,
+ short nShort2,
Object xInterface,
Object any,
TestElement testElements[],
@@ -373,6 +377,8 @@ public class TestComponent {
_double = fDouble;
_testEnum = testEnum;
_string = string;
+ _byte2 = nByte2;
+ _short2 = nShort2;
_xInterface = xInterface;
_any = any;
_testElements = testElements;
@@ -394,6 +400,8 @@ public class TestComponent {
/*INOUT*/double[] io_double,
/*INOUT*/TestEnum[] io_testEnum,
/*INOUT*/String[] io_string,
+ /*INOUT*/byte[] io_byte2,
+ /*INOUT*/short[] io_short2,
/*INOUT*/Object[] io_xInterface,
/*INOUT*/Object[] io_any,
/*INOUT*/TestElement[][] io_testElements,
@@ -414,6 +422,8 @@ public class TestComponent {
_double = io_double[0];
_testEnum = io_testEnum[0];
_string = io_string[0];
+ _byte2 = io_byte2[0];
+ _short2 = io_short2[0];
_xInterface = io_xInterface[0];
_any = io_any[0];
_testElements = io_testElements[0];
@@ -438,6 +448,8 @@ public class TestComponent {
/*OUT*/double[] o_double,
/*OUT*/TestEnum[] o_testEnum,
/*OUT*/String[] o_string,
+ /*OUT*/byte[] o_byte2,
+ /*OUT*/short[] o_short2,
/*OUT*/Object[] o_xInterface,
/*OUT*/Object[] o_any,
/*OUT*/TestElement[][] o_testElements,
@@ -458,7 +470,9 @@ public class TestComponent {
o_double[0] = _double;
o_testEnum[0] = _testEnum;
o_string[0] = _string;
- o_xInterface[0] = _xInterface;
+ o_byte2[0] = _byte2;
+ o_short2[0] = _short2;
+ o_xInterface[0] = _xInterface;
o_any[0] = _any;
o_testElements[0] = _testElements;
o_testDataElements[0] = _testDataElements;
@@ -611,6 +625,22 @@ public class TestComponent {
_string = string;
}
+ public byte getByte2() throws com.sun.star.uno.RuntimeException {
+ return _byte2;
+ }
+
+ public void setByte2(byte zbyte) throws com.sun.star.uno.RuntimeException {
+ _byte2 = zbyte;
+ }
+
+ public short getShort2() throws com.sun.star.uno.RuntimeException {
+ return _short2;
+ }
+
+ public void setShort2(short zshort) throws com.sun.star.uno.RuntimeException {
+ _short2 = zshort;
+ }
+
public Object getInterface() throws com.sun.star.uno.RuntimeException {
return _xInterface;
}
diff --git a/testtools/source/bridgetest/bridgetest.cxx b/testtools/source/bridgetest/bridgetest.cxx
index 08d896566d90..160c95998bfd 100644
--- a/testtools/source/bridgetest/bridgetest.cxx
+++ b/testtools/source/bridgetest/bridgetest.cxx
@@ -135,6 +135,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
check( rData1.Double == rData2.Double, "### double does not match!" );
check( rData1.Enum == rData2.Enum, "### enum does not match!" );
check( rData1.String == rData2.String, "### string does not match!" );
+ check( rData1.Byte2 == rData2.Byte2, "### byte2 does not match!" );
+ check( rData1.Short2 == rData2.Short2, "### short2 does not match!" );
check( rData1.Interface == rData2.Interface, "### interface does not match!" );
check( rData1.Any == rData2.Any, "### any does not match!" );
@@ -151,6 +153,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
rData1.Double == rData2.Double &&
rData1.Enum == rData2.Enum &&
rData1.String == rData2.String &&
+ rData1.Byte2 == rData2.Byte2 &&
+ rData1.Short2 == rData2.Short2 &&
rData1.Interface == rData2.Interface &&
rData1.Any == rData2.Any);
}
@@ -189,6 +193,7 @@ static void assign( TestElement & rData,
sal_Int64 nHyper, sal_uInt64 nUHyper,
float fFloat, double fDouble,
TestEnum eEnum, const OUString& rStr,
+ sal_Int8 nByte2, sal_Int16 nShort2,
const css::uno::Reference< css::uno::XInterface >& xTest,
const css::uno::Any& rAny )
{
@@ -205,6 +210,8 @@ static void assign( TestElement & rData,
rData.Double = fDouble;
rData.Enum = eEnum;
rData.String = rStr;
+ rData.Byte2 = nByte2;
+ rData.Short2 = nShort2;
rData.Interface = xTest;
rData.Any = rAny;
}
@@ -261,6 +268,8 @@ static bool performAnyTest( const Reference< XBridgeTest > &xLBT, const TestData
bReturn = testAny( data.Double,xLBT ) && bReturn;
bReturn = testAny( data.Enum,xLBT ) && bReturn;
bReturn = testAny( data.String,xLBT ) && bReturn;
+ bReturn = testAny( data.Byte2 ,xLBT ) && bReturn;
+ bReturn = testAny( data.Short2,xLBT ) && bReturn;
bReturn = testAny( data.Interface,xLBT ) && bReturn;
bReturn = testAny( data, xLBT ) && bReturn;
bReturn &= testAny(
@@ -365,7 +374,7 @@ static bool performTest(
static_cast<TestElement &>(aData), true, '@', 17, 0x1234, 0xFEDC,
0x12345678, 0xFEDCBA98, SAL_CONST_INT64(0x123456789ABCDEF0),
SAL_CONST_UINT64(0xFEDCBA9876543210), 17.0815f, 3.1415926359,
- TestEnum_LOLA, STRING_TEST_CONSTANT, xI,
+ TestEnum_LOLA, STRING_TEST_CONSTANT, 18, 0x5678, xI,
Any(&xI, cppu::UnoType<XInterface>::get()));
bRet &= check(aData.Any == xI, "### unexpected any!");
bRet &= check(!(aData.Any != xI), "### unexpected any!");
@@ -378,7 +387,7 @@ static bool performTest(
static_cast<TestElement &>(aSetData), aData.Bool, aData.Char,
aData.Byte, aData.Short, aData.UShort, aData.Long, aData.ULong,
aData.Hyper, aData.UHyper, aData.Float, aData.Double, aData.Enum,
- aData.String, xI, Any(&xI, cppu::UnoType<XInterface>::get()));
+ aData.String, aData.Byte2, aData.Short2, xI, Any(&xI, cppu::UnoType<XInterface>::get()));
aSetData.Sequence.realloc(2);
aSetData.Sequence[0] = *static_cast<TestElement const *>(&aSetData);
// aSetData.Sequence[1] is empty
@@ -396,6 +405,8 @@ static bool performTest(
aSetData.Double,
aSetData.Enum,
aSetData.String,
+ aSetData.Byte2,
+ aSetData.Short2,
aSetData.Interface,
aSetData.Any,
aSetData.Sequence,
@@ -417,6 +428,8 @@ static bool performTest(
aRet.Double,
aRet.Enum,
aRet.String,
+ aRet.Byte2,
+ aRet.Short2,
aRet.Interface,
aRet.Any,
aRet.Sequence,
@@ -439,6 +452,8 @@ static bool performTest(
aRet.Double,
aRet.Enum,
aRet.String,
+ aRet.Byte2,
+ aRet.Short2,
aRet.Interface,
aRet.Any,
aRet.Sequence,
@@ -490,6 +505,8 @@ static bool performTest(
aRet.Double,
aRet.Enum,
aRet.String,
+ aRet.Byte2,
+ aRet.Short2,
aRet.Interface,
aRet.Any,
aRet.Sequence,
@@ -512,6 +529,8 @@ static bool performTest(
xLBT->setDouble(aRet.Double);
xLBT->setEnum(aRet.Enum);
xLBT->setString(aRet.String);
+ xLBT->setByte2(aRet.Byte2);
+ xLBT->setShort2(aRet.Short2);
xLBT->setInterface(aRet.Interface);
xLBT->setAny(aRet.Any);
xLBT->setSequence(aRet.Sequence);
@@ -532,6 +551,8 @@ static bool performTest(
aRet.ULong = xLBT->getULong();
aRet.Enum = xLBT->getEnum();
aRet.String = xLBT->getString();
+ aRet.Byte2 = xLBT->getByte2();
+ aRet.Short2 = xLBT->getShort2();
aRet.Interface = xLBT->getInterface();
aRet.Any = xLBT->getAny();
aRet.Sequence = xLBT->getSequence();
@@ -692,19 +713,19 @@ static bool performTest(
_arStruct[0], true, '@', 17, 0x1234, 0xFEDC, 0x12345678, 0xFEDCBA98,
SAL_CONST_INT64(0x123456789ABCDEF0),
SAL_CONST_UINT64(0xFEDCBA9876543210), 17.0815f, 3.1415926359,
- TestEnum_LOLA, STRING_TEST_CONSTANT, _arObj[0],
+ TestEnum_LOLA, STRING_TEST_CONSTANT, 18, 0x5678, _arObj[0],
Any(&_arObj[0], cppu::UnoType<XInterface>::get()));
assign(
_arStruct[1], true, 'A', 17, 0x1234, 0xFEDC, 0x12345678, 0xFEDCBA98,
SAL_CONST_INT64(0x123456789ABCDEF0),
SAL_CONST_UINT64(0xFEDCBA9876543210), 17.0815f, 3.1415926359,
- TestEnum_TWO, STRING_TEST_CONSTANT, _arObj[1],
+ TestEnum_TWO, STRING_TEST_CONSTANT, 18, 0x5678, _arObj[1],
Any(&_arObj[1], cppu::UnoType<XInterface>::get()));
assign(
_arStruct[2], true, 'B', 17, 0x1234, 0xFEDC, 0x12345678, 0xFEDCBA98,
SAL_CONST_INT64(0x123456789ABCDEF0),
SAL_CONST_UINT64(0xFEDCBA9876543210), 17.0815f, 3.1415926359,
- TestEnum_CHECK, STRING_TEST_CONSTANT, _arObj[2],
+ TestEnum_CHECK, STRING_TEST_CONSTANT, 18, 0x5678, _arObj[2],
Any(&_arObj[2], cppu::UnoType<XInterface>::get()));
{
Sequence<sal_Bool> arBool({true, false, true});
diff --git a/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx b/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
index 10db81a5027d..00ed43a0fd73 100644
--- a/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
+++ b/testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx
@@ -190,6 +190,8 @@ public __gc class BridgeTest : public WeakBase, public XMain
check( rData1->Double == rData2->Double, "### double does not match!" );
check( rData1->Enum == rData2->Enum, "### enum does not match!" );
check( rData1->String == rData2->String, "### string does not match!" );
+ check( rData1->Byte2 == rData2->Byte2, "### byte2 does not match!" );
+ check( rData1->Short2 == rData2->Short2, "### short2 does not match!" );
check( rData1->Interface == rData2->Interface, "### interface does not match!" );
check( compareData(__box(rData1->Any), __box(rData2->Any)), "### any does not match!" );
@@ -206,6 +208,8 @@ public __gc class BridgeTest : public WeakBase, public XMain
rData1->Double == rData2->Double &&
rData1->Enum == rData2->Enum &&
rData1->String == rData2->String &&
+ rData1->Byte2 == rData2->Byte2 &&
+ rData1->Short2 == rData2->Short2 &&
rData1->Interface == rData2->Interface &&
compareData(__box(rData1->Any), __box(rData2->Any)));
}
@@ -217,6 +221,7 @@ static void assign( TestElement* rData,
Int64 nHyper, UInt64 nUHyper,
float fFloat, double fDouble,
TestEnum eEnum, String* rStr,
+ Byte nByte2, Int16 nShort2,
Object* xTest,
uno::Any rAny )
{
@@ -233,6 +238,8 @@ static void assign( TestElement* rData,
rData->Double = fDouble;
rData->Enum = eEnum;
rData->String = rStr;
+ rData->Byte2 = nByte2;
+ rData->Short2 = nShort2;
rData->Interface = xTest;
rData->Any = rAny;
}
@@ -244,13 +251,14 @@ static void assign( TestDataElements* rData,
Int64 nHyper, UInt64 nUHyper,
float fFloat, double fDouble,
TestEnum eEnum, String* rStr,
+ Byte nByte2, Int16 nShort2,
Object* xTest,
Any rAny,
TestElement* rSequence[])
{
assign( static_cast<TestElement*>(rData),
bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny );
+ eEnum, rStr, nByte2, nShort2, xTest, rAny );
rData->Sequence = rSequence;
}
@@ -287,6 +295,8 @@ static bool performAnyTest(XBridgeTest* xLBT, TestDataElements* data)
bReturn = testAny( 0, __box(data->Double),xLBT ) && bReturn;
bReturn = testAny( 0, __box(data->Enum), xLBT ) && bReturn;
bReturn = testAny( 0, data->String,xLBT ) && bReturn;
+ bReturn = testAny( 0, data->Byte2,xLBT ) && bReturn;
+ bReturn = testAny( 0, data->Short2,xLBT ) && bReturn;
bReturn = testAny(__typeof(XWeak), data->Interface,xLBT ) && bReturn;
bReturn = testAny(0, data, xLBT ) && bReturn;
@@ -378,6 +388,7 @@ static bool performTest(XBridgeTest* xLBT)
aData->UShort, aData->Long, aData->ULong,
aData->Hyper, aData->UHyper, aData->Float,
aData->Double, aData->Enum, aData->String,
+ aData->Byte2, aData->Short2,
aData->Interface, aData->Any); //(TestElement) aData;
aData->Sequence[1] = new TestElement(); //is empty
@@ -395,6 +406,8 @@ static bool performTest(XBridgeTest* xLBT)
aData->Long, aData->ULong, aData->Hyper, aData->UHyper, aData->Float, aData->Double,
aData->Enum,
aData->String,
+ aData->Byte2,
+ aData->Short2,
xI,
aAnySet);
@@ -404,6 +417,7 @@ static bool performTest(XBridgeTest* xLBT)
aSetData->UShort, aSetData->Long, aSetData->ULong,
aSetData->Hyper, aSetData->UHyper, aSetData->Float,
aSetData->Double, aSetData->Enum, aSetData->String,
+ aSetData->Byte2, aSetData->Short2,
aSetData->Interface, aSetData->Any); //TestElement) aSetData;
aSetData->Sequence[1] = new TestElement(); // empty struct
@@ -421,6 +435,8 @@ static bool performTest(XBridgeTest* xLBT)
aSetData->Double,
aSetData->Enum,
aSetData->String,
+ aSetData->Byte2,
+ aSetData->Short2,
aSetData->Interface,
aSetData->Any,
aSetData->Sequence,
@@ -443,6 +459,8 @@ static bool performTest(XBridgeTest* xLBT)
& aRet->Double,
& aRet->Enum,
& aRet->String,
+ & aRet->Byte2,
+ & aRet->Short2,
& aRet->Interface,
& aRet->Any,
& aRet->Sequence,
@@ -465,6 +483,8 @@ static bool performTest(XBridgeTest* xLBT)
& aRet->Double,
& aRet->Enum,
& aRet->String,
+ & aRet->Byte2,
+ & aRet->Short2,
& aRet->Interface,
& aRet->Any,
& aRet->Sequence,
@@ -497,6 +517,8 @@ static bool performTest(XBridgeTest* xLBT)
& aRet->Double,
& aRet->Enum,
& aRet->String,
+ & aRet->Byte2,
+ & aRet->Short2,
& aRet->Interface,
& aRet->Any,
& aRet->Sequence,
@@ -518,6 +540,8 @@ static bool performTest(XBridgeTest* xLBT)
xLBT->Double = aRet->Double;
xLBT->Enum = aRet->Enum;
xLBT->String = aRet->String;
+ xLBT->Byte2 = aRet->Byte2;
+ xLBT->Short2 = aRet->Short2;
xLBT->Interface = aRet->Interface;
xLBT->Any = aRet->Any;
xLBT->Sequence = aRet->Sequence;
@@ -539,6 +563,8 @@ static bool performTest(XBridgeTest* xLBT)
aRet->ULong = xLBT->ULong;
aRet->Enum = xLBT->Enum;
aRet->String = xLBT->String;
+ aRet->Byte2 = xLBT->Byte2;
+ aRet->Short2 = xLBT->Short2;
aRet->Interface = xLBT->Interface;
aRet->Any = xLBT->Any;
aRet->Sequence = xLBT->Sequence;
@@ -625,15 +651,15 @@ static bool performSequenceTest(XBridgeTest* xBT)
arStruct[2] = new TestElement();
assign( arStruct[0], true, '@', 17, 0x1234, 0xfedc, 0x12345678, 0xfedcba98,
0x123456789abcdef0, 0xfedcba9876543210, 17.0815f, 3.1415926359,
- TestEnum::LOLA, Constants::STRING_TEST_CONSTANT, arObject[0],
+ TestEnum::LOLA, Constants::STRING_TEST_CONSTANT, 18, 0x5678, arObject[0],
Any( __typeof(Object), arObject[0]) );
assign( arStruct[1], true, 'A', 17, 0x1234, 0xfedc, 0x12345678, 0xfedcba98,
0x123456789abcdef0, 0xfedcba9876543210, 17.0815f, 3.1415926359,
- TestEnum::TWO, Constants::STRING_TEST_CONSTANT, arObject[1],
+ TestEnum::TWO, Constants::STRING_TEST_CONSTANT, 18, 0x5678, arObject[1],
Any( __typeof(Object), arObject[1]) );
assign( arStruct[2], true, 'B', 17, 0x1234, 0xfedc, 0x12345678, 0xfedcba98,
0x123456789abcdef0, 0xfedcba9876543210, 17.0815f, 3.1415926359,
- TestEnum::CHECK, Constants::STRING_TEST_CONSTANT, arObject[2],
+ TestEnum::CHECK, Constants::STRING_TEST_CONSTANT, 18, 0x5678, arObject[2],
Any( __typeof(Object), arObject[2] ) );
{
Any seqAnyRet[] = xBT2->setSequenceAny(arAny);
diff --git a/testtools/source/bridgetest/cppobj.cxx b/testtools/source/bridgetest/cppobj.cxx
index ddd213c83bd0..1456c29649cf 100644
--- a/testtools/source/bridgetest/cppobj.cxx
+++ b/testtools/source/bridgetest/cppobj.cxx
@@ -80,6 +80,7 @@ static void assign( TestElement & rData,
sal_Int64 nHyper, sal_uInt64 nUHyper,
float fFloat, double fDouble,
TestEnum eEnum, const OUString& rStr,
+ sal_Int8 nByte2, sal_Int16 nShort2,
const css::uno::Reference< css::uno::XInterface >& xTest,
const css::uno::Any& rAny )
{
@@ -96,6 +97,8 @@ static void assign( TestElement & rData,
rData.Double = fDouble;
rData.Enum = eEnum;
rData.String = rStr;
+ rData.Byte2 = nByte2;
+ rData.Short2 = nShort2;
rData.Interface = xTest;
rData.Any = rAny;
}
@@ -107,13 +110,14 @@ static void assign( TestData & rData,
sal_Int64 nHyper, sal_uInt64 nUHyper,
float fFloat, double fDouble,
TestEnum eEnum, const OUString& rStr,
+ sal_Int8 nByte2, sal_Int16 nShort2,
const css::uno::Reference< css::uno::XInterface >& xTest,
const css::uno::Any& rAny,
const css::uno::Sequence< TestElement >& rSequence )
{
assign( static_cast<TestElement &>(rData),
bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny );
+ eEnum, rStr, nByte2, nShort2, xTest, rAny );
rData.Sequence = rSequence;
}
@@ -182,6 +186,8 @@ public:
double fDouble,
TestEnum eEnum,
const OUString& rStr,
+ sal_Int8 nByte2,
+ sal_Int16 nShort2,
const css::uno::Reference< css::uno::XInterface >& xTest,
const css::uno::Any& rAny,
const css::uno::Sequence<TestElement >& rSequence,
@@ -200,6 +206,8 @@ public:
double& fDouble,
TestEnum& eEnum,
OUString& rStr,
+ sal_Int8& nByte2,
+ sal_Int16& nShort2,
css::uno::Reference< css::uno::XInterface >& xTest,
css::uno::Any& rAny,
css::uno::Sequence<TestElement >& rSequence,
@@ -218,6 +226,8 @@ public:
double& fDouble,
TestEnum& eEnum,
OUString& rStr,
+ sal_Int8& nByte2,
+ sal_Int16& nShort2,
css::uno::Reference< css::uno::XInterface >& xTest,
css::uno::Any& rAny,
css::uno::Sequence< TestElement >& rSequence,
@@ -269,6 +279,10 @@ public:
{ return _aData.Enum; }
virtual OUString SAL_CALL getString() override
{ return _aData.String; }
+ virtual sal_Int8 SAL_CALL getByte2() override
+ { return _aData.Byte2; }
+ virtual sal_Int16 SAL_CALL getShort2() override
+ { return _aData.Short2; }
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getInterface( ) override
{ return _aData.Interface; }
virtual css::uno::Any SAL_CALL getAny() override
@@ -304,6 +318,10 @@ public:
{ _aData.Enum = _enum; }
virtual void SAL_CALL setString( const OUString& _string ) override
{ _aData.String = _string; }
+ virtual void SAL_CALL setByte2( sal_Int8 _byte ) override
+ { _aData.Byte2 = _byte; }
+ virtual void SAL_CALL setShort2( sal_Int16 _short ) override
+ { _aData.Short2 = _short; }
virtual void SAL_CALL setInterface( const css::uno::Reference< css::uno::XInterface >& _interface ) override
{ _aData.Interface = _interface; }
virtual void SAL_CALL setAny( const css::uno::Any& _any ) override
@@ -570,6 +588,8 @@ void Test_Impl::setValues( sal_Bool bBool,
double fDouble,
TestEnum eEnum,
const OUString& rStr,
+ sal_Int8 nByte2,
+ sal_Int16 nShort2,
const css::uno::Reference< css::uno::XInterface >& xTest,
const css::uno::Any& rAny,
const css::uno::Sequence<TestElement >& rSequence,
@@ -577,7 +597,7 @@ void Test_Impl::setValues( sal_Bool bBool,
{
assign( _aData,
bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny, rSequence );
+ eEnum, rStr, nByte2, nShort2, xTest, rAny, rSequence );
_aStructData = rStruct;
}
@@ -594,6 +614,8 @@ void Test_Impl::setValues( sal_Bool bBool,
double& fDouble,
TestEnum& eEnum,
OUString& rStr,
+ sal_Int8& nByte2,
+ sal_Int16& nShort2,
css::uno::Reference< css::uno::XInterface >& xTest,
css::uno::Any& rAny,
css::uno::Sequence<TestElement >& rSequence,
@@ -601,7 +623,7 @@ void Test_Impl::setValues( sal_Bool bBool,
{
assign( _aData,
bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble,
- eEnum, rStr, xTest, rAny, rSequence );
+ eEnum, rStr, nByte2, nShort2, xTest, rAny, rSequence );
_aStructData = rStruct;
TestElement elem = rSequence[ 0 ];
@@ -624,6 +646,8 @@ void Test_Impl::setValues( sal_Bool bBool,
double& fDouble,
TestEnum& eEnum,
OUString& rStr,
+ sal_Int8& nByte2,
+ sal_Int16& nShort2,
css::uno::Reference< css::uno::XInterface >& xTest,
css::uno::Any& rAny,
css::uno::Sequence<TestElement >& rSequence,
@@ -642,6 +666,8 @@ void Test_Impl::setValues( sal_Bool bBool,
fDouble = _aData.Double;
eEnum = _aData.Enum;
rStr = _aData.String;
+ nByte2 = _aData.Byte2;
+ nShort2 = _aData.Short2;
xTest = _aData.Interface;
rAny = _aData.Any;
rSequence = _aData.Sequence;
diff --git a/testtools/source/bridgetest/idl/bridgetest.idl b/testtools/source/bridgetest/idl/bridgetest.idl
index 0649867ae29a..b40d46d0764f 100644
--- a/testtools/source/bridgetest/idl/bridgetest.idl
+++ b/testtools/source/bridgetest/idl/bridgetest.idl
@@ -50,7 +50,9 @@ struct TestSimple
boolean Bool;
char Char;
byte Byte;
+ byte Byte2;
short Short;
+ short Short2;
unsigned short UShort;
long Long;
unsigned long ULong;
@@ -240,6 +242,8 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface
[in] double fDouble,
[in] TestEnum eEnum,
[in] string aString,
+ [in] byte aByte2,
+ [in] short aShort2,
[in] com::sun::star::uno::XInterface xInterface,
[in] any aAny,
[in] sequence< TestElement > aSequence,
@@ -264,6 +268,8 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface
[inout] double fDouble,
[inout] TestEnum eEnum,
[inout] string aString,
+ [inout] byte aByte2,
+ [inout] short aShort2,
[inout] com::sun::star::uno::XInterface xInterface,
[inout] any aAny,
[inout] sequence< TestElement > aSequence,
@@ -285,6 +291,8 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface
[out] double fDouble,
[out] TestEnum eEnum,
[out] string aString,
+ [out] byte aByte2,
+ [out] short aShort2,
[out] com::sun::star::uno::XInterface xInterface,
[out] any aAny,
[out] sequence< TestElement > aSequence,
@@ -354,6 +362,8 @@ interface XBridgeTestBase : com::sun::star::uno::XInterface
[attribute] double Double;
[attribute] TestEnum Enum;
[attribute] string String;
+ [attribute] byte Byte2;
+ [attribute] short Short2;
[attribute] com::sun::star::uno::XInterface Interface;
[attribute] any Any;
[attribute] sequence< TestElement > Sequence;