Skip to content

Commit

Permalink
schema_registry: Support JSON custom attributes on fields
Browse files Browse the repository at this point in the history
Signed-off-by: Ben Pope <[email protected]>
  • Loading branch information
BenPope committed Nov 16, 2022
1 parent 3f95ed8 commit eb18a6b
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions src/v/pandaproxy/schema_registry/test/compatibility_avro.cc
Original file line number Diff line number Diff line change
Expand Up @@ -250,3 +250,28 @@ SEASTAR_THREAD_TEST_CASE(test_avro_schema_definition) {
pps::canonical_schema_definition avro_conversion{valid};
BOOST_CHECK_EQUAL(expected, avro_conversion);
}

SEASTAR_THREAD_TEST_CASE(test_avro_schema_definition_custom_attributes) {
// https://github.com/redpanda-data/redpanda/issues/7274
// custom attributes supported only at field level
const auto avro_metadata_schema
= pps::sanitize_avro_schema_definition(
{R"({"type":"record","name":"foo","ignored_attr":true,"fields":[{"name":"bar","type":"float","extra_attr":true}]})",
pps::schema_type::avro})
.value();
pps::canonical_schema_definition expected{
R"({"type":"record","name":"foo","fields":[{"name":"bar","type":"float","extra_attr":true}]})",
pps::schema_type::avro};
pps::sharded_store s;
auto valid = pps::make_avro_schema_definition(
s,
{pps::subject("s2"),
{avro_metadata_schema.raw(), pps::schema_type::avro}})
.get();
static_assert(
std::
is_same_v<std::decay_t<decltype(valid)>, pps::avro_schema_definition>,
"schema2 is an avro_schema_definition");
pps::canonical_schema_definition avro_conversion{valid};
BOOST_CHECK_EQUAL(expected, avro_conversion);
}

0 comments on commit eb18a6b

Please sign in to comment.