Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ocaml-qcheck for openSUSE:Factory checked in at 2023-09-15 22:05:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml-qcheck (Old) and /work/SRC/openSUSE:Factory/.ocaml-qcheck.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-qcheck" Fri Sep 15 22:05:29 2023 rev:13 rq:1111500 version:0.21.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml-qcheck/ocaml-qcheck.changes 2023-06-01 17:19:22.182106788 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml-qcheck.new.1766/ocaml-qcheck.changes 2023-09-15 22:10:54.016773601 +0200 @@ -1,0 +2,6 @@ +Sat Sep 9 09:09:09 UTC 2023 - oher...@suse.de + +- Update to version 0.21.2 + See included CHANGELOG.md for details + +------------------------------------------------------------------- Old: ---- ocaml-qcheck-0.21.1.tar.xz New: ---- ocaml-qcheck-0.21.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml-qcheck.spec ++++++ --- /var/tmp/diff_new_pack.6jpDvz/_old 2023-09-15 22:10:55.320820226 +0200 +++ /var/tmp/diff_new_pack.6jpDvz/_new 2023-09-15 22:10:55.320820226 +0200 @@ -32,7 +32,7 @@ %define pkg ocaml-qcheck Name: %pkg%nsuffix -Version: 0.21.1 +Version: 0.21.2 Release: 0 %{?ocaml_preserve_bytecode} Summary: QuickCheck inspired property-based testing for OCaml ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6jpDvz/_old 2023-09-15 22:10:55.360821657 +0200 +++ /var/tmp/diff_new_pack.6jpDvz/_new 2023-09-15 22:10:55.360821657 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="disabled"> <param name="filename">ocaml-qcheck</param> - <param name="revision">a306ee8b29ad6e2fc90b5c566b75e02669a9c0b3</param> + <param name="revision">321628b10b5f84cee45d4c15e2939927562b1b98</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://github.com/c-cube/qcheck.git</param> ++++++ ocaml-qcheck-0.21.1.tar.xz -> ocaml-qcheck-0.21.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/CHANGELOG.md new/ocaml-qcheck-0.21.2/CHANGELOG.md --- old/ocaml-qcheck-0.21.1/CHANGELOG.md 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/CHANGELOG.md 2023-08-25 10:56:42.000000000 +0200 @@ -1,5 +1,11 @@ # Changes +## 0.21.2 + +- Reintroduce the `Shrink.list_spine` fix by catching `Invalid_argument` and + falling back on an address comparison. +- Fix #273 by lowering `ppx_deriving_qcheck`'s `qcheck` dependency to `qcheck-core` + ## 0.21.1 - Roll back the `Shrink.list_spine` fix, as it was utilizing polymorphic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/ppx_deriving_qcheck.opam new/ocaml-qcheck-0.21.2/ppx_deriving_qcheck.opam --- old/ocaml-qcheck-0.21.1/ppx_deriving_qcheck.opam 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/ppx_deriving_qcheck.opam 2023-08-25 10:56:42.000000000 +0200 @@ -1,6 +1,6 @@ opam-version: "2.0" name: "ppx_deriving_qcheck" -version: "0.4.0" +version: "0.4.1" license: "BSD-2-Clause" synopsis: "PPX Deriver for QCheck" @@ -10,7 +10,7 @@ depends: [ "dune" {>= "2.8.0"} "ocaml" {>= "4.08.0"} - "qcheck" {>= "0.19"} + "qcheck-core" {>= "0.19"} "ppxlib" {>= "0.22.0"} "ppx_deriving" {>= "5.2.1"} "odoc" {with-doc} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/qcheck-alcotest.opam new/ocaml-qcheck-0.21.2/qcheck-alcotest.opam --- old/ocaml-qcheck-0.21.1/qcheck-alcotest.opam 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/qcheck-alcotest.opam 2023-08-25 10:56:42.000000000 +0200 @@ -5,7 +5,7 @@ license: "BSD-2-Clause" synopsis: "Alcotest backend for qcheck" doc: ["http://c-cube.github.io/qcheck/"] -version: "0.21.1" +version: "0.21.2" tags: [ "test" "quickcheck" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/qcheck-core.opam new/ocaml-qcheck-0.21.2/qcheck-core.opam --- old/ocaml-qcheck-0.21.1/qcheck-core.opam 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/qcheck-core.opam 2023-08-25 10:56:42.000000000 +0200 @@ -5,7 +5,7 @@ license: "BSD-2-Clause" synopsis: "Core qcheck library" doc: ["http://c-cube.github.io/qcheck/"] -version: "0.21.1" +version: "0.21.2" tags: [ "test" "property" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/qcheck-ounit.opam new/ocaml-qcheck-0.21.2/qcheck-ounit.opam --- old/ocaml-qcheck-0.21.1/qcheck-ounit.opam 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/qcheck-ounit.opam 2023-08-25 10:56:42.000000000 +0200 @@ -5,7 +5,7 @@ homepage: "https://github.com/c-cube/qcheck/" doc: ["http://c-cube.github.io/qcheck/"] synopsis: "OUnit backend for qcheck" -version: "0.21.1" +version: "0.21.2" tags: [ "qcheck" "quickcheck" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/qcheck.opam new/ocaml-qcheck-0.21.2/qcheck.opam --- old/ocaml-qcheck-0.21.1/qcheck.opam 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/qcheck.opam 2023-08-25 10:56:42.000000000 +0200 @@ -5,7 +5,7 @@ homepage: "https://github.com/c-cube/qcheck/" license: "BSD-2-Clause" doc: ["http://c-cube.github.io/qcheck/"] -version: "0.21.1" +version: "0.21.2" tags: [ "test" "property" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/src/core/QCheck.ml new/ocaml-qcheck-0.21.2/src/core/QCheck.ml --- old/ocaml-qcheck-0.21.1/src/core/QCheck.ml 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/src/core/QCheck.ml 2023-08-25 10:56:42.000000000 +0200 @@ -760,7 +760,7 @@ match l with | [] -> () | [_] -> yield [] - | [x;y] -> yield []; yield [x]; yield [y] + | [x;y] -> yield []; yield [x]; if (try x <> y with Invalid_argument _ -> x != y) then yield [y] | _::_ -> let len = List.length l in let xs,ys = split l ((1 + len) / 2) [] in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml4.32 new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml4.32 --- old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml4.32 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml4.32 2023-08-25 10:56:42.000000000 +0200 @@ -74,7 +74,6 @@ [1; 1] [] [1] -[1] [0; 1] [1; 0] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml4.64 new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml4.64 --- old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml4.64 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml4.64 2023-08-25 10:56:42.000000000 +0200 @@ -106,7 +106,6 @@ [1; 1] [] [1] -[1] [0; 1] [1; 0] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml5.32 new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml5.32 --- old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml5.32 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml5.32 2023-08-25 10:56:42.000000000 +0200 @@ -84,7 +84,6 @@ [2; 2] [] [2] -[2] [1; 2] [2; 1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml5.64 new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml5.64 --- old/ocaml-qcheck-0.21.1/test/core/QCheck_expect_test.expected.ocaml5.64 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/core/QCheck_expect_test.expected.ocaml5.64 2023-08-25 10:56:42.000000000 +0200 @@ -116,7 +116,6 @@ [2; 2] [] [2] -[2] [1; 2] [2; 1] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/core/QCheck_unit_tests.ml new/ocaml-qcheck-0.21.2/test/core/QCheck_unit_tests.ml --- old/ocaml-qcheck-0.21.1/test/core/QCheck_unit_tests.ml 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/core/QCheck_unit_tests.ml 2023-08-25 10:56:42.000000000 +0200 @@ -85,8 +85,8 @@ List.iter (alco_check Alcotest.string (trace_false Shrink.string) "on repeated failure") [ ("string \"\"", "", []); ("string \"a\"", "a", [""]); - ("string \"aa\"", "aa", [""; "a"; "a"]); - ("string \"aaaa\"", "aaaa", ["aa"; "aa"; "aaa"; "aaa"]); + ("string \"aa\"", "aa", [""; "a"]); + ("string \"aaaa\"", "aaaa", ["aa"; "aa"; "aaa"]); ("string \"abcd\"", "abcd", ["ab"; "cd"; "acd"; "bcd"; "aacd"; "abbd"; "abcc"]); ("string \"E'*\"", "E'*", ["E'"; "*"; "E*"; "'*"; "S'*"; "L'*"; "H'*"; "F'*"; "ED*"; "E5*"; "E.*"; "E**"; "E(*"; "E'E"; "E'7"; "E'0"; "E'-"; "E'+"]); @@ -101,7 +101,7 @@ "vi5x92mgG"; "vi5x92sgG"; "vi5x92vgG"; "vi5x92wgG"; "vi5x92xdG"; "vi5x92xfG"; "vi5x92xgT"; "vi5x92xgM"; "vi5x92xgJ"; "vi5x92xgH"]); - ("string \"~~~~\"", "~~~~", ["~~"; "~~"; "~~~"; "~~~"; "p~~~"; "w~~~"; "{~~~"; "}~~~"; "~p~~"; + ("string \"~~~~\"", "~~~~", ["~~"; "~~"; "~~~"; "p~~~"; "w~~~"; "{~~~"; "}~~~"; "~p~~"; "~w~~"; "~{~~"; "~}~~"; "~~p~"; "~~w~"; "~~{~"; "~~}~"; "~~~p"; "~~~w"; "~~~{"; "~~~}"]); ]; List.iter (alco_check Alcotest.string (trace_true Shrink.string) "on repeated success") @@ -113,6 +113,42 @@ ("string \"E'*\"", "E'*", ["E'"; ""]); ("string \"vi5x92xgG\"", "vi5x92xgG", ["vi5x9"; "vi5"; "vi"; ""]); ] + let test_int_list () = + List.iter (alco_check Alcotest.(list int) (trace_false (Shrink.list_spine)) "on repeated failure") + [ ("list int [0]", [0], [[]]); + ("list int [0;1]", [0;1], [[]; [0]; [1]]); + ("list int [0;1;2]", [0;1;2], [[0; 1]; [2]; [0; 2]; [1; 2]]); + ("list int [0;1;2;3]", [0;1;2;3], [[0; 1]; [2; 3]; [0; 2; 3]; [1; 2; 3]]); + ("list int [0;0]", [0;0], [[]; [0]]); + ("list int [0;0;0]", [0;0;0], [[0; 0]; [0]; [0; 0]]); + ("list int [0;0;0;0]", [0;0;0;0], [[0; 0]; [0; 0]; [0; 0; 0]]); ]; + List.iter (alco_check Alcotest.(list int) (trace_true (Shrink.list_spine)) "on repeated success") + [ ("list int [0]", [0], [[]]); + ("list int [0;1]", [0;1], [[]]); + ("list int [0;1;2]", [0;1;2], [[0; 1]; []]); + ("list int [0;1;2;3]", [0;1;2;3], [[0; 1]; []]); + ("list int [0;0]", [0;0], [[]]); + ("list int [0;0;0]", [0;0;0], [[0; 0]; []]); + ("list int [0;0;0;0]", [0;0;0;0], [[0; 0]; []]); ] + + let test_int32_list () = (* use int32 as a boxed type and List.map to force run-time allocations *) + List.iter (alco_check Alcotest.(list int32) (trace_false (Shrink.list_spine)) "on repeated failure") + [ ("list int32 [0l]", List.map Int32.of_int [0], [[]]); + ("list int32 [0l;1l]", List.map Int32.of_int [0;1], [[]; [0l]; [1l]]); + ("list int32 [0l;1l;2l]", List.map Int32.of_int [0;1;2], [[0l; 1l]; [2l]; [0l; 2l]; [1l; 2l]]); + ("list int32 [0l;1l;2l;3l]", List.map Int32.of_int [0;1;2;3], [[0l; 1l]; [2l; 3l]; [0l; 2l; 3l]; [1l; 2l; 3l]]); + ("list int32 [0l;0l]", List.map Int32.of_int [0;0], [[]; [0l]]); + ("list int32 [0l;0l;0l]", List.map Int32.of_int [0;0;0], [[0l; 0l]; [0l]; [0l; 0l]]); + ("list int32 [0l;0l;0l;0l]", List.map Int32.of_int [0;0;0;0], [[0l; 0l]; [0l; 0l]; [0l; 0l; 0l]]); ]; + List.iter (alco_check Alcotest.(list int32) (trace_true (Shrink.list_spine)) "on repeated success") + [ ("list int [0l]", List.map Int32.of_int [0], [[]]); + ("list int [0l;1l]", List.map Int32.of_int [0;1], [[]]); + ("list int [0l;1l;2l]", List.map Int32.of_int [0;1;2], [[0l; 1l]; []]); + ("list int [0l;1l;2l;3l]", List.map Int32.of_int [0;1;2;3], [[0l; 1l]; []]); + ("list int [0l;0l]", List.map Int32.of_int [0;0], [[]]); + ("list int [0l;0l;0l]", List.map Int32.of_int [0;0;0], [[0l; 0l]; []]); + ("list int [0l;0l;0l;0l]", List.map Int32.of_int [0;0;0;0], [[0l; 0l]; []]); ] + let test_list_spine_compare () = let run_test () = QCheck.Shrink.list_spine [pred;succ] ignore in Alcotest.(check unit) "doesn't compare elements" () @@ run_test () @@ -125,6 +161,8 @@ test_case "char_numeral" `Quick test_char_numeral; test_case "char_printable" `Quick test_char_printable; test_case "string" `Quick test_string; + test_case "int list" `Quick test_int_list; + test_case "int32 list" `Quick test_int32_list; test_case "list_spine" `Quick test_list_spine_compare; ]) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/ppx_deriving_qcheck/deriver/qcheck/dune new/ocaml-qcheck-0.21.2/test/ppx_deriving_qcheck/deriver/qcheck/dune --- old/ocaml-qcheck-0.21.1/test/ppx_deriving_qcheck/deriver/qcheck/dune 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/ppx_deriving_qcheck/deriver/qcheck/dune 2023-08-25 10:56:42.000000000 +0200 @@ -8,5 +8,5 @@ test_tuple test_variants test_record) - (libraries qcheck-alcotest ppxlib ppx_deriving_qcheck qcheck) + (libraries qcheck-alcotest ppxlib ppx_deriving_qcheck qcheck-core) (preprocess (pps ppxlib.metaquot ppx_deriving_qcheck))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-qcheck-0.21.1/test/ppx_deriving_qcheck/deriver/qcheck2/dune new/ocaml-qcheck-0.21.2/test/ppx_deriving_qcheck/deriver/qcheck2/dune --- old/ocaml-qcheck-0.21.1/test/ppx_deriving_qcheck/deriver/qcheck2/dune 2023-05-19 17:48:21.000000000 +0200 +++ new/ocaml-qcheck-0.21.2/test/ppx_deriving_qcheck/deriver/qcheck2/dune 2023-08-25 10:56:42.000000000 +0200 @@ -8,5 +8,5 @@ test_tuple test_variants test_record) - (libraries qcheck-alcotest ppxlib ppx_deriving_qcheck qcheck) + (libraries qcheck-alcotest ppxlib ppx_deriving_qcheck qcheck-core) (preprocess (pps ppxlib.metaquot ppx_deriving_qcheck)))