diff --git a/test/extensions_test.ml b/test/extensions_test.ml index 63b2fd7c..806eba03 100644 --- a/test/extensions_test.ml +++ b/test/extensions_test.ml @@ -16,6 +16,7 @@ let%expect_test _ = let foo = Extensions.Foo.{ bar = Some 5; extensions' = Ocaml_protoc_plugin.Extensions.default } in let foo = Extensions.Baz'.set foo (Some 8) in let foo = Extensions.Baz'.set foo (Some 7) in + Test_lib.test_encode ~protoc:false (module Extensions.Foo) foo; let baz = Extensions.Baz'.get foo in print_endline ([%show: Extensions.Foo.t] foo); print_endline ([%show: Extensions.Baz.t Ocaml_protoc_plugin.Result.t] baz); @@ -34,6 +35,8 @@ let%expect_test _ = let foo = Extensions.Baz'.set foo (Some 0) in let foo = Extensions.B2.set foo ([6;7;8]) in let foo = Extensions.B2.set foo ([]) in + Test_lib.test_encode ~protoc:false (module Extensions.Foo) foo; + print_endline ([%show: Extensions.Foo.t] foo); (); [%expect {| @@ -42,6 +45,8 @@ let%expect_test _ = let%expect_test _ = let foo = Extensions.Foo.{ bar = Some 5; extensions' = Ocaml_protoc_plugin.Extensions.default } in let foo = Extensions.Baz'.set foo (Some 7) in + Test_lib.test_encode ~protoc:false (module Extensions.Foo) foo; + let foo' = Extensions.Foo.to_proto foo |> Ocaml_protoc_plugin.Writer.contents @@ -61,6 +66,7 @@ let%expect_test _ = let%expect_test _ = let v = [6;7;8;9] in let foo = Extensions.Foo.{ bar = Some 5; extensions' = Ocaml_protoc_plugin.Extensions.default } in + Test_lib.test_encode ~protoc:false (module Extensions.Foo) foo; let foo = Extensions.R_baz.set foo v in let foo' = Extensions.Foo.to_proto foo @@ -100,6 +106,7 @@ let%expect_test _ = let foo = Extensions.B.set foo 0 in Printf.printf "Set B = 0: %d\n" (Extensions.B.get foo |> Ocaml_protoc_plugin.Result.get ~msg:"No Value"); + Test_lib.test_encode ~protoc:false (module Extensions.Foo) foo; print_endline ([%show: Extensions.Foo.t] foo); (); [%expect {| diff --git a/test/large_test.ml b/test/large_test.ml index d9b82437..d1185f12 100644 --- a/test/large_test.ml +++ b/test/large_test.ml @@ -1,19 +1,8 @@ open Large -open Ocaml_protoc_plugin let%expect_test "Test very large message type" = let large = Large.make ~x7:7 () in - let writer = Large.to_proto large in - let contents = Writer.contents writer in - Printf.printf "Size of large message: %d\n" (String.length contents); - let reader = Reader.create contents in - let large' = Large.from_proto_exn reader in - Printf.printf "Serialization works: %b\n" (large = large'); - Printf.printf "x7: %d = %d\n" large.x7 large'.x7; - Printf.printf "x5: %d = %d\n" large.x5 large'.x5; + Test_lib.test_encode (module Large) large; (); [%expect {| - Size of large message: 2 - Serialization works: true - x7: 7 = 7 - x5: 0 = 0 |}] + x7: 7 |}] diff --git a/test/merge_test.ml b/test/merge_test.ml index 8f28e3b0..ef439fab 100644 --- a/test/merge_test.ml +++ b/test/merge_test.ml @@ -3,7 +3,6 @@ open Merge.Merge let test_merge (type t) (module T: Test_lib.T with type t = t) (init : t) (ts: t list) = let open Ocaml_protoc_plugin in - let writer = Writer.init () in let expect = List.fold_left ~init ~f:(fun acc t -> diff --git a/test/primitive_types_test.ml b/test/primitive_types_test.ml index d1754183..b9acf60c 100644 --- a/test/primitive_types_test.ml +++ b/test/primitive_types_test.ml @@ -42,26 +42,8 @@ let%expect_test _ = let%expect_test _ = let module T = Primitive_types.Types in - let t = - T. - { - int64 = 0; - sint64 = 0; - uint64 = 0; - int32 = 0; - sint32 = 0; - uint32 = 0; - double = 0.0; - float = 0.0; - fixed64 = 0L; - fixed32 = 0l; - sfixed64 = 0L; - sfixed32 = 0l; - bool = false; - string = ""; - bytes = Bytes.of_string ""; - } - in + let t = T.make () in + Test_lib.test_encode (module T) t; let bin = T.to_proto t in Printf.printf "Size: %d%!" (Ocaml_protoc_plugin.Writer.contents bin |> String.length); [%expect {| Size: 0 |}] diff --git a/test/proto2.proto b/test/proto2.proto index fa046fd7..95e64dd3 100644 --- a/test/proto2.proto +++ b/test/proto2.proto @@ -9,6 +9,7 @@ message A { message Message { message Required { optional uint64 a = 1; + optional uint64 b = 2; } enum E { A = 0; diff --git a/test/proto2_test.ml b/test/proto2_test.ml index 3be69b0c..5f2b8b67 100644 --- a/test/proto2_test.ml +++ b/test/proto2_test.ml @@ -1,7 +1,12 @@ open Proto2 + let%expect_test _ = let module T = Proto2.Message in - let t = T.{enum = Some E.B; i = 0; j = 5; required = Some 7; k = Some 5 } in + (* Verify signature that required messages are mapped as mandatory arguments *) + let make: ?enum:T.E.t -> ?i:int -> j:int -> required:T.Required.t -> ?k:int -> unit -> T.t = T.make in + let t' = make ~enum:T.E.B ~i:0 ~j:5 ~required:(T.Required.make ~a:7 ()) ~k:5 () in + let t = T.{enum = Some E.B; i = 0; j = 5; required = T.Required.make ~a:7 (); k = Some 5 } in + if (not (T.equal t t')) then Printf.eprintf "Error: Type does not match"; Test_lib.test_encode (module T) t; [%expect {| enum: B