]> sigrok.org Git - libsigrokdecode.git/commitdiff
spi: Add coverage tests for all exceptions.
authorBert Vermeulen <redacted>
Fri, 27 Jun 2014 16:45:46 +0000 (18:45 +0200)
committerBert Vermeulen <redacted>
Fri, 27 Jun 2014 16:45:46 +0000 (18:45 +0200)
decoders/spi/pd.py
decoders/spi/test/test.conf

index 1ddb119c2729f1c2ff15972db887fc4482e8f15d..4e5627bd02db6ae14d3154ac1c04bbbbd4a99c82 100644 (file)
@@ -60,6 +60,12 @@ spi_mode = {
     (1, 1): 3, # Mode 3
 }
 
+class SamplerateError(Exception):
+    pass
+
+class MissingDataError(Exception):
+    pass
+
 class Decoder(srd.Decoder):
     api_version = 2
     id = 'spi'
@@ -258,8 +264,8 @@ class Decoder(srd.Decoder):
         self.handle_bit(miso, mosi, clk, cs)
 
     def decode(self, ss, es, data):
-        if self.samplerate is None:
-            raise Exception("Cannot decode without samplerate.")
+        if not self.samplerate:
+            raise SamplerateError("Cannot decode without samplerate.")
         # Either MISO or MOSI can be omitted (but not both). CS# is optional.
         for (self.samplenum, pins) in data:
 
@@ -273,7 +279,7 @@ class Decoder(srd.Decoder):
 
             # Either MISO or MOSI (but not both) can be omitted.
             if not (self.have_miso or self.have_mosi):
-                raise Exception('Either MISO or MOSI (or both) pins required.')
+                raise MissingDataError('Either MISO or MOSI (or both) pins required.')
 
             self.find_clk_edge(miso, mosi, clk, cs)
 
index 57e0be7d504769d04350016ef21f9b88c0c5c4e5..53edfeb4c5979e88a36dea1570d96b4797b3401a 100644 (file)
@@ -31,3 +31,13 @@ test count_miso_lsb
        input spi/spi-count-lsb.sr
        output spi annotation class mosi-data match spi_count_miso_lsb.output
 
+test exception_samplerate
+       protocol-decoder spi
+       input misc/no-samplerate.sr
+       output spi exception match SamplerateError
+
+test exception_missing_datapins
+       protocol-decoder spi channel cs=1 channel clk=0
+       input spi/spi-count-msb.sr
+       output spi exception match MissingDataError
+