Skip to content

Commit

Permalink
verilog: add tests
Browse files Browse the repository at this point in the history
Run recommended self-tests from iverilog's CI.

Tests add about a minute to the build time on local machine
(2 -> 3 mins).

(cherry picked from commit ba886f7)
  • Loading branch information
drewrisinger authored and veprbl committed Sep 25, 2020
1 parent 27bd57b commit 9d831f8
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions pkgs/applications/science/electronics/verilog/default.nix
@@ -1,7 +1,17 @@
{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses
, bzip2, zlib
# Test inputs
, perl
}:

let
iverilog-test = fetchFromGitHub {
owner = "steveicarus";
repo = "ivtest";
rev = "6882cb8ec08926c4e356c6092f0c5f8c23328d5c";
sha256 = "04sj5nqzwls1y760kgnd9c2whkcrr8kvj9lisd5rvk0w580kjb2x";
};
in
stdenv.mkDerivation rec {
pname = "iverilog";
version = "unstable-2020-08-24";
Expand All @@ -24,6 +34,28 @@ stdenv.mkDerivation rec {

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; {
description = "Icarus Verilog compiler";
homepage = "http://iverilog.icarus.com/";
Expand Down

0 comments on commit 9d831f8

Please sign in to comment.