test: generated_serializer: Test Flags that is struct member
Add fields to the test struct to test serialization/deserialization of scoped enums and flags that are struct members. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
207c9e1c1d
commit
deaf13de9b
2 changed files with 30 additions and 0 deletions
|
@ -35,6 +35,13 @@ if (struct1.field != struct2.field) { \
|
||||||
return TestFail; \
|
return TestFail; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define TEST_SCOPED_ENUM_EQUALITY(struct1, struct2, field) \
|
||||||
|
if (struct1.field != struct2.field) { \
|
||||||
|
cerr << #field << " field incorrect" << endl; \
|
||||||
|
return TestFail; \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ipa::test::TestStruct t, u;
|
ipa::test::TestStruct t, u;
|
||||||
|
|
||||||
t.m = {
|
t.m = {
|
||||||
|
@ -52,6 +59,12 @@ if (struct1.field != struct2.field) { \
|
||||||
t.s3 = "lorem ipsum";
|
t.s3 = "lorem ipsum";
|
||||||
t.i = 58527;
|
t.i = 58527;
|
||||||
t.c = ipa::test::IPAOperationInit;
|
t.c = ipa::test::IPAOperationInit;
|
||||||
|
t.e = ipa::test::ErrorFlags::Error1;
|
||||||
|
|
||||||
|
Flags<ipa::test::ErrorFlags> flags;
|
||||||
|
flags |= ipa::test::ErrorFlags::Error1;
|
||||||
|
flags |= ipa::test::ErrorFlags::Error2;
|
||||||
|
t.f = flags;
|
||||||
|
|
||||||
std::vector<uint8_t> serialized;
|
std::vector<uint8_t> serialized;
|
||||||
|
|
||||||
|
@ -72,6 +85,8 @@ if (struct1.field != struct2.field) { \
|
||||||
TEST_FIELD_EQUALITY(t, u, i);
|
TEST_FIELD_EQUALITY(t, u, i);
|
||||||
TEST_FIELD_EQUALITY(t, u, c);
|
TEST_FIELD_EQUALITY(t, u, c);
|
||||||
|
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(t, u, e);
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(t, u, f);
|
||||||
|
|
||||||
/* Test vector of generated structs */
|
/* Test vector of generated structs */
|
||||||
std::vector<ipa::test::TestStruct> v = { t, u };
|
std::vector<ipa::test::TestStruct> v = { t, u };
|
||||||
|
@ -96,12 +111,18 @@ if (struct1.field != struct2.field) { \
|
||||||
TEST_FIELD_EQUALITY(v[0], w[0], i);
|
TEST_FIELD_EQUALITY(v[0], w[0], i);
|
||||||
TEST_FIELD_EQUALITY(v[0], w[0], c);
|
TEST_FIELD_EQUALITY(v[0], w[0], c);
|
||||||
|
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(v[0], w[0], e);
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(v[0], w[0], f);
|
||||||
|
|
||||||
TEST_FIELD_EQUALITY(v[1], w[1], s1);
|
TEST_FIELD_EQUALITY(v[1], w[1], s1);
|
||||||
TEST_FIELD_EQUALITY(v[1], w[1], s2);
|
TEST_FIELD_EQUALITY(v[1], w[1], s2);
|
||||||
TEST_FIELD_EQUALITY(v[1], w[1], s3);
|
TEST_FIELD_EQUALITY(v[1], w[1], s3);
|
||||||
TEST_FIELD_EQUALITY(v[1], w[1], i);
|
TEST_FIELD_EQUALITY(v[1], w[1], i);
|
||||||
TEST_FIELD_EQUALITY(v[1], w[1], c);
|
TEST_FIELD_EQUALITY(v[1], w[1], c);
|
||||||
|
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(v[1], w[1], e);
|
||||||
|
TEST_SCOPED_ENUM_EQUALITY(v[1], w[1], f);
|
||||||
|
|
||||||
return TestPass;
|
return TestPass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,13 @@ enum IPAOperationCode {
|
||||||
IPAOperationStop,
|
IPAOperationStop,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[scopedEnum] enum ErrorFlags {
|
||||||
|
Error1 = 0x1,
|
||||||
|
Error2 = 0x2,
|
||||||
|
Error3 = 0x4,
|
||||||
|
Error4 = 0x8,
|
||||||
|
};
|
||||||
|
|
||||||
struct IPASettings {};
|
struct IPASettings {};
|
||||||
|
|
||||||
struct TestStruct {
|
struct TestStruct {
|
||||||
|
@ -19,6 +26,8 @@ struct TestStruct {
|
||||||
int32 i;
|
int32 i;
|
||||||
string s3;
|
string s3;
|
||||||
IPAOperationCode c;
|
IPAOperationCode c;
|
||||||
|
ErrorFlags e;
|
||||||
|
[flags] ErrorFlags f;
|
||||||
};
|
};
|
||||||
|
|
||||||
interface IPATestInterface {
|
interface IPATestInterface {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue