Details
Description
The current performance test in Avro-C measures the performance while
reading and writing of Avro values using a complex record schema,
which does not contain any arrays.
We add tests to measure the performance for simple and nested
arrays. We also replicate all tests to measure the performance of the
schema resolution using a resolved reader and a resolved writer.
Specifically we add the following performance tests:
Nested Record
1. Replicating the test "nested record value by index", using a helper
function. Using helper functions adds a little overhead, but it
allows us to test various schemas, as well as different modes of
schema resolution much more easily.
2. Using a resolved writer to resolve between (identical) reader and
writer schemas, while reading a complex record.
3. Using a resolved reader to resolve between (identical) reader and
writer schemas, while writing a complex record.
Simple Array
4. Test the performance for reading and writing a simple array.
5. Using a resolved writer to resolve between (identical) reader and
writer schemas, while reading a simple array.
6. Using a resolved reader to resolve between (identical) reader and
writer schemas, while writing a simple array.
Nested Array
7. Test the performance for reading and writing a nested array.
8. Using a resolved writer to resolve between (identical) reader and
writer schemas, while reading a nested array.
9. Using a resolved reader to resolve between (identical) reader and
writer schemas, while writing a nested array.
Additionally we fix a minor bug:
1. The return value of avro_value_equal_fast() was not being
tested. Test this return value, and fail if it is FALSE.