Skip to content

Commit d663a1a

Browse files
committed
Add I2C unit test to clash-cores:unittests
1 parent a331846 commit d663a1a

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

clash-cores/src/Clash/Cores/I2C.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{-# LANGUAGE CPP #-}
22

3-
module Clash.Cores.I2C where
3+
module Clash.Cores.I2C
4+
( i2c
5+
, i2cTop
6+
, Clash.Cores.I2C.ByteMaster.I2COperation(..)
7+
) where
48

59
import Clash.Prelude hiding (read)
610

clash-cores/test/Test/Cores/I2C.hs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import Clash.Explicit.Prelude
88
import Clash.Cores.I2C
99

1010
import Data.Maybe
11-
import Test.Cores.I2C.Slave
1211
import Test.Cores.I2C.Config
13-
import Clash.Cores.I2C.ByteMaster (I2COperation(..))
12+
import Test.Cores.I2C.Slave
13+
import Test.Tasty
14+
import Test.Tasty.HUnit
15+
1416

1517
system0 :: Clock System -> Reset System -> Signal System (Vec 16 (Unsigned 8), Bool, Bool)
1618
system0 clk arst = bundle (registerFile,done,fault)
@@ -42,3 +44,9 @@ system = system0 systemClockGen resetGen
4244

4345
systemResult :: (Vec 16 (Unsigned 8), Bool, Bool)
4446
systemResult = L.last (sampleN 200050 system)
47+
48+
i2cTest :: TestTree
49+
i2cTest = testCase "i2c core testcase passed."
50+
$ assertBool "i2c core test procedure failed" (not f)
51+
where
52+
(_, _, f) = L.last $ takeWhile (\ (_, done, _) -> not done) $ sample system

clash-cores/test/Test/Cores/I2C/Config.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ configT s0 (rst,ena,cmdAck,rxAck,al) = do
5454
-> pure s { i2cConfStateM = CONFaddr }
5555
| done
5656
-> do display "done"
57-
finish 0
57+
pure s
5858

5959
CONFaddr
6060
-> pure s { i2cConfStateM = CONFaddrAck

clash-cores/test/unittests.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module Main where
1010
import Prelude
1111
import Test.Tasty
1212

13+
import qualified Test.Cores.I2C
1314
import qualified Test.Cores.SPI
1415
import qualified Test.Cores.SPI.MultiSlave
1516
import qualified Test.Cores.UART
@@ -23,6 +24,7 @@ tests = testGroup "Unittests"
2324
, Test.Cores.UART.tests
2425
, Test.Cores.Xilinx.DcFifo.tests
2526
, Test.Cores.Xilinx.BlockRam.tests
27+
, Test.Cores.I2C.i2cTest
2628
]
2729

2830
main :: IO ()

0 commit comments

Comments
 (0)