New Upstream Snapshot - ounit

Ready changes

Summary

Merged new upstream version: 2.2.6+git20221028.1.8573d37 (was: 2.2.6).

Diff

diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index b6b01c9..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-_build/
-*.merlin
-*.install
-*.swp
-/dist/
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 851a259..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-language: c
-sudo: required
-install: test -e .travis.opam.sh || wget https://raw.githubusercontent.com/ocaml/ocaml-ci-scripts/master/.travis-opam.sh
-script: bash -ex .travis-opam.sh
-env:
-  global:
-    - OUNIT_CI=true
-matrix:
-  include:
-    - name: "ounit: linux"
-      os: linux
-      env: OCAML_VERSION=4.10 PACKAGE="ounit"
-
-    - name: "ounit-lwt: linux"
-      os: linux
-      env: OCAML_VERSION=4.10 PACKAGE="ounit-lwt"
-
-    - name: "ounit2: linux"
-      apt:
-        packages:
-          - libxml2-utils
-      os: linux
-      env: OCAML_VERSION=4.10 PACKAGE="ounit2"
-
-    - name: "ounit2-lwt: linux"
-      os: linux
-      env: OCAML_VERSION=4.10 PACKAGE="ounit2-lwt"
-
-    - name: "ounit2: reverse dependencies with linux"
-      os: linux
-      env: OCAML_VERSION=4.10 PACKAGE="ounit2" REVDEPS="mock-ounit junit_ounit pa_ounit qcheck-ounit" POST_INSTALL_HOOK="opam install -t fileutils"
-
-    - name: "ounit2: old ocaml release with linux"
-      os: linux
-      env: OCAML_VERSION=4.04 PACKAGE="ounit2"
-
-    - name: "ounit: MacOSX"
-      os: osx
-      env: OCAML_VERSION=4.10 PACKAGE="ounit" REVDEPS="junit_ounit"
-      cache:
-        directories:
-          - $HOME/Library/Caches/Homebrew
-
-    - name: "ounit2: MacOSX"
-      os: osx
-      env: OCAML_VERSION=4.10 PACKAGE="ounit2" REVDEPS="junit_ounit"
-      cache:
-        directories:
-          - $HOME/Library/Caches/Homebrew
-
-    - name: "ounit2-lwt: MacOSX"
-      os: osx
-      env: OCAML_VERSION=4.10 PACKAGE="ounit2-lwt"
-      cache:
-        directories:
-          - $HOME/Library/Caches/Homebrew
diff --git a/CHANGES.md b/CHANGES.md
index ec34471..ae43289 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,17 @@
+## unreleased
+
+### Fixed
+
+- Handle end of channel in Seq API.
+  #95, @Leonidas-from-XIV
+
+- Windows and OCaml 5 compatibility.
+  #96, @MisterDA
+
+### Changed
+- Update to Dune 3.0 for newer stanzas and warnings.
+  #96, @MisterDA
+
 ## v2.2.6 - 2022-02-08
 
 ### Fixed
@@ -121,19 +135,19 @@
 - fix safe-string compatibility issuesi, thanks to Christoph Spiel
   (Closes: OF#1760, OF#1761)
 - fix some format string errors, thanks to Damien Doligez (Closes: OF#1422)
-- fix backward incompatiblity with OUnit v1 (Closes: OF#1392)
+- fix backward incompatibility with OUnit v1 (Closes: OF#1392)
 
 ## v2.0.0
 
 - major rewrite of all the code!
-- implements a quickfix compatible way of outputing failures, it jumps to
+- implements a quickfix compatible way of outputting failures, it jumps to
   the a position in the logfile to help you debug the problem.
 - better configuration setup: environment variable, command line options,
   configuration files (OUnitConf)
 - improved output of the tests: output HTML report, output JUnit report,
   systematic logging to a file (OUnitLogger*)
 - choose how to run a test: in parallel using processes (auto-detect number
-  of CPU), concurrently using threads or sequentialy as before.
+  of CPU), concurrently using threads or sequentially as before.
 - choose which test to run: just run test in sequence (simple) or run the
   tests that failed in the last run first and skip the success if they are
   still failing (failfirst) (OUnitChooser)
@@ -178,7 +192,7 @@
 - Add backtrace support (Closes: OF#639), thanks to Michael Ekstrand
 - Use OASIS
 - Move to OCaml Forge: http://ounit.forge.ocamlcore.org
-- Maintainance is now done by Sylvain Le Gall (OCamlCore SARL), thanks to
+- Maintenance is now done by Sylvain Le Gall (OCamlCore SARL), thanks to
   Maas-Maarten Zeeman for all his work
 
 ## v1.0.3
@@ -210,7 +224,7 @@
 
 ## v0.0.2
 
-- Added assert_raises which checkes if an exception is raised.
+- Added assert_raises which checks if an exception is raised.
   (thanks go to Keita Yamaguchi, for the idea)
 - Fixed (hopefully) the .depend file
 
diff --git a/README.md b/README.md
index 5433f4e..d3c167b 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
 OUnit - xUnit testing framework for OCaml
 =========================================================================
 
-[![Travis status][travis-img]][travis]
-[![AppVeyor status][appveyor-img]][appveyor]
+[![GitHub Actions][gha-badge]][gha]
 
 OUnit is a unit test framework for OCaml. It allows one to easily create
 unit-tests for OCaml code. It is loosely based on [HUnit], a unit testing
@@ -14,12 +13,10 @@ Features:
 - JUnit report generation
 - HTML report generation
 
-[HUnit]:          http://hunit.sourceforge.net/
-[JUnit]:          http://junit.org/
-[travis]:         https://travis-ci.org/gildor478/ounit
-[travis-img]:     https://travis-ci.org/gildor478/ounit.svg?branch=master
-[appveyor]:       https://ci.appveyor.com/project/gildor478/ounit
-[appveyor-img]:   https://ci.appveyor.com/api/projects/status/g86mhhc0dda25llx/branch/master?svg=true
+[HUnit]:          https://hunit.sourceforge.net/
+[JUnit]:          https://junit.org/
+[gha]:            https://github.com/gildor478/ounit/actions/workflows/main.yml
+[gha-badge]:      https://github.com/gildor478/ounit/actions/workflows/main.yml/badge.svg
 [opam]:           https://opam.ocaml.org
 
 Installation
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index 1625a5a..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-platform:
-  - x86
-
-environment:
-  FORK_USER: ocaml
-  FORK_BRANCH: master
-  CYG_ROOT: C:\cygwin64
-  EXTRA_DEPS: dune
-  OUNIT_CI: true
-  PACKAGE: ounit2
-
-install:
-  - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/$env:FORK_USER/ocaml-ci-scripts/$env:FORK_BRANCH/appveyor-install.ps1"))
-
-build_script:
-  - call %CYG_ROOT%\bin\bash.exe -l %APPVEYOR_BUILD_FOLDER%\appveyor-opam.sh
diff --git a/debian/changelog b/debian/changelog
index c0c12bc..55cb50e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ounit (2.2.6+git20221028.1.8573d37-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 08 Feb 2023 12:43:16 -0000
+
 ounit (2.2.6-1) unstable; urgency=medium
 
   * Team upload
diff --git a/dune-project b/dune-project
index ff39e11..527a6ed 100644
--- a/dune-project
+++ b/dune-project
@@ -1,4 +1,4 @@
-(lang dune 1.11)
+(lang dune 3.0)
 (name ounit)
-(version v2.2.6)
 (explicit_js_mode)
+(formatting (enabled_for dune))
diff --git a/examples/dune b/examples/dune
index 0a65319..c5ba983 100644
--- a/examples/dune
+++ b/examples/dune
@@ -1,4 +1,4 @@
 (tests
-  (names test_list test_stack)
-  (package ounit2)
-  (libraries ounit2))
+ (names test_list test_stack)
+ (package ounit2)
+ (libraries ounit2))
diff --git a/ounit-lwt.opam b/ounit-lwt.opam
index 7ce039d..1af4aa9 100644
--- a/ounit-lwt.opam
+++ b/ounit-lwt.opam
@@ -1,12 +1,14 @@
-version: "2.2.6"
 opam-version: "2.0"
-maintainer: "Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"
-authors: [ "Sylvain Le Gall" ]
-homepage: "https://github.com/gildor478/ounit"
-dev-repo: "git+https://github.com/gildor478/ounit.git"
-bug-reports: "https://github.com/gildor478/ounit/issues"
-doc: "https://gildor478.github.io/ounit/"
+synopsis: "This is a transition package, ounit-lwt is now ounit2-lwt"
+description: """
+More details for the transition:
+https://github.com/gildor478/ounit#transition-to-ounit2
+"""
+maintainer: ["Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"]
+authors: ["Sylvain Le Gall"]
 license: "MIT"
+homepage: "https://github.com/gildor467/ounit"
+bug-reports: "https://github.com/gildor467/ounit/issues"
 depends: [
   "ocamlfind" {build}
   "ounit2-lwt" {= version}
@@ -14,8 +16,4 @@ depends: [
 install: [
   [make "install-ounit-lwt" "version=%{version}%"]
 ]
-synopsis: "This is a transition package, ounit-lwt is now ounit2-lwt"
-description:"""
-More details for the transition:
-https://github.com/gildor478/ounit#transition-to-ounit2
-"""
\ No newline at end of file
+dev-repo: "git+https://github.com/gildor467/ounit.git"
diff --git a/ounit.opam b/ounit.opam
index a4f87a5..1249863 100644
--- a/ounit.opam
+++ b/ounit.opam
@@ -1,12 +1,14 @@
-version: "2.2.6"
 opam-version: "2.0"
-maintainer: "Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"
-authors: [ "Maas-Maarten Zeeman" "Sylvain Le Gall" ]
-homepage: "https://github.com/gildor478/ounit"
-dev-repo: "git+https://github.com/gildor478/ounit.git"
-bug-reports: "https://github.com/gildor478/ounit/issues"
-doc: "https://gildor478.github.io/ounit/"
+synopsis: "This is a transition package, ounit-lwt is now ounit2-lwt"
+description: """
+More details for the transition:
+https://github.com/gildor478/ounit#transition-to-ounit2
+"""
+maintainer: ["Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"]
+authors: ["Sylvain Le Gall"]
 license: "MIT"
+homepage: "https://github.com/gildor467/ounit"
+bug-reports: "https://github.com/gildor467/ounit/issues"
 depends: [
   "ocamlfind" {build}
   "ounit2" {= version}
@@ -14,8 +16,4 @@ depends: [
 install: [
   [make "install-ounit" "version=%{version}%"]
 ]
-synopsis: "This is a transition package, ounit is now ounit2"
-description:"""
-More details for the transition:
-https://github.com/gildor478/ounit#transition-to-ounit2
-"""
\ No newline at end of file
+dev-repo: "git+https://github.com/gildor467/ounit.git"
diff --git a/ounit2-lwt.opam b/ounit2-lwt.opam
index 493641f..ce87c36 100644
--- a/ounit2-lwt.opam
+++ b/ounit2-lwt.opam
@@ -1,25 +1,32 @@
-version: "2.2.6"
 opam-version: "2.0"
-maintainer: "Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"
-authors: [ "Sylvain Le Gall" ]
-homepage: "https://github.com/gildor478/ounit"
-dev-repo: "git+https://github.com/gildor478/ounit.git"
-bug-reports: "https://github.com/gildor478/ounit/issues"
-doc: "https://gildor478.github.io/ounit/"
+synopsis: "OUnit testing framework"
+description: """
+This library contains helper functions for building Lwt tests using OUnit.
+"""
+maintainer: ["Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"]
+authors: ["Sylvain Le Gall"]
 license: "MIT"
+homepage: "https://github.com/gildor467/ounit"
+bug-reports: "https://github.com/gildor467/ounit/issues"
 depends: [
+  "dune" {>= "3.0"}
   "ocaml" {>= "4.04.0"}
-  "dune" {>= "1.11.0"}
   "lwt"
   "seq"
   "ounit2" {= version}
+  "odoc" {with-doc}
 ]
 build: [
-  ["dune" "build" "-p" name "-j" jobs]
-  ["dune" "runtest" "-p" name "-j" jobs] {with-test}
-  ["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}
+  [
+    "dune"
+    "build"
+    "-p"
+    name
+    "-j"
+    jobs
+    "@install"
+    "@runtest" {with-test}
+    "@doc" {with-doc}
+  ]
 ]
-synopsis: "OUnit testing framework (Lwt)"
-description:"""
-This library contains helper functions for building Lwt tests using OUnit.
-"""
\ No newline at end of file
+dev-repo: "git+https://github.com/gildor467/ounit.git"
diff --git a/ounit2.opam b/ounit2.opam
index 102f3d0..bf8891c 100644
--- a/ounit2.opam
+++ b/ounit2.opam
@@ -1,29 +1,35 @@
-version: "2.2.6"
 opam-version: "2.0"
-maintainer: "Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"
-authors: [ "Maas-Maarten Zeeman" "Sylvain Le Gall" ]
-homepage: "https://github.com/gildor478/ounit"
-dev-repo: "git+https://github.com/gildor478/ounit.git"
-bug-reports: "https://github.com/gildor478/ounit/issues"
-doc: "https://gildor478.github.io/ounit/"
+synopsis: "OUnit testing framework"
+description: """
+OUnit is a unit test framework for OCaml. It allows one to easily
+create unit-tests for OCaml code. It is loosely based on [HUnit], a
+unit testing framework for Haskell. It is similar to [JUnit], and
+other XUnit testing frameworks.
+"""
+maintainer: ["Sylvain Le Gall <sylvaini+ocaml@le-gall.net>"]
+authors: ["Maas-Maarten Zeeman" "Sylvain Le Gall"]
 license: "MIT"
+homepage: "https://github.com/gildor467/ounit"
+bug-reports: "https://github.com/gildor467/ounit/issues"
 depends: [
+  "dune" {>= "3.0"}
   "ocaml" {>= "4.04.0"}
-  "dune" {>= "1.11.0"}
-  "base-bytes"
   "base-unix"
   "seq"
   "stdlib-shims"
+  "odoc" {with-doc}
 ]
 build: [
-  ["dune" "build" "-p" name "-j" jobs]
-  ["dune" "runtest" "-p" name "-j" jobs] {with-test}
-  ["dune" "build" "@doc" "-p" name "-j" jobs] {with-doc}
+  [
+    "dune"
+    "build"
+    "-p"
+    name
+    "-j"
+    jobs
+    "@install"
+    "@runtest" {with-test}
+    "@doc" {with-doc}
+  ]
 ]
-synopsis: "OUnit testing framework"
-description: """
-OUnit is a unit test framework for OCaml. It allows one to easily create
-unit-tests for OCaml code. It is loosely based on [HUnit], a unit testing
-framework for Haskell. It is similar to [JUnit], and other XUnit testing
-frameworks.
-"""
\ No newline at end of file
+dev-repo: "git+https://github.com/gildor467/ounit.git"
diff --git a/src/lib/oUnit/dune b/src/lib/oUnit/dune
index 3b430d6..73edda4 100644
--- a/src/lib/oUnit/dune
+++ b/src/lib/oUnit/dune
@@ -1,3 +1,3 @@
 (documentation
-  (package ounit)
-  (mld_files index))
+ (package ounit)
+ (mld_files index))
diff --git a/src/lib/ounit-lwt/dune b/src/lib/ounit-lwt/dune
index b1d7f26..c368ac0 100644
--- a/src/lib/ounit-lwt/dune
+++ b/src/lib/ounit-lwt/dune
@@ -1,3 +1,3 @@
 (documentation
-  (package ounit-lwt)
-  (mld_files index))
+ (package ounit-lwt)
+ (mld_files index))
diff --git a/src/lib/ounit2-lwt/dune b/src/lib/ounit2-lwt/dune
index 720ff13..9fda215 100644
--- a/src/lib/ounit2-lwt/dune
+++ b/src/lib/ounit2-lwt/dune
@@ -1,4 +1,4 @@
 (library
-  (name oUnitLwt)
-  (public_name ounit2-lwt)
-  (libraries lwt lwt.unix ounit2.advanced))
+ (name oUnitLwt)
+ (public_name ounit2-lwt)
+ (libraries lwt lwt.unix ounit2.advanced))
diff --git a/src/lib/ounit2/advanced/dune b/src/lib/ounit2/advanced/dune
index 014c5b1..6792008 100644
--- a/src/lib/ounit2/advanced/dune
+++ b/src/lib/ounit2/advanced/dune
@@ -1,10 +1,14 @@
 (rule
-  (target oUnitLoggerHTMLData.ml)
-  (deps (:data_gen ../../../tools/data_gen/data_gen.exe) oUnit.css oUnit.js)
-  (action (run %{data_gen})))
+ (target oUnitLoggerHTMLData.ml)
+ (deps
+  (:data_gen ../../../tools/data_gen/data_gen.exe)
+  oUnit.css
+  oUnit.js)
+ (action
+  (run %{data_gen})))
 
 (library
-  (name oUnitAdvanced)
-  (public_name ounit2.advanced)
-  (wrapped false)
-  (libraries unix bytes seq stdlib-shims))
+ (name oUnitAdvanced)
+ (public_name ounit2.advanced)
+ (wrapped false)
+ (libraries unix seq stdlib-shims))
diff --git a/src/lib/ounit2/advanced/oUnitAssert.ml b/src/lib/ounit2/advanced/oUnitAssert.ml
index 4571ad8..f0c1612 100644
--- a/src/lib/ounit2/advanced/oUnitAssert.ml
+++ b/src/lib/ounit2/advanced/oUnitAssert.ml
@@ -50,9 +50,10 @@ let assert_bool msg b =
 let assert_string str =
   if not (str = "") then assert_failure str
 
-(* TODO: Use Seq.forever from OCaml >= 4.14 *)
-let rec seq_forever f () =
-  Seq.Cons (f(), seq_forever f)
+let rec seq_of_channel channel () =
+  match input_char channel with
+  | exception End_of_file -> Seq.Nil
+  | char -> Seq.Cons (char, seq_of_channel channel)
 
 let assert_equal ?ctxt ?(cmp = ( = )) ?printer ?pp_diff ?msg expected actual =
   let get_error_string () =
@@ -292,7 +293,7 @@ let assert_command
          in
            (* Dump process output to stderr *)
            begin
-             let chn = open_in fn_out in
+             let chn = open_in_bin fn_out in
              let buff = Bytes.make 4096 'X' in
              let len = ref (-1) in
                while !len <> 0 do
@@ -314,9 +315,9 @@ let assert_command
              real_exit_code;
 
            begin
-             let chn = open_in fn_out in
+             let chn = open_in_bin fn_out in
                try
-                 foutput (seq_forever (fun () -> input_char chn))
+                 foutput (seq_of_channel chn)
                with e ->
                  close_in chn;
                  raise e
@@ -351,4 +352,3 @@ let assert_raises ?msg exn (f: unit -> 'a) =
 
       | Some e ->
           assert_equal ?msg ~printer:pexn exn e
-
diff --git a/src/lib/ounit2/advanced/oUnitCache.ml b/src/lib/ounit2/advanced/oUnitCache.ml
index 1109034..f5ec897 100644
--- a/src/lib/ounit2/advanced/oUnitCache.ml
+++ b/src/lib/ounit2/advanced/oUnitCache.ml
@@ -48,7 +48,7 @@ let load conf =
     | Some fn ->
         begin
           try
-            let chn = open_in fn in
+            let chn = open_in_bin fn in
             let cache : cache =
               try
                 Marshal.from_channel chn
@@ -69,7 +69,7 @@ let dump conf cache =
     | Some fn ->
         begin
           try
-            let chn = open_out fn in
+            let chn = open_out_bin fn in
               Marshal.to_channel chn cache [];
               close_out chn
           with _ ->
diff --git a/src/lib/ounit2/advanced/oUnitConf.ml b/src/lib/ounit2/advanced/oUnitConf.ml
index 9dff5d1..d87caa9 100644
--- a/src/lib/ounit2/advanced/oUnitConf.ml
+++ b/src/lib/ounit2/advanced/oUnitConf.ml
@@ -309,7 +309,7 @@ let file_parse conf fn =
                   try
                     Scanf.sscanf str "%s = %s" (fun name value -> name, value)
                   with Scanf.Scan_failure _ ->
-                    failwithf "Unparseable line: %s\n%s" line origin
+                    failwithf "Unparsable line: %s\n%s" line origin
                 end
             in
               set ~origin conf name value
diff --git a/src/lib/ounit2/advanced/oUnitLoggerStd.ml b/src/lib/ounit2/advanced/oUnitLoggerStd.ml
index 08f7a6e..c173359 100644
--- a/src/lib/ounit2/advanced/oUnitLoggerStd.ml
+++ b/src/lib/ounit2/advanced/oUnitLoggerStd.ml
@@ -211,7 +211,7 @@ let format_log_event ev =
             | GStart -> ispf "Start testing."
             | GEnd -> ispf "End testing."
             | GResults (running_time, results, test_case_count) ->
-                let countr = count results in
+                let counter = count results in
                 ispf "==============";
                 ispf "Summary:";
                 List.iter
@@ -223,11 +223,11 @@ let format_log_event ev =
                   (List.length results) running_time;
                 ispf "Cases: %d." test_case_count;
                 ispf "Tried: %d." (List.length results);
-                ispf "Errors: %d." (countr is_error);
-                ispf "Failures: %d." (countr is_failure);
-                ispf "Skip: %d." (countr is_skip);
-                ispf "Todo: %d." (countr is_todo);
-                ispf "Timeout: %d." (countr is_timeout)
+                ispf "Errors: %d." (counter is_error);
+                ispf "Failures: %d." (counter is_failure);
+                ispf "Skip: %d." (counter is_skip);
+                ispf "Todo: %d." (counter is_todo);
+                ispf "Timeout: %d." (counter is_timeout)
           end
 
       | TestEvent (path, e) ->
diff --git a/src/lib/ounit2/dune b/src/lib/ounit2/dune
index 83b60bc..c37911d 100644
--- a/src/lib/ounit2/dune
+++ b/src/lib/ounit2/dune
@@ -1,9 +1,9 @@
 (library
-  (name oUnit)
-  (public_name ounit2)
-  (wrapped false)
-  (libraries unix seq ounit2.advanced))
+ (name oUnit)
+ (public_name ounit2)
+ (wrapped false)
+ (libraries unix seq ounit2.advanced))
 
 (documentation
-  (package ounit2)
-  (mld_files index))
+ (package ounit2)
+ (mld_files index))
diff --git a/src/lib/ounit2/oUnit.mli b/src/lib/ounit2/oUnit.mli
index baf7b3d..5bc96fe 100644
--- a/src/lib/ounit2/oUnit.mli
+++ b/src/lib/ounit2/oUnit.mli
@@ -234,7 +234,7 @@ type path = node list (** The path to the test (in reverse order). *)
 val string_of_node : node -> string
 
 (** Make a string from a path. The path will be reversed before it is
-    tranlated into a string *)
+    translated into a string *)
 val string_of_path : path -> string
 
 (** Returns a list with paths of the test *)
diff --git a/src/lib/ounit2/threads/dune b/src/lib/ounit2/threads/dune
index 0bd35e1..4e4da3d 100644
--- a/src/lib/ounit2/threads/dune
+++ b/src/lib/ounit2/threads/dune
@@ -1,5 +1,5 @@
 (library
-  (name oUnitThreads)
-  (public_name ounit2.threads)
-  (private_modules oUnitRunnerThreads)
-  (libraries threads ounit2))
+ (name oUnitThreads)
+ (public_name ounit2.threads)
+ (private_modules oUnitRunnerThreads)
+ (libraries threads ounit2))
diff --git a/src/tools/data_gen/data_gen.ml b/src/tools/data_gen/data_gen.ml
index a3f12ec..1b9e806 100644
--- a/src/tools/data_gen/data_gen.ml
+++ b/src/tools/data_gen/data_gen.ml
@@ -1,5 +1,5 @@
 let file_to_string f =
-  let chan = open_in f in
+  let chan = open_in_bin f in
   let len = in_channel_length chan in
   let res = Bytes.create len in
   really_input chan res 0 len;
@@ -10,7 +10,7 @@ let _ =
 
   let css = file_to_string "oUnit.css" in
   let js = file_to_string "oUnit.js" in
-  let chan = open_out "oUnitLoggerHTMLData.ml" in
+  let chan = open_out_bin "oUnitLoggerHTMLData.ml" in
   Printf.fprintf chan
     "let oUnit_css = %S;;
      let oUnit_js = %S;;"
diff --git a/src/tools/data_gen/dune b/src/tools/data_gen/dune
index 9d76b27..4af16d8 100644
--- a/src/tools/data_gen/dune
+++ b/src/tools/data_gen/dune
@@ -1,2 +1,2 @@
 (executable
-  (name data_gen))
+ (name data_gen))
diff --git a/test/JUnit.xsd b/test/JUnit.xsd
index 7a91752..3165def 100644
--- a/test/JUnit.xsd
+++ b/test/JUnit.xsd
@@ -85,7 +85,7 @@ Permission to waive conditions of this license may be requested from Windy Road
                     </xs:attribute>
                     <xs:attribute name="type" type="xs:string" use="required">
                       <xs:annotation>
-                        <xs:documentation xml:lang="en">The type of error that occured. e.g., if a java execption is thrown the full class name of the exception.</xs:documentation>
+                        <xs:documentation xml:lang="en">The type of error that occurred. e.g., if a java exception is thrown the full class name of the exception.</xs:documentation>
                       </xs:annotation>
                     </xs:attribute>
                   </xs:extension>
diff --git a/test/common/dune b/test/common/dune
index 6f93cb6..d4e0b9b 100644
--- a/test/common/dune
+++ b/test/common/dune
@@ -1,6 +1,8 @@
 (library
-  (name testcommon)
-  (modules testCommonRunner segfault)
-  (c_names segfault)
-  (wrapped false)
-  (libraries ounit2 ounit2.advanced))
+ (name testcommon)
+ (modules testCommonRunner segfault)
+ (foreign_stubs
+  (names segfault)
+  (language c))
+ (wrapped false)
+ (libraries ounit2 ounit2.advanced))
diff --git a/test/dune b/test/dune
index cfeb13c..9324f2d 100644
--- a/test/dune
+++ b/test/dune
@@ -1,14 +1,22 @@
 (test
-  (name test)
-  (libraries ounit2 ounit2.advanced str libtest)
-  (package ounit2)
-  (deps
-    test.exe
-    (:fakeHTML fakeHTML/fakeHTML.exe)
-    (:fakeRunner fakeRunner/fakeRunner.exe)
-    (:fakeShared fakeShared/fakeShared.exe)
-    (:fakeBadFinaliser fakeBadFinaliser/fakeBadFinaliser.exe)
-    JUnit.xsd)
-  (action
-    (run %{test} -fakeHTML %{fakeHTML} -fakeRunner %{fakeRunner}
-      -fakeShared %{fakeShared} -fakeBadFinaliser %{fakeBadFinaliser})))
+ (name test)
+ (libraries ounit2 ounit2.advanced str libtest)
+ (package ounit2)
+ (deps
+  test.exe
+  (:fakeHTML fakeHTML/fakeHTML.exe)
+  (:fakeRunner fakeRunner/fakeRunner.exe)
+  (:fakeShared fakeShared/fakeShared.exe)
+  (:fakeBadFinaliser fakeBadFinaliser/fakeBadFinaliser.exe)
+  JUnit.xsd)
+ (action
+  (run
+   %{test}
+   -fakeHTML
+   %{fakeHTML}
+   -fakeRunner
+   %{fakeRunner}
+   -fakeShared
+   %{fakeShared}
+   -fakeBadFinaliser
+   %{fakeBadFinaliser})))
diff --git a/test/fakeBadFinaliser/dune b/test/fakeBadFinaliser/dune
index 784a4ff..3c2e66d 100644
--- a/test/fakeBadFinaliser/dune
+++ b/test/fakeBadFinaliser/dune
@@ -1,3 +1,3 @@
 (executable
-  (name fakeBadFinaliser)
-  (libraries ounit2 testcommon))
+ (name fakeBadFinaliser)
+ (libraries ounit2 testcommon))
diff --git a/test/fakeHTML/dune b/test/fakeHTML/dune
index 25f1a8b..4d7b4a7 100644
--- a/test/fakeHTML/dune
+++ b/test/fakeHTML/dune
@@ -1,3 +1,3 @@
 (executable
-  (name fakeHTML)
-  (libraries ounit2))
+ (name fakeHTML)
+ (libraries ounit2))
diff --git a/test/fakeRunner/dune b/test/fakeRunner/dune
index d792524..6d33063 100644
--- a/test/fakeRunner/dune
+++ b/test/fakeRunner/dune
@@ -1,3 +1,3 @@
 (executable
-  (name fakeRunner)
-  (libraries ounit2 ounit2.threads testcommon))
+ (name fakeRunner)
+ (libraries ounit2 ounit2.threads testcommon))
diff --git a/test/fakeShared/dune b/test/fakeShared/dune
index 7a48617..96fd4cb 100644
--- a/test/fakeShared/dune
+++ b/test/fakeShared/dune
@@ -1,3 +1,3 @@
 (executable
-  (name fakeShared)
-  (libraries ounit2 ounit2.threads))
+ (name fakeShared)
+ (libraries ounit2 ounit2.threads))
diff --git a/test/libtest/dune b/test/libtest/dune
index 16d7555..b736224 100644
--- a/test/libtest/dune
+++ b/test/libtest/dune
@@ -1,4 +1,4 @@
 (library
-  (name libtest)
-  (wrapped false)
-  (libraries ounit2 ounit2.advanced testcommon))
+ (name libtest)
+ (wrapped false)
+ (libraries str ounit2 ounit2.advanced testcommon))
diff --git a/test/lwt/dune b/test/lwt/dune
index d2cb71f..ec979a4 100644
--- a/test/lwt/dune
+++ b/test/lwt/dune
@@ -1,4 +1,4 @@
 (test
-  (name test)
-  (package ounit2-lwt)
-  (libraries ounit2 ounit2-lwt testcommon))
+ (name test)
+ (package ounit2-lwt)
+ (libraries ounit2 ounit2-lwt testcommon))
diff --git a/test/lwt/testRunnerProcesses/dune b/test/lwt/testRunnerProcesses/dune
index e7e5f8e..30f260a 100644
--- a/test/lwt/testRunnerProcesses/dune
+++ b/test/lwt/testRunnerProcesses/dune
@@ -1,6 +1,8 @@
 (test
-  (name testRunnerProcesses)
-  (package ounit2-lwt)
-  (deps test.txt)
-  (libraries ounit2 lwt lwt.unix ounit2-lwt)
-  (action (run %{test} -runner processes)))
+ (name testRunnerProcesses)
+ (package ounit2-lwt)
+ (deps test.txt)
+ (libraries ounit2 lwt lwt.unix ounit2-lwt)
+ (enabled_if (<> %{os_type} Win32))
+ (action
+  (run %{test} -runner processes)))
diff --git a/test/test_byte/dune b/test/test_byte/dune
index ea27b19..a7964ce 100644
--- a/test/test_byte/dune
+++ b/test/test_byte/dune
@@ -1,8 +1,5 @@
 (test
-  (name test_byte)
-  (libraries ounit2 ounit2.advanced str libtest)
-  (package ounit2)
-  (modes byte)
-  (deps test_byte.bc)
-  (action (run %{test})))
-
+ (name test_byte)
+ (libraries ounit2 ounit2.advanced str libtest)
+ (package ounit2)
+ (modes exe shared_object))

More details

Full run details

Historical runs