summaryrefslogtreecommitdiff
path: root/test/serialization
diff options
context:
space:
mode:
Diffstat (limited to 'test/serialization')
-rw-r--r--test/serialization/control_serialization.cpp2
-rw-r--r--test/serialization/generated_serializer/generated_serializer_test.cpp27
-rw-r--r--test/serialization/generated_serializer/include/libcamera/ipa/test.mojom10
-rw-r--r--test/serialization/ipa_data_serializer_test.cpp6
-rw-r--r--test/serialization/meson.build10
-rw-r--r--test/serialization/serialization_test.cpp2
-rw-r--r--test/serialization/serialization_test.h2
7 files changed, 45 insertions, 14 deletions
diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
index a507d98a..06c572b7 100644
--- a/test/serialization/control_serialization.cpp
+++ b/test/serialization/control_serialization.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * control_serialization.cpp - Serialize and deserialize controls
+ * Serialize and deserialize controls
*/
#include <iostream>
diff --git a/test/serialization/generated_serializer/generated_serializer_test.cpp b/test/serialization/generated_serializer/generated_serializer_test.cpp
index 698c81d6..4b11d67f 100644
--- a/test/serialization/generated_serializer/generated_serializer_test.cpp
+++ b/test/serialization/generated_serializer/generated_serializer_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * generated_serializer_test.cpp - Test generated serializer
+ * Test generated serializer
*/
#include <algorithm>
@@ -35,6 +35,13 @@ if (struct1.field != struct2.field) { \
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;
t.m = {
@@ -51,6 +58,13 @@ if (struct1.field != struct2.field) { \
t.s2 = "goodbye";
t.s3 = "lorem ipsum";
t.i = 58527;
+ 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;
@@ -69,7 +83,10 @@ if (struct1.field != struct2.field) { \
TEST_FIELD_EQUALITY(t, u, s2);
TEST_FIELD_EQUALITY(t, u, s3);
TEST_FIELD_EQUALITY(t, u, i);
+ 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 */
std::vector<ipa::test::TestStruct> v = { t, u };
@@ -92,11 +109,19 @@ if (struct1.field != struct2.field) { \
TEST_FIELD_EQUALITY(v[0], w[0], s2);
TEST_FIELD_EQUALITY(v[0], w[0], s3);
TEST_FIELD_EQUALITY(v[0], w[0], i);
+ 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], s2);
TEST_FIELD_EQUALITY(v[1], w[1], s3);
TEST_FIELD_EQUALITY(v[1], w[1], i);
+ 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;
}
diff --git a/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom b/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom
index 5f200885..91c31642 100644
--- a/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom
+++ b/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom
@@ -9,6 +9,13 @@ enum IPAOperationCode {
IPAOperationStop,
};
+[scopedEnum] enum ErrorFlags {
+ Error1 = 0x1,
+ Error2 = 0x2,
+ Error3 = 0x4,
+ Error4 = 0x8,
+};
+
struct IPASettings {};
struct TestStruct {
@@ -18,6 +25,9 @@ struct TestStruct {
string s2;
int32 i;
string s3;
+ IPAOperationCode c;
+ ErrorFlags e;
+ [flags] ErrorFlags f;
};
interface IPATestInterface {
diff --git a/test/serialization/ipa_data_serializer_test.cpp b/test/serialization/ipa_data_serializer_test.cpp
index d2050a86..aea63c73 100644
--- a/test/serialization/ipa_data_serializer_test.cpp
+++ b/test/serialization/ipa_data_serializer_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2020, Google Inc.
*
- * ipa_data_serializer_test.cpp - Test serializing/deserializing with IPADataSerializer
+ * Test serializing/deserializing with IPADataSerializer
*/
#include <algorithm>
@@ -20,11 +20,7 @@
#include <libcamera/base/thread.h>
#include <libcamera/base/timer.h>
-#include "libcamera/internal/device_enumerator.h"
#include "libcamera/internal/ipa_data_serializer.h"
-#include "libcamera/internal/ipa_manager.h"
-#include "libcamera/internal/ipa_module.h"
-#include "libcamera/internal/pipeline_handler.h"
#include "serialization_test.h"
#include "test.h"
diff --git a/test/serialization/meson.build b/test/serialization/meson.build
index 26e42b15..a6e8d793 100644
--- a/test/serialization/meson.build
+++ b/test/serialization/meson.build
@@ -3,14 +3,14 @@
subdir('generated_serializer')
serialization_tests = [
- ['control_serialization', 'control_serialization.cpp'],
- ['ipa_data_serializer_test', 'ipa_data_serializer_test.cpp'],
+ {'name': 'control_serialization', 'sources': ['control_serialization.cpp']},
+ {'name': 'ipa_data_serializer_test', 'sources': ['ipa_data_serializer_test.cpp']},
]
-foreach t : serialization_tests
- exe = executable(t[0], [t[1], 'serialization_test.cpp'],
+foreach test : serialization_tests
+ exe = executable(test['name'], test['sources'], 'serialization_test.cpp',
dependencies : libcamera_private,
link_with : test_libraries,
include_directories : test_includes_internal)
- test(t[0], exe, suite : 'serialization', is_parallel : false)
+ test(test['name'], exe, suite : 'serialization', is_parallel : false)
endforeach
diff --git a/test/serialization/serialization_test.cpp b/test/serialization/serialization_test.cpp
index 11d0f0f3..af9969fd 100644
--- a/test/serialization/serialization_test.cpp
+++ b/test/serialization/serialization_test.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * serialization_test.cpp - Base class for serialization tests
+ * Base class for serialization tests
*/
#include "serialization_test.h"
diff --git a/test/serialization/serialization_test.h b/test/serialization/serialization_test.h
index 609f9fdf..760e3721 100644
--- a/test/serialization/serialization_test.h
+++ b/test/serialization/serialization_test.h
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2019, Google Inc.
*
- * serialization_test.h - Base class for serialization tests
+ * Base class for serialization tests
*/
#pragma once