Merge pull request #97613 from drewrisinger/zhf/verilog

verilog: cleanup & test
This commit is contained in:
Dmitry Kalinkin 2020-09-25 10:37:34 -04:00 committed by GitHub
commit 7867aafa51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,17 @@
{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses { stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses
, bzip2, zlib , bzip2, zlib
# Test inputs
, perl
}: }:
let
iverilog-test = fetchFromGitHub {
owner = "steveicarus";
repo = "ivtest";
rev = "6882cb8ec08926c4e356c6092f0c5f8c23328d5c";
sha256 = "04sj5nqzwls1y760kgnd9c2whkcrr8kvj9lisd5rvk0w580kjb2x";
};
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "iverilog"; pname = "iverilog";
version = "unstable-2020-08-24"; version = "unstable-2020-08-24";
@ -15,11 +25,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
prePatch = ''
substituteInPlace configure.in \
--replace "AC_CHECK_LIB(termcap, tputs)" "AC_CHECK_LIB(termcap, tputs)"
'';
preConfigure = '' preConfigure = ''
chmod +x $PWD/autoconf.sh chmod +x $PWD/autoconf.sh
$PWD/autoconf.sh $PWD/autoconf.sh
@ -29,11 +34,32 @@ stdenv.mkDerivation rec {
buildInputs = [ readline ncurses bzip2 zlib ]; buildInputs = [ readline ncurses bzip2 zlib ];
# tests from .travis.yml
doCheck = true; # runs ``make check``
# most tests pass, but some that rely on exact text of floating-point numbers fail on aarch64.
doInstallCheck = !stdenv.isAarch64;
installCheckInputs = [ perl ];
installCheckPhase = ''
# copy tests to allow writing results
export TESTDIR=$(mktemp -d)
cp -r ${iverilog-test}/* $TESTDIR
pushd $TESTDIR
# Run & check tests
PATH=$out/bin:$PATH perl vvp_reg.pl
# Check the tests, will error if unexpected tests fail. Some failures MIGHT be normal.
diff regression_report-devel.txt regression_report.txt
PATH=$out/bin:$PATH perl vpi_reg.pl
popd
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Icarus Verilog compiler"; description = "Icarus Verilog compiler";
repositories.git = "https://github.com/steveicarus/iverilog.git";
homepage = "http://iverilog.icarus.com/"; homepage = "http://iverilog.icarus.com/";
license = licenses.lgpl21; license = with licenses; [ gpl2Plus lgpl21Plus] ;
maintainers = with maintainers; [ winden ]; maintainers = with maintainers; [ winden ];
platforms = platforms.all; platforms = platforms.all;
}; };