kcov: add metadata and passthru.tests (#121308)

This commit is contained in:
Léo Gaspard 2021-04-30 21:26:26 +02:00 committed by GitHub
parent 248a57d61a
commit b522e483b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,38 +1,84 @@
{lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, curl, elfutils, python3, libiberty, libopcodes}: { lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, zlib
, curl
, elfutils
, python3
, libiberty
, libopcodes
, runCommand
, gcc
, rustc
}:
stdenv.mkDerivation rec { let
pname = "kcov"; self =
version = "38"; stdenv.mkDerivation rec {
pname = "kcov";
version = "38";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "SimonKagstrom"; owner = "SimonKagstrom";
repo = "kcov"; repo = "kcov";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-6LoIo2/yMUz8qIpwJVcA3qZjjF+8KEM1MyHuyHsQD38="; sha256 = "sha256-6LoIo2/yMUz8qIpwJVcA3qZjjF+8KEM1MyHuyHsQD38=";
}; };
preConfigure = "patchShebangs src/bin-to-c-source.py"; preConfigure = "patchShebangs src/bin-to-c-source.py";
nativeBuildInputs = [ cmake pkg-config python3 ]; nativeBuildInputs = [ cmake pkg-config python3 ];
buildInputs = [ curl zlib elfutils libiberty libopcodes ]; buildInputs = [ curl zlib elfutils libiberty libopcodes ];
strictDeps = true; strictDeps = true;
meta = with lib; { passthru.tests = {
description = "Code coverage tester for compiled programs, Python scripts and shell scripts"; works-on-c = runCommand "works-on-c" {} ''
set -ex
cat - > a.c <<EOF
int main() {}
EOF
${gcc}/bin/gcc a.c -o a.out
${self}/bin/kcov /tmp/kcov ./a.out
test -e /tmp/kcov/index.html
touch $out
set +x
'';
longDescription = '' works-on-rust = runCommand "works-on-rust" {} ''
Kcov is a code coverage tester for compiled programs, Python set -ex
scripts and shell scripts. It allows collecting code coverage cat - > a.rs <<EOF
information from executables without special command-line fn main() {}
arguments, and continuosly produces output from long-running EOF
applications. # Put gcc in the path so that `cc` is found
''; PATH=${gcc}/bin:$PATH ${rustc}/bin/rustc a.rs -o a.out
${self}/bin/kcov /tmp/kcov ./a.out
test -e /tmp/kcov/index.html
touch $out
set +x
'';
};
homepage = "http://simonkagstrom.github.io/kcov/index.html"; meta = with lib; {
license = licenses.gpl2; description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
maintainers = with maintainers; [ gal_bolle ekleog ]; longDescription = ''
platforms = platforms.linux; Kcov is a code coverage tester for compiled programs, Python
}; scripts and shell scripts. It allows collecting code coverage
} information from executables without special command-line
arguments, and continuosly produces output from long-running
applications.
'';
homepage = "http://simonkagstrom.github.io/kcov/index.html";
license = licenses.gpl2;
changelog = "https://github.com/SimonKagstrom/kcov/blob/master/ChangeLog";
maintainers = with maintainers; [ gal_bolle ekleog ];
platforms = platforms.linux;
};
};
in
self