From f7f84d1a9e9fa74cfa8424ed2b56bfe14101041e Mon Sep 17 00:00:00 2001 From: Micah Warren Date: Thu, 9 Dec 2010 10:16:23 -0600 Subject: [PATCH] Added quickcheck tests. --- test/erlang_protobuffs_SUITE.erl | 7 +++++++ test/protobuffs_eqc.erl | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/test/erlang_protobuffs_SUITE.erl b/test/erlang_protobuffs_SUITE.erl index 3e868efd..6c8dc611 100644 --- a/test/erlang_protobuffs_SUITE.erl +++ b/test/erlang_protobuffs_SUITE.erl @@ -260,6 +260,13 @@ parse_extensions_test_case(Config) -> protobuffs_compile:scan_file(Path), true = eqc:quickcheck(eqc:numtests(NumTests,protobuffs_eqc:prop_protobuffs_extentions())). +%parse_service_test_case(Config) -> +% DataDir = ?config(data_dir, Config), +% NumTests = ?config(num_tests, Config), +% Path = filename:absname(filename:join([DataDir, "service.proto"])), +% protobuffs_compile:scan_file(Path), +% true = eqc:quickcheck(eqc:numtests(NumTests,protobuffs_eqc:prop_protobuffs_extentions())). + parse_addressbook_test_case(Config) -> DataDir = ?config(data_dir, Config), NumTests = ?config(num_tests, Config), diff --git a/test/protobuffs_eqc.erl b/test/protobuffs_eqc.erl index b5dc6aff..e4ee6a11 100644 --- a/test/protobuffs_eqc.erl +++ b/test/protobuffs_eqc.erl @@ -277,6 +277,26 @@ prop_protobuffs_enum() -> compare_messages(Middle,Decoded) end). +enum_outside_value() -> + oneof(['FIRST','SECOND']). + +prop_protobuffs_enum_outside() -> + ?FORALL({Middle}, + {default({enumuser,undefined},{enumuser,enum_outside_value()})}, + begin + Decoded = enum_outside_pb:decode_enumuser(enum_outside_pb:encode_enumuser(Middle)), + compare_messages(Middle,Decoded) + end). + +prop_protobuffs_extentions() -> + ?FORALL({Middle}, + {default({extendable},{maxtendable})}, + begin + DecodeFunc = list_to_atom("decode_" ++ atom_to_list(element(1, Middle))), + Decoded = extensions_pb:DecodeFunc(extensions_pb:encode(Middle)), + compare_messages(Middle,Decoded) + end). + address_phone_number() -> list({person_phonenumber,string(),default(undefined,oneof(['HOME','WORK','MOBILE']))}).