Change-Id: I4f53f7ee2d7f5147d09e0ff3bbde9f48f10ff85a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203324 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
455 lines
23 KiB
Plaintext
455 lines
23 KiB
Plaintext
module test
|
|
{
|
|
module codemaker
|
|
{
|
|
module codemakertests
|
|
{
|
|
// --- ENUMS ---
|
|
// Simple enum with negative and positive values
|
|
published enum Enum1 { VALUE_NEG = -1, VALUE_ZERO = 0, VALUE_POS = 1 };
|
|
// Bit-flag enum for testing combined values
|
|
published enum Enum2 {
|
|
FLAG_NONE = 0,
|
|
FLAG_READ = 1,
|
|
FLAG_WRITE = 2,
|
|
FLAG_EXEC = 4,
|
|
FLAG_ALL = FLAG_READ | FLAG_WRITE | FLAG_EXEC
|
|
};
|
|
// Enum with explicit large values and gaps
|
|
published enum Enum3 { FIRST = 10, SECOND = 20, THIRD = 100, FOURTH = 0xFF };
|
|
// Enum without explicit values (auto-increment)
|
|
published enum Enum4 { AUTO_A, AUTO_B, AUTO_C };
|
|
// --- CONSTANT GROUPS ---
|
|
/** Constants covering all scalar base types */
|
|
published constants TestConstantsBasic
|
|
{
|
|
// Signed 16-bit
|
|
const short SHORT_MIN = -32768;
|
|
const short SHORT_MAX = 32767;
|
|
// Unsigned 16-bit
|
|
const unsigned short USHORT_MAX = 65535;
|
|
// Signed 32-bit
|
|
const long LONG_MIN = -2147483648;
|
|
const long LONG_MAX = 2147483647;
|
|
// Hex literal with L suffix
|
|
const long LONG_HEX = 0x7FFFFFFFL;
|
|
// Unsigned 32-bit
|
|
const unsigned long ULONG_MAX = 4294967295L;
|
|
// Signed 64-bit
|
|
const hyper HYPER_MIN = -9223372036854775808;
|
|
const hyper HYPER_MAX = 9223372036854775807;
|
|
// Boolean constants
|
|
const boolean BOOL_TRUE = TRUE;
|
|
const boolean BOOL_FALSE = FALSE;
|
|
};
|
|
// Simple Struct which will be used as a typedef type
|
|
struct Struct1
|
|
{
|
|
long member1;
|
|
};
|
|
// PolyStruct with if and else which are keywords in most languages
|
|
// It is here to check now the maker tools handles the keywords as variables
|
|
struct PolyStruct<if, else>
|
|
{
|
|
if
|
|
member1;
|
|
long member2;
|
|
};
|
|
// --- TYPEDEF GROUPS ---
|
|
/**Comprehensive set of typedef declarations covering:
|
|
- Primitive UNO data types along with their corresponding sequence (array) types
|
|
- Type aliases for interfaces and structures
|
|
- Inheritance scenarios demonstrating type references from both the current and external modules
|
|
*/
|
|
typedef boolean Boolean;
|
|
typedef byte Byte;
|
|
typedef short Short;
|
|
typedef unsigned short UnsignedShort;
|
|
typedef long Long;
|
|
typedef unsigned long UnsignedLong;
|
|
typedef hyper Hyper;
|
|
typedef unsigned hyper UnsignedHyper;
|
|
typedef float Float;
|
|
typedef double Double;
|
|
typedef char Char;
|
|
typedef string String;
|
|
typedef type Type;
|
|
typedef any Any;
|
|
typedef Enum2 Enum;
|
|
typedef Struct1 Struct;
|
|
typedef com::sun::star::uno::XInterface XInterface;
|
|
typedef com::sun::star::uno::XNamingService XNamingService;
|
|
typedef sequence<Boolean> SequenceBoolean;
|
|
typedef sequence<Byte> SequenceByte;
|
|
typedef sequence<Short> SequenceShort;
|
|
typedef sequence<UnsignedShort> SequenceUnsignedShort;
|
|
typedef sequence<Long> SequenceLong;
|
|
typedef sequence<UnsignedLong> SequenceUnsignedLong;
|
|
typedef sequence<Hyper> SequenceHyper;
|
|
typedef sequence<UnsignedHyper> SequenceUnsignedHyper;
|
|
typedef sequence<Float> SequenceFloat;
|
|
typedef sequence<Double> SequenceDouble;
|
|
typedef sequence<Char> SequenceChar;
|
|
typedef sequence<String> SequenceString;
|
|
typedef sequence<Type> SequenceType;
|
|
typedef sequence<Any> SequenceAny;
|
|
typedef sequence<Enum> SequenceEnum;
|
|
typedef sequence<Struct> SequenceStruct;
|
|
typedef sequence<XInterface> SequenceXInterface;
|
|
typedef sequence<XNamingService> SequenceXNamingService;
|
|
// --- STRUCT GROUPS ---
|
|
/** Struct2 is a comprehensive structure used to demonstrate the full range of supported UNO IDL data types.
|
|
It includes:
|
|
- Primitive types
|
|
- Custom typedefs
|
|
- Interface and struct references (from same and external modules)
|
|
- Single and nested sequences (1D and 2D arrays)
|
|
- Sequences of typedefs (alias-based sequences) */
|
|
struct Struct2
|
|
{
|
|
// --- Primitive Types ---
|
|
boolean p1;
|
|
byte p2;
|
|
short p3;
|
|
unsigned short p4;
|
|
long p5;
|
|
unsigned long p6;
|
|
hyper p7;
|
|
unsigned hyper p8;
|
|
float p9;
|
|
double p10;
|
|
char p11;
|
|
string p12;
|
|
type p13;
|
|
any p14;
|
|
// --- User-Defined Types (from same or external modules) ---
|
|
Enum2 p15;
|
|
Struct1 p16;
|
|
com::sun::star::uno::XInterface p17;
|
|
com::sun::star::uno::XNamingService p18;
|
|
// --- Typedef Variants of Above Types ---
|
|
Boolean t1;
|
|
Byte t2;
|
|
Short t3;
|
|
UnsignedShort t4;
|
|
Long t5;
|
|
UnsignedLong t6;
|
|
Hyper t7;
|
|
UnsignedHyper t8;
|
|
Float t9;
|
|
Double t10;
|
|
Char t11;
|
|
String t12;
|
|
Type t13;
|
|
Any t14;
|
|
Enum t15;
|
|
Struct t16;
|
|
XInterface t17;
|
|
XNamingService t18;
|
|
// --- Sequences of Primitive and Custom Types ---
|
|
sequence<boolean> a1;
|
|
sequence<byte> a2;
|
|
sequence<short> a3;
|
|
sequence<unsigned short> a4;
|
|
sequence<long> a5;
|
|
sequence<unsigned long> a6;
|
|
sequence<hyper> a7;
|
|
sequence<unsigned hyper> a8;
|
|
sequence<float> a9;
|
|
sequence<double> a10;
|
|
sequence<char> a11;
|
|
sequence<string> a12;
|
|
sequence<type> a13;
|
|
sequence<any> a14;
|
|
sequence<Enum2> a15;
|
|
sequence<Struct1> a16;
|
|
sequence<com::sun::star::uno::XInterface> a17;
|
|
sequence<com::sun::star::uno::XNamingService> a18;
|
|
// --- Nested Sequences (2D Arrays) ---
|
|
sequence< sequence< boolean > > aa1;
|
|
sequence< sequence< byte > > aa2;
|
|
sequence< sequence< short > > aa3;
|
|
sequence< sequence< unsigned short > > aa4;
|
|
sequence< sequence< long > > aa5;
|
|
sequence< sequence< unsigned long > > aa6;
|
|
sequence< sequence< hyper > > aa7;
|
|
sequence< sequence< unsigned hyper> > aa8;
|
|
sequence< sequence< float > > aa9;
|
|
sequence< sequence< double > > aa10;
|
|
sequence< sequence< char > > aa11;
|
|
sequence< sequence< string > > aa12;
|
|
sequence< sequence< type > > aa13;
|
|
sequence< sequence< any > > aa14;
|
|
sequence< sequence< Enum2 > > aa15;
|
|
sequence< sequence< Struct1 > > aa16;
|
|
sequence< sequence< com::sun::star::uno::XInterface > > aa17;
|
|
sequence< sequence< com::sun::star::uno::XNamingService > > aa18;
|
|
// --- Sequence of Typedefs ---
|
|
sequence<SequenceBoolean> at1;
|
|
sequence<SequenceByte> at2;
|
|
sequence<SequenceShort> at3;
|
|
sequence<SequenceUnsignedShort> at4;
|
|
sequence<SequenceLong> at5;
|
|
sequence<SequenceUnsignedLong> at6;
|
|
sequence<SequenceHyper> at7;
|
|
sequence<SequenceUnsignedHyper> at8;
|
|
sequence<SequenceFloat> at9;
|
|
sequence<SequenceDouble> at10;
|
|
sequence<SequenceChar> at11;
|
|
sequence<SequenceString> at12;
|
|
sequence<SequenceType> at13;
|
|
sequence<SequenceAny> at14;
|
|
sequence<SequenceEnum> at15;
|
|
sequence<SequenceStruct> at16;
|
|
sequence<SequenceXInterface> at17;
|
|
sequence<SequenceXNamingService> at18;
|
|
};
|
|
module exceptions
|
|
{
|
|
// Test case 1: An exception with custom members
|
|
exception MyBaseError : com::sun::star::uno::Exception
|
|
{
|
|
long ErrorCode;
|
|
string Details;
|
|
};
|
|
// Test case 2: An exception with no custom members
|
|
exception SimpleError : com::sun::star::uno::Exception{};
|
|
};
|
|
interface XTest
|
|
{
|
|
boolean test();
|
|
[ attribute, bound ] long A1;
|
|
[ attribute, bound, readonly ] long A2;
|
|
[attribute] long A3 {
|
|
get raises(com::sun::star::uno::Exception,
|
|
com::sun::star::lang::ClassNotFoundException);
|
|
set raises(com::sun::star::uno::RuntimeException);
|
|
};
|
|
[attribute, readonly] long A4 {
|
|
get raises(com::sun::star::uno::DeploymentException);
|
|
};
|
|
};
|
|
service S1 : test::codemaker::codemakertests::XTest
|
|
{
|
|
create1();
|
|
create2([in] any... create2) raises(com::sun::star::uno::RuntimeException,
|
|
com::sun::star::lang::ClassNotFoundException,
|
|
com::sun::star::uno::Exception,
|
|
com::sun::star::lang::IllegalAccessException,
|
|
com::sun::star::uno::DeploymentException);
|
|
create3([in] sequence<any> S1) raises(com::sun::star::uno::RuntimeException,
|
|
com::sun::star::lang::ClassNotFoundException,
|
|
com::sun::star::lang::IllegalAccessException,
|
|
com::sun::star::uno::DeploymentException);
|
|
create4([in] long javamaker, [in] long S1, [in] long create4);
|
|
create5(
|
|
[in] boolean p1, [in] byte p2, [in] short p3, [in] unsigned short p4,
|
|
[in] long p5, [in] unsigned long p6, [in] hyper p7, [in] unsigned hyper p8,
|
|
[in] float p9, [in] double p10, [in] char p11, [in] string p12, [in] type p13,
|
|
[in] any p14, [in] Enum2 p15, [in] Struct1 p16,
|
|
[in] com::sun::star::uno::XInterface p17,
|
|
[in] com::sun::star::uno::XNamingService p18, [in] Boolean t1, [in] Byte t2,
|
|
[in] Short t3, [in] UnsignedShort t4, [in] Long t5, [in] UnsignedLong t6,
|
|
[in] Hyper t7, [in] UnsignedHyper t8, [in] Float t9, [in] Double t10,
|
|
[in] Char t11, [in] String t12, [in] Type t13, [in] Any t14, [in] Enum t15,
|
|
[in] Struct t16, [in] XInterface t17, [in] XNamingService t18,
|
|
[in] sequence<boolean> a1, [in] sequence<byte> a2, [in] sequence<short> a3,
|
|
[in] sequence<unsigned short> a4, [in] sequence<long> a5,
|
|
[in] sequence<unsigned long> a6, [in] sequence<hyper> a7,
|
|
[in] sequence<unsigned hyper> a8, [in] sequence<float> a9,
|
|
[in] sequence<double> a10, [in] sequence<char> a11, [in] sequence<string> a12,
|
|
[in] sequence<type> a13, [in] sequence<any> a14, [in] sequence<Enum2> a15,
|
|
[in] sequence<Struct1> a16, [in] sequence<com::sun::star::uno::XInterface> a17,
|
|
[in] sequence<com::sun::star::uno::XNamingService> a18,
|
|
[in] sequence<sequence< boolean> > aa1, [in] sequence< sequence< byte > > aa2,
|
|
[in] sequence< sequence< short > > aa3, [in] sequence< sequence< unsigned short > > aa4,
|
|
[in] sequence< sequence< long > > aa5, [in] sequence< sequence < unsigned long> > aa6,
|
|
[in] sequence< sequence< hyper > > aa7, [in] sequence< sequence< unsigned hyper > > aa8,
|
|
[in] sequence< sequence< float > > aa9, [in] sequence< sequence< double > > aa10,
|
|
[in] sequence< sequence< char > > aa11, [in] sequence< sequence< string > > aa12,
|
|
[in] sequence< sequence < type > > aa13, [in] sequence < sequence < any > > aa14,
|
|
[in] sequence< sequence < Enum2 > > aa15, [in] sequence< sequence < Struct1 > > aa16,
|
|
[in] sequence< sequence< com::sun::star::uno::XInterface > > aa17,
|
|
[in] sequence< sequence< com::sun::star::uno::XNamingService > > aa18,
|
|
[in] sequence<SequenceBoolean> at1, [in] sequence<SequenceByte> at2,
|
|
[in] sequence<SequenceShort> at3, [in] sequence<SequenceUnsignedShort> at4,
|
|
[in] sequence<SequenceLong> at5, [in] sequence<SequenceUnsignedLong> at6,
|
|
[in] sequence<SequenceHyper> at7, [in] sequence<SequenceUnsignedHyper> at8,
|
|
[in] sequence<SequenceFloat> at9, [in] sequence<SequenceDouble> at10,
|
|
[in] sequence<SequenceChar> at11, [in] sequence<SequenceString> at12,
|
|
[in] sequence<SequenceType> at13, [in] sequence<SequenceAny> at14,
|
|
[in] sequence<SequenceEnum> at15, [in] sequence<SequenceStruct> at16,
|
|
[in] sequence<SequenceXInterface> at17,
|
|
[in] sequence<SequenceXNamingService> at18);
|
|
};
|
|
service S2 : XTest;
|
|
service S3 { interface XTest; };
|
|
service Service : com::sun::star::uno::XInterface { create([in] any... args); };
|
|
interface XIfc
|
|
{
|
|
void f1([in] PolyStruct<long, long> arg);
|
|
void f2([in] PolyStruct<any, com::sun::star::uno::XInterface> arg);
|
|
};
|
|
module services
|
|
{
|
|
service abstract : com::sun::star::uno::XInterface
|
|
{
|
|
abstract([in] long abstract);
|
|
};
|
|
service assert : com::sun::star::uno::XInterface { assert([in] long assert); };
|
|
//TODO: boolean
|
|
service break : com::sun::star::uno::XInterface { break([in] long break); };
|
|
//TODO: byte
|
|
//TODO: case
|
|
service catch : com::sun::star::uno::XInterface { catch ([in] long catch); };
|
|
//TODO: char
|
|
service class : com::sun::star::uno::XInterface
|
|
{
|
|
class([in] long class);
|
|
};
|
|
//TODO: const
|
|
service continue : com::sun::star::uno::XInterface
|
|
{
|
|
continue([in] long continue);
|
|
};
|
|
//TODO: default
|
|
service do : com::sun::star::uno::XInterface
|
|
{
|
|
do
|
|
([in] long do);
|
|
};
|
|
//TODO: double
|
|
service else : com::sun::star::uno::XInterface { else([in] long else); };
|
|
//TODO: enum
|
|
service extends : com::sun::star::uno::XInterface { extends([in] long extends); };
|
|
service final : com::sun::star::uno::XInterface { final([in] long final); };
|
|
service finally : com::sun::star::uno::XInterface { finally([in] long finally); };
|
|
//TODO: float
|
|
service for: com::sun::star::uno::XInterface
|
|
{ for([in] long for)
|
|
;
|
|
};
|
|
service goto : com::sun::star::uno::XInterface { goto([in] long goto); };
|
|
service if : com::sun::star::uno::XInterface
|
|
{
|
|
if ([in] long if)
|
|
;
|
|
};
|
|
service implements : com::sun::star::uno::XInterface
|
|
{
|
|
implements([in] long implements);
|
|
};
|
|
service import : com::sun::star::uno::XInterface { import([in] long import); };
|
|
service instanceof : com::sun::star::uno::XInterface
|
|
{
|
|
instanceof ([in] long instanceof);
|
|
};
|
|
service int : com::sun::star::uno::XInterface { int([in] long int); };
|
|
//TODO: interface
|
|
//TODO: long
|
|
service native : com::sun::star::uno::XInterface { native([in] long native); };
|
|
service new : com::sun::star::uno::XInterface { new ([in] long new); };
|
|
service package : com::sun::star::uno::XInterface { package([in] long package); };
|
|
service private : com::sun::star::uno::XInterface
|
|
{
|
|
private
|
|
([in] long private);
|
|
};
|
|
service protected : com::sun::star::uno::XInterface
|
|
{
|
|
protected
|
|
([in] long protected);
|
|
};
|
|
service public : com::sun::star::uno::XInterface
|
|
{
|
|
public
|
|
([in] long public);
|
|
};
|
|
service return : com::sun::star::uno::XInterface { return ([in] long return ); };
|
|
//TODO: short
|
|
service static : com::sun::star::uno::XInterface { static([in] long static); };
|
|
service strictfp : com::sun::star::uno::XInterface
|
|
{
|
|
strictfp([in] long strictfp);
|
|
};
|
|
service super : com::sun::star::uno::XInterface { super([in] long super); };
|
|
//TODO: switch
|
|
service synchronized : com::sun::star::uno::XInterface
|
|
{
|
|
synchronized([in] long synchronized);
|
|
};
|
|
service this : com::sun::star::uno::XInterface { this([in] long this); };
|
|
service throw : com::sun::star::uno::XInterface { throw([in] long throw); };
|
|
service throws : com::sun::star::uno::XInterface { throws([in] long throws); };
|
|
//TODO: transient
|
|
service try : com
|
|
::sun::star::uno::XInterface
|
|
{
|
|
try
|
|
([in] long try);
|
|
};
|
|
//TODO: void
|
|
service volatile : com::sun::star::uno::XInterface
|
|
{
|
|
volatile([in] long volatile);
|
|
};
|
|
service while : com::sun::star::uno::XInterface
|
|
{
|
|
while ([in] long while)
|
|
;
|
|
};
|
|
};
|
|
singleton S4 : XTest;
|
|
singleton abstract : com::sun::star::uno::XNamingService;
|
|
singleton assert : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton boolean: com::sun::star::uno::XNamingService;
|
|
singleton break : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton byte: com::sun::star::uno::XNamingService;
|
|
//TODO: singleton case: com::sun::star::uno::XNamingService;
|
|
singleton catch : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton char: com::sun::star::uno::XNamingService;
|
|
singleton class : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton const: com::sun::star::uno::XNamingService;
|
|
singleton continue : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton default: com::sun::star::uno::XNamingService;
|
|
singleton do : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton double: com::sun::star::uno::XNamingService;
|
|
singleton else : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton enum: com::sun::star::uno::XNamingService;
|
|
singleton extends : com::sun::star::uno::XNamingService;
|
|
singleton final : com::sun::star::uno::XNamingService;
|
|
singleton finally : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton float: com::sun::star::uno::XNamingService;
|
|
singleton for: com::sun::star::uno::XNamingService;
|
|
singleton goto : com::sun::star::uno::XNamingService;
|
|
singleton if : com::sun::star::uno::XNamingService;
|
|
singleton implements : com::sun::star::uno::XNamingService;
|
|
singleton import : com::sun::star::uno::XNamingService;
|
|
singleton instanceof : com::sun::star::uno::XNamingService;
|
|
singleton int : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton interface: com::sun::star::uno::XNamingService;
|
|
//TODO: singleton long: com::sun::star::uno::XNamingService;
|
|
singleton native : com::sun::star::uno::XNamingService;
|
|
singleton new : com::sun::star::uno::XNamingService;
|
|
singleton package : com::sun::star::uno::XNamingService;
|
|
singleton private : com::sun::star::uno::XNamingService;
|
|
singleton protected : com::sun::star::uno::XNamingService;
|
|
singleton public : com::sun::star::uno::XNamingService;
|
|
singleton return : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton short: com::sun::star::uno::XNamingService;
|
|
singleton static : com::sun::star::uno::XNamingService;
|
|
singleton strictfp : com::sun::star::uno::XNamingService;
|
|
singleton super : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton switch: com::sun::star::uno::XNamingService;
|
|
singleton synchronized : com::sun::star::uno::XNamingService;
|
|
singleton this : com::sun::star::uno::XNamingService;
|
|
singleton throw : com::sun::star::uno::XNamingService;
|
|
singleton throws : com::sun::star::uno::XNamingService;
|
|
//TODO: singleton transient: com::sun::star::uno::XNamingService;
|
|
singleton try : com
|
|
::sun::star::uno::XNamingService;
|
|
//TODO: singleton void: com::sun::star::uno::XNamingService;
|
|
singleton volatile : com::sun::star::uno::XNamingService;
|
|
singleton while : com::sun::star::uno::XNamingService;
|
|
};};};
|