~ruther/guix-local

ca36b0e0cc683ee13fc06aa6d404f56a3b019600 — Cayetano Santos 7 months ago fdd621b
gnu: nextpnr: Implement built-in tests.

* gnu/packages/electronics.scm (nextpnr)[native-inputs]: Add iverilog
and gzip.
<#:phases>: Add run-tests.

Change-Id: I6e32015b7c0e1250931f3b844d1db705c298278f
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
1 files changed, 29 insertions(+), 1 deletions(-)

M gnu/packages/electronics.scm
M gnu/packages/electronics.scm => gnu/packages/electronics.scm +29 -1
@@ 937,10 937,38 @@ which allows one to install the M8 firmware on any Teensy.")
                  (("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/sanitizers-cmake/cmake")
                   (string-append
                    #$(this-package-native-input "sanitizers-cmake")
                    "/share/sanitizers-cmake/cmake"))))))))
                    "/share/sanitizers-cmake/cmake")))))
            (add-after 'install 'run-tests
              (lambda* (#:key tests? #:allow-other-keys)
                (when tests?
                  (setenv "PATH"
                          (string-append #$output "/bin:" (getenv "PATH")))
                  ;; ice40
                  (invoke "./nextpnr-ice40-test")
                  (chdir "../source")
                  (setenv "NEXTPNR" "nextpnr-ice40")
                  (with-directory-excursion "ice40/smoketest/attosoc"
                    (invoke "./smoketest.sh"))
                  (with-directory-excursion "tests/ice40/regressions"
                    (invoke "make" (string-append
                                    "NPNR=" #$output "/bin/nextpnr-ice40")))
                  ;; generic
                  (setenv "NPNR" "nextpnr-generic")
                  (invoke "nextpnr-generic" "--uarch" "example" "--test")
                  (with-directory-excursion "tests/generic/flow/bel-pin"
                    (invoke "./run.sh"))
                  ;; ecp5
                  (invoke "nextpnr-ecp5"
                          "--um5g-25k" "--package" "CABGA381" "--test")
                  (with-directory-excursion "tests/ecp5/regressions"
                    (invoke "make"
                            (string-append
                             "NPNR=" #$output "/bin/nextpnr-ecp5")))))))))
      (native-inputs
       (list icestorm
             iverilog
             googletest
             gzip
             prjbeyond-db
             prjpeppercorn
             prjtrellis