You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by ma...@apache.org on 2010/10/06 00:57:18 UTC
svn commit: r1004849 - in /avro/trunk: CHANGES.txt lang/c/src/datum.c
lang/c/tests/test_avro_data.c
Author: massie
Date: Tue Oct 5 22:57:17 2010
New Revision: 1004849
URL: http://svn.apache.org/viewvc?rev=1004849&view=rev
Log:
AVRO-675. Bytes and fixed setters don't update datum size (Contributed by Douglas Creager).
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/c/src/datum.c
avro/trunk/lang/c/tests/test_avro_data.c
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1004849&r1=1004848&r2=1004849&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Tue Oct 5 22:57:17 2010
@@ -41,6 +41,10 @@ Avro 1.4.1 (unreleased)
AVRO-667. GenericArray fails to compare with List. SpecificRecord
compare gets ClassCastException. (scottcarey & cutting)
+ AVRO-675. Bytes and fixed setters don't update datum size.
+ (Douglas Creager via massie)
+
+
Avro 1.4.0 (31 August 2010)
INCOMPATIBLE CHANGES
Modified: avro/trunk/lang/c/src/datum.c
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/src/datum.c?rev=1004849&r1=1004848&r2=1004849&view=diff
==============================================================================
--- avro/trunk/lang/c/src/datum.c (original)
+++ avro/trunk/lang/c/src/datum.c Tue Oct 5 22:57:17 2010
@@ -169,6 +169,7 @@ static int avro_bytes_set_private(avro_d
b->free = bytes_free;
b->bytes = (char *)bytes;
+ b->size = size;
return 0;
}
@@ -562,6 +563,7 @@ static int avro_fixed_set_private(avro_d
fixed->free = fixed_free;
fixed->bytes = (char *)bytes;
+ fixed->size = size;
return 0;
}
Modified: avro/trunk/lang/c/tests/test_avro_data.c
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/tests/test_avro_data.c?rev=1004849&r1=1004848&r2=1004849&view=diff
==============================================================================
--- avro/trunk/lang/c/tests/test_avro_data.c (original)
+++ avro/trunk/lang/c/tests/test_avro_data.c Tue Oct 5 22:57:17 2010
@@ -119,11 +119,26 @@ static int test_bytes(void)
{
char bytes[] = { 0xDE, 0xAD, 0xBE, 0xEF };
avro_schema_t writer_schema = avro_schema_bytes();
- avro_datum_t datum = avro_wrapbytes(bytes, sizeof(bytes));
+ avro_datum_t datum;
+ avro_datum_t expected_datum;
+ datum = avro_wrapbytes(bytes, sizeof(bytes));
write_read_check(writer_schema, NULL, datum, "bytes");
avro_datum_decref(datum);
avro_schema_decref(writer_schema);
+
+ datum = avro_wrapbytes(NULL, 0);
+ avro_wrapbytes_set(datum, bytes, sizeof(bytes));
+ expected_datum = avro_wrapbytes(bytes, sizeof(bytes));
+ if (!avro_datum_equal(datum, expected_datum)) {
+ fprintf(stderr,
+ "Expected equal bytes instances.\n");
+ exit(EXIT_FAILURE);
+ }
+ avro_datum_decref(datum);
+ avro_datum_decref(expected_datum);
+ avro_schema_decref(writer_schema);
+
return 0;
}
@@ -313,10 +328,26 @@ static int test_fixed(void)
{
char bytes[] = { 0xD, 0xA, 0xD, 0xA, 0xB, 0xA, 0xB, 0xA };
avro_schema_t schema = avro_schema_fixed("msg", sizeof(bytes));
- avro_datum_t datum = avro_wrapfixed("msg", bytes, sizeof(bytes));
+ avro_datum_t datum;
+ avro_datum_t expected_datum;
+
+ datum = avro_wrapfixed("msg", bytes, sizeof(bytes));
write_read_check(schema, NULL, datum, "fixed");
avro_datum_decref(datum);
avro_schema_decref(schema);
+
+ datum = avro_wrapfixed("msg", NULL, 0);
+ avro_wrapfixed_set(datum, bytes, sizeof(bytes));
+ expected_datum = avro_wrapfixed("msg", bytes, sizeof(bytes));
+ if (!avro_datum_equal(datum, expected_datum)) {
+ fprintf(stderr,
+ "Expected equal fixed instances.\n");
+ exit(EXIT_FAILURE);
+ }
+ avro_datum_decref(datum);
+ avro_datum_decref(expected_datum);
+ avro_schema_decref(schema);
+
return 0;
}