2010-05-22 12:35:37 -07:00
|
|
|
include protocol PTestDataStructuresSub;
|
|
|
|
|
2010-06-02 10:56:34 -07:00
|
|
|
using mozilla::null_t;
|
2010-06-21 13:35:48 -07:00
|
|
|
using nsIntRegion;
|
2010-06-02 10:56:34 -07:00
|
|
|
|
2010-05-22 12:35:37 -07:00
|
|
|
namespace mozilla {
|
|
|
|
namespace _foo {
|
|
|
|
|
|
|
|
union IntDouble {
|
|
|
|
int;
|
|
|
|
double;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SIntDouble {
|
|
|
|
int i;
|
|
|
|
double d;
|
|
|
|
};
|
|
|
|
|
|
|
|
union IntDoubleArrays {
|
|
|
|
int;
|
|
|
|
int[];
|
|
|
|
double[];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SIntDoubleArrays {
|
|
|
|
int i;
|
|
|
|
int[] ai;
|
|
|
|
double[] ad;
|
|
|
|
};
|
|
|
|
|
|
|
|
union Actors {
|
|
|
|
int;
|
|
|
|
int[];
|
|
|
|
PTestDataStructuresSub[];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SActors {
|
|
|
|
int i;
|
|
|
|
int[] ai;
|
|
|
|
PTestDataStructuresSub[] ap;
|
|
|
|
};
|
|
|
|
|
|
|
|
union Unions {
|
|
|
|
int;
|
|
|
|
int[];
|
|
|
|
PTestDataStructuresSub[];
|
|
|
|
Actors[];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Structs {
|
|
|
|
int i;
|
|
|
|
int[] ai;
|
|
|
|
PTestDataStructuresSub[] ap;
|
|
|
|
SActors[] aa;
|
|
|
|
};
|
|
|
|
|
|
|
|
union WithStructs {
|
|
|
|
int;
|
|
|
|
int[];
|
|
|
|
PTestDataStructuresSub[];
|
|
|
|
SActors[];
|
|
|
|
Structs[];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct WithUnions {
|
|
|
|
int i;
|
|
|
|
int[] ai;
|
|
|
|
PTestDataStructuresSub[] ap;
|
|
|
|
Actors[] aa;
|
|
|
|
Unions[] au;
|
|
|
|
};
|
|
|
|
|
2010-06-02 10:56:34 -07:00
|
|
|
struct CommonAttrs { bool dummy; };
|
|
|
|
struct FooAttrs { int dummy; };
|
|
|
|
struct BarAttrs { float dummy; };
|
|
|
|
union SpecificAttrs {
|
|
|
|
FooAttrs;
|
|
|
|
BarAttrs;
|
|
|
|
};
|
|
|
|
struct Attrs {
|
|
|
|
CommonAttrs common;
|
|
|
|
SpecificAttrs specific;
|
|
|
|
};
|
|
|
|
struct SetAttrs {
|
|
|
|
PTestDataStructuresSub x;
|
|
|
|
Attrs attrs;
|
|
|
|
};
|
|
|
|
union Op { null_t; SetAttrs; };
|
|
|
|
|
2010-06-23 11:59:07 -07:00
|
|
|
struct ShmemStruct {
|
|
|
|
int i;
|
|
|
|
Shmem mem;
|
|
|
|
};
|
|
|
|
|
2010-05-22 12:35:37 -07:00
|
|
|
} // namespace _foo
|
|
|
|
} // namespace mozilla
|
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace _ipdltest {
|
|
|
|
|
|
|
|
sync protocol PTestDataStructures {
|
|
|
|
manages PTestDataStructuresSub;
|
|
|
|
|
|
|
|
child:
|
|
|
|
PTestDataStructuresSub(int i);
|
|
|
|
|
|
|
|
Start();
|
|
|
|
|
|
|
|
parent:
|
|
|
|
__delete__();
|
|
|
|
|
|
|
|
sync Test1(int[] i1)
|
|
|
|
returns (int[] o1);
|
|
|
|
|
|
|
|
sync Test2(PTestDataStructuresSub[] i1)
|
|
|
|
returns (PTestDataStructuresSub[] o1);
|
|
|
|
|
|
|
|
sync Test3(IntDouble i1,
|
|
|
|
IntDouble i2)
|
|
|
|
returns (IntDouble o1,
|
|
|
|
IntDouble o2);
|
|
|
|
|
|
|
|
sync Test4(IntDouble[] i1)
|
|
|
|
returns (IntDouble[] o1);
|
|
|
|
|
|
|
|
sync Test5(IntDoubleArrays i1,
|
|
|
|
IntDoubleArrays i2,
|
|
|
|
IntDoubleArrays i3)
|
|
|
|
returns (IntDoubleArrays o1,
|
|
|
|
IntDoubleArrays o2,
|
|
|
|
IntDoubleArrays o3);
|
|
|
|
|
|
|
|
sync Test6(IntDoubleArrays[] i1)
|
|
|
|
returns (IntDoubleArrays[] o1);
|
|
|
|
|
|
|
|
sync Test7(Actors i1,
|
|
|
|
Actors i2,
|
|
|
|
Actors i3)
|
|
|
|
returns (Actors o1,
|
|
|
|
Actors o2,
|
|
|
|
Actors o3);
|
|
|
|
|
|
|
|
sync Test8(Actors[] i1)
|
|
|
|
returns (Actors[] o1);
|
|
|
|
|
|
|
|
sync Test9(Unions i1,
|
|
|
|
Unions i2,
|
|
|
|
Unions i3,
|
|
|
|
Unions i4)
|
|
|
|
returns (Unions o1,
|
|
|
|
Unions o2,
|
|
|
|
Unions o3,
|
|
|
|
Unions o4);
|
|
|
|
|
|
|
|
sync Test10(Unions[] i1)
|
|
|
|
returns (Unions[] o1);
|
|
|
|
|
|
|
|
sync Test11(SIntDouble i)
|
|
|
|
returns (SIntDouble o);
|
|
|
|
|
|
|
|
sync Test12(SIntDoubleArrays i)
|
|
|
|
returns (SIntDoubleArrays o);
|
|
|
|
|
|
|
|
sync Test13(SActors i)
|
|
|
|
returns (SActors o);
|
|
|
|
|
|
|
|
sync Test14(Structs i)
|
|
|
|
returns (Structs o);
|
|
|
|
|
|
|
|
sync Test15(WithStructs i1,
|
|
|
|
WithStructs i2,
|
|
|
|
WithStructs i3,
|
|
|
|
WithStructs i4,
|
|
|
|
WithStructs i5)
|
|
|
|
returns (WithStructs o1,
|
|
|
|
WithStructs o2,
|
|
|
|
WithStructs o3,
|
|
|
|
WithStructs o4,
|
|
|
|
WithStructs o5);
|
|
|
|
|
|
|
|
sync Test16(WithUnions i)
|
|
|
|
returns (WithUnions o);
|
|
|
|
|
2010-06-02 10:56:34 -07:00
|
|
|
sync Test17(Op[] ops);
|
|
|
|
|
2010-06-21 13:35:48 -07:00
|
|
|
// test that the ParamTraits<nsTArray>::Read() workaround for
|
|
|
|
// nsTArray's incorrect memmove() semantics works properly
|
|
|
|
// (nsIntRegion isn't memmove()able)
|
|
|
|
sync Test18(nsIntRegion[] ops);
|
|
|
|
|
2010-07-15 12:27:43 -07:00
|
|
|
state CONSTRUCTING:
|
|
|
|
send PTestDataStructuresSub goto CONSTRUCTING;
|
2010-05-22 12:35:37 -07:00
|
|
|
send Start goto TEST1;
|
|
|
|
state TEST1: recv Test1 goto TEST2;
|
|
|
|
state TEST2: recv Test2 goto TEST3;
|
|
|
|
state TEST3: recv Test3 goto TEST4;
|
|
|
|
state TEST4: recv Test4 goto TEST5;
|
|
|
|
state TEST5: recv Test5 goto TEST6;
|
|
|
|
state TEST6: recv Test6 goto TEST7;
|
|
|
|
state TEST7: recv Test7 goto TEST8;
|
|
|
|
state TEST8: recv Test8 goto TEST9;
|
|
|
|
state TEST9: recv Test9 goto TEST10;
|
|
|
|
state TEST10: recv Test10 goto TEST11;
|
|
|
|
state TEST11: recv Test11 goto TEST12;
|
2010-06-02 10:56:34 -07:00
|
|
|
state TEST12: recv Test12 goto TEST13;
|
|
|
|
state TEST13: recv Test13 goto TEST14;
|
|
|
|
state TEST14: recv Test14 goto TEST15;
|
|
|
|
state TEST15: recv Test15 goto TEST16;
|
|
|
|
state TEST16: recv Test16 goto TEST17;
|
2010-06-21 13:35:48 -07:00
|
|
|
state TEST17: recv Test17 goto TEST18;
|
|
|
|
state TEST18: recv Test18 goto DEAD;
|
2010-05-22 12:35:37 -07:00
|
|
|
|
|
|
|
state DEAD:
|
|
|
|
recv __delete__;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace _ipdltest
|
|
|
|
} // namespace mozilla
|
|
|
|
|