summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2011-06-17 10:34:29 -0700
committerJoshua Haberman <jhaberman@gmail.com>2011-06-17 10:34:29 -0700
commit559e23c796f973a65d05c76e211835b126ee8ac8 (patch)
treeec359628f3b93b88718cc34e5ec86ca6e6c6c1e2 /tests
parenta503b8859c37906ab5012db163daca43bfe393bb (diff)
Major refactoring: abandon upb_msg, add upb_accessors.
Next on the chopping block is upb_string.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_decoder.c9
-rw-r--r--tests/test_vs_proto2.cc42
-rw-r--r--tests/tests.c4
3 files changed, 30 insertions, 25 deletions
diff --git a/tests/test_decoder.c b/tests/test_decoder.c
index e607827..7b168de 100644
--- a/tests/test_decoder.c
+++ b/tests/test_decoder.c
@@ -18,7 +18,7 @@ int main(int argc, char *argv[]) {
}
upb_status status = UPB_STATUS_INIT;
- upb_parsedesc(symtab, desc, &status);
+ upb_read_descriptor(symtab, desc, &status);
if (!upb_ok(&status)) {
fprintf(stderr, "Error parsing descriptor: ");
upb_printerr(&status);
@@ -45,14 +45,13 @@ int main(int argc, char *argv[]) {
upb_stdio *out = upb_stdio_new();
upb_stdio_reset(out, stdout);
- upb_handlers handlers;
- upb_handlers_init(&handlers);
+ upb_handlers *handlers = upb_handlers_new();
upb_textprinter *p = upb_textprinter_new();
upb_textprinter_reset(p, upb_stdio_bytesink(out), false);
- upb_textprinter_reghandlers(&handlers, m);
+ upb_textprinter_reghandlers(handlers, m);
upb_decoder d;
- upb_decoder_init(&d, &handlers);
+ upb_decoder_initforhandlers(&d, handlers);
upb_decoder_reset(&d, upb_stdio_bytesrc(in), p);
upb_clearerr(&status);
diff --git a/tests/test_vs_proto2.cc b/tests/test_vs_proto2.cc
index f23398a..8c2e97d 100644
--- a/tests/test_vs_proto2.cc
+++ b/tests/test_vs_proto2.cc
@@ -21,19 +21,22 @@
size_t string_size;
void compare(const google::protobuf::Message& proto2_msg,
- upb_msg *upb_msg, upb_msgdef *upb_md);
+ void *upb_msg, upb_msgdef *upb_md);
void compare_arrays(const google::protobuf::Reflection *r,
const google::protobuf::Message& proto2_msg,
const google::protobuf::FieldDescriptor *proto2_f,
- upb_msg *upb_msg, upb_fielddef *upb_f)
+ void *upb_msg, upb_fielddef *upb_f)
{
ASSERT(upb_msg_has(upb_msg, upb_f));
- ASSERT(upb_isarray(upb_f));
- upb_array *arr = upb_value_getarr(upb_msg_get(upb_msg, upb_f));
- ASSERT(upb_array_len(arr) == (upb_arraylen_t)r->FieldSize(proto2_msg, proto2_f));
- for(upb_arraylen_t i = 0; i < upb_array_len(arr); i++) {
- upb_value v = upb_array_get(arr, upb_f, i);
+ ASSERT(upb_isseq(upb_f));
+ void *arr = upb_value_getptr(upb_msg_get(upb_msg, upb_f));
+ void *iter = upb_seq_begin(arr, upb_f);
+ for(int i = 0;
+ i < r->FieldSize(proto2_msg, proto2_f);
+ i++, iter = upb_seq_next(arr, iter, upb_f)) {
+ ASSERT(!upb_seq_done(iter));
+ upb_value v = upb_seq_get(iter, upb_f);
switch(upb_f->type) {
default:
ASSERT(false);
@@ -76,18 +79,20 @@ void compare_arrays(const google::protobuf::Reflection *r,
}
case UPB_TYPE(GROUP):
case UPB_TYPE(MESSAGE):
+ // XXX: getstr
ASSERT(upb_dyncast_msgdef(upb_f->def) != NULL);
compare(r->GetRepeatedMessage(proto2_msg, proto2_f, i),
- upb_value_getmsg(v), upb_downcast_msgdef(upb_f->def));
+ upb_value_getstr(v), upb_downcast_msgdef(upb_f->def));
}
}
+ ASSERT(upb_seq_done(iter));
}
#include <inttypes.h>
void compare_values(const google::protobuf::Reflection *r,
const google::protobuf::Message& proto2_msg,
const google::protobuf::FieldDescriptor *proto2_f,
- upb_msg *upb_msg, upb_fielddef *upb_f)
+ void *upb_msg, upb_fielddef *upb_f)
{
upb_value v = upb_msg_get(upb_msg, upb_f);
switch(upb_f->type) {
@@ -132,13 +137,14 @@ void compare_values(const google::protobuf::Reflection *r,
}
case UPB_TYPE(GROUP):
case UPB_TYPE(MESSAGE):
+ // XXX: getstr
compare(r->GetMessage(proto2_msg, proto2_f),
- upb_value_getmsg(v), upb_downcast_msgdef(upb_f->def));
+ upb_value_getstr(v), upb_downcast_msgdef(upb_f->def));
}
}
void compare(const google::protobuf::Message& proto2_msg,
- upb_msg *upb_msg, upb_msgdef *upb_md)
+ void *upb_msg, upb_msgdef *upb_md)
{
const google::protobuf::Reflection *r = proto2_msg.GetReflection();
const google::protobuf::Descriptor *d = proto2_msg.GetDescriptor();
@@ -157,15 +163,15 @@ void compare(const google::protobuf::Message& proto2_msg,
upb_string_len(upb_f->name)) ==
proto2_f->name());
ASSERT(upb_f->type == proto2_f->type());
- ASSERT(upb_isarray(upb_f) == proto2_f->is_repeated());
+ ASSERT(upb_isseq(upb_f) == proto2_f->is_repeated());
if(!upb_msg_has(upb_msg, upb_f)) {
- if(upb_isarray(upb_f))
+ if(upb_isseq(upb_f))
ASSERT(r->FieldSize(proto2_msg, proto2_f) == 0);
else
ASSERT(r->HasField(proto2_msg, proto2_f) == false);
} else {
- if(upb_isarray(upb_f)) {
+ if(upb_isseq(upb_f)) {
compare_arrays(r, proto2_msg, proto2_f, upb_msg, upb_f);
} else {
ASSERT(r->HasField(proto2_msg, proto2_f) == true);
@@ -176,7 +182,7 @@ void compare(const google::protobuf::Message& proto2_msg,
}
void parse_and_compare(MESSAGE_CIDENT *proto2_msg,
- upb_msg *upb_msg, upb_msgdef *upb_md,
+ void *upb_msg, upb_msgdef *upb_md,
upb_string *str)
{
// Parse to both proto2 and upb.
@@ -220,7 +226,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Couldn't read " MESSAGE_DESCRIPTOR_FILE ".\n");
return 1;
}
- upb_parsedesc(symtab, fds, &status);
+ upb_read_descriptor(symtab, fds, &status);
if(!upb_ok(&status)) {
fprintf(stderr, "Error importing " MESSAGE_DESCRIPTOR_FILE ": ");
upb_printerr(&status);
@@ -247,12 +253,12 @@ int main(int argc, char *argv[])
// Run twice to test proper object reuse.
MESSAGE_CIDENT proto2_msg;
- upb_msg *upb_msg = upb_msg_new(msgdef);
+ void *upb_msg = upb_stdmsg_new(msgdef);
parse_and_compare(&proto2_msg, upb_msg, msgdef, str);
parse_and_compare(&proto2_msg, upb_msg, msgdef, str);
printf("All tests passed, %d assertions.\n", num_assertions);
- upb_msg_unref(upb_msg, msgdef);
+ upb_stdmsg_free(upb_msg, msgdef);
upb_def_unref(UPB_UPCAST(msgdef));
upb_string_unref(str);
upb_symtab_unref(symtab);
diff --git a/tests/tests.c b/tests/tests.c
index a78ca03..c6b5051 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -17,7 +17,7 @@ static upb_symtab *load_test_proto() {
exit(1);
}
upb_status status = UPB_STATUS_INIT;
- upb_parsedesc(s, descriptor, &status);
+ upb_read_descriptor(s, descriptor, &status);
ASSERT(upb_ok(&status));
upb_status_uninit(&status);
upb_string_unref(descriptor);
@@ -42,7 +42,7 @@ static void test_upb_jit() {
upb_handlerset hset = {NULL, NULL, &upb_test_onvalue, NULL, NULL, NULL, NULL};
upb_handlers_reghandlerset(h, upb_downcast_msgdef(def), &hset);
upb_decoder d;
- upb_decoder_init(&d, h);
+ upb_decoder_initforhandlers(&d, h);
upb_decoder_uninit(&d);
upb_symtab_unref(s);
upb_def_unref(def);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback