forked from mirrors/nixpkgs
2f96b9a7b4
* New exposed function, bug fixes: https://github.com/c-cube/qcheck/blob/0.17/CHANGELOG.md#017 * Fix a too liberal testing range causing an integer overflow in stdint which for some reason only qcheck 0.17 and not 0.16 seems to find
48 lines
1.6 KiB
Nix
48 lines
1.6 KiB
Nix
{ lib, fetchurl, fetchpatch, buildDunePackage, qcheck }:
|
|
|
|
buildDunePackage rec {
|
|
pname = "stdint";
|
|
version = "0.7.0";
|
|
|
|
useDune2 = true;
|
|
|
|
minimumOCamlVersion = "4.03";
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/andrenth/ocaml-stdint/releases/download/${version}/stdint-${version}.tbz";
|
|
sha256 = "4fcc66aef58e2b96e7af3bbca9d910aa239e045ba5fb2400aaef67d0041252dc";
|
|
};
|
|
|
|
patches = [
|
|
# fix test bug, remove at next release
|
|
(fetchpatch {
|
|
url = "https://github.com/andrenth/ocaml-stdint/commit/fc64293f99f597cdfd4470954da6fb323988e2af.patch";
|
|
sha256 = "0nxck14vfjfzldsf8cdj2jg1cvhnyh37hqnrcxbdkqmpx4rxkbxs";
|
|
})
|
|
];
|
|
|
|
# 1. disable remaining broken tests, see
|
|
# https://github.com/andrenth/ocaml-stdint/issues/59
|
|
# 2. fix tests to liberal test range
|
|
# https://github.com/andrenth/ocaml-stdint/pull/61
|
|
postPatch = ''
|
|
substituteInPlace tests/stdint_test.ml \
|
|
--replace 'test "An integer should perform left-shifts correctly"' \
|
|
'skip "An integer should perform left-shifts correctly"' \
|
|
--replace 'test "Logical shifts must not sign-extend"' \
|
|
'skip "Logical shifts must not sign-extend"' \
|
|
--replace 'let pos_int = QCheck.map_same_type abs in_range' \
|
|
'let pos_int = QCheck.int_range 0 maxi'
|
|
'';
|
|
|
|
doCheck = true;
|
|
checkInputs = [ qcheck ];
|
|
|
|
meta = {
|
|
description = "Various signed and unsigned integers for OCaml";
|
|
homepage = "https://github.com/andrenth/ocaml-stdint";
|
|
license = lib.licenses.mit;
|
|
maintainers = [ lib.maintainers.gebner ];
|
|
};
|
|
}
|