Calculate and print string sizes in test messages.

pull/13171/head
Joshua Haberman 14 years ago
parent 4d209efd23
commit 6955dfb302
  1. 2
      src/upb_decoder_x86.dasc
  2. 7
      tests/test_vs_proto2.cc

@ -94,7 +94,7 @@ void upb_reg_jit_gdb(upb_decoder *d) {
#else
void upb_reg_jit_gdb(upb_decoder *d) {
(void)d
(void)d;
}
#endif

@ -18,6 +18,8 @@
#include MESSAGE_HFILE
size_t string_size;
void compare(const google::protobuf::Message& proto2_msg,
upb_msg *upb_msg, upb_msgdef *upb_md);
@ -68,6 +70,7 @@ void compare_arrays(const google::protobuf::Reflection *r,
std::string str = r->GetRepeatedString(proto2_msg, proto2_f, i);
upb_string *upbstr = upb_value_getstr(v);
std::string str2(upb_string_getrobuf(upbstr), upb_string_len(upbstr));
string_size += upb_string_len(upbstr);
ASSERT(str == str2);
break;
}
@ -123,6 +126,7 @@ void compare_values(const google::protobuf::Reflection *r,
std::string str = r->GetString(proto2_msg, proto2_f);
upb_string *upbstr = upb_value_getstr(v);
std::string str2(upb_string_getrobuf(upbstr), upb_string_len(upbstr));
string_size += upb_string_len(upbstr);
ASSERT(str == str2);
break;
}
@ -185,7 +189,10 @@ void parse_and_compare(MESSAGE_CIDENT *proto2_msg,
upb_printerr(&status);
exit(1);
}
string_size = 0;
compare(*proto2_msg, upb_msg, upb_md);
printf("Total size: %d, string size: %zd (%0.2f%%)\n", upb_string_len(str),
string_size, (double)string_size / upb_string_len(str) * 100);
upb_status_uninit(&status);
}

Loading…
Cancel
Save