From f020127725a7297446c4a44df317f9aea2ec59c4 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 9 Feb 2026 21:03:35 -0500 Subject: [PATCH] add some edge cases --- tests/leb128/t_leb128.ml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/tests/leb128/t_leb128.ml b/tests/leb128/t_leb128.ml index f89d5611..c4b0c164 100644 --- a/tests/leb128/t_leb128.ml +++ b/tests/leb128/t_leb128.ml @@ -52,7 +52,8 @@ true ;; q ~count:10_000 ~long_factor:20 Q.int @@ fun i -> -let i = abs i in +(* make sure [i] is non negative *) +let i = max 0 (abs i) in if not (encode_decode_uint i) then Q.Test.fail_reportf "uint roundtrip failed for %d" i; true @@ -130,6 +131,15 @@ assert_equal ~printer:string_of_int 1 n; true ;; +t @@ fun () -> +let buf = Buf.create () in +Leb128.Encode.i64 buf 0L; +let slice = Buf.to_slice buf in +let skip = Leb128.Decode.skip slice 0 in +assert_equal ~printer:string_of_int 1 skip; +true +;; + t @@ fun () -> let buf = Buf.create () in Leb128.Encode.i64 buf (-1L); @@ -182,10 +192,18 @@ true t @@ fun () -> let buf = Buf.create () in -Leb128.Encode.i64 buf 0L; +Leb128.Encode.i64 buf Int64.min_int; let slice = Buf.to_slice buf in -let skip = Leb128.Decode.skip slice 0 in -assert_equal ~printer:string_of_int 1 skip; +let v, _n = Leb128.Decode.i64 slice 0 in +assert_equal ~printer:Int64.to_string Int64.min_int v; +true +;; + +let buf = Buf.create () in +Leb128.Encode.i64 buf Int64.max_int; +let slice = Buf.to_slice buf in +let v, _n = Leb128.Decode.i64 slice 0 in +assert_equal ~printer:Int64.to_string Int64.max_int v; true ;;