aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrear1019 <rear1019@posteo.de>2020-01-03 13:16:56 +0100
committerMartin Braun <martin.braun@ettus.com>2020-01-16 10:45:30 -0800
commit0b8a23041aace0fa3873a0eb3fa173ae9e165083 (patch)
tree2a616f84377216d6f936e92d2f62045ab9104a84
parentFix all formatting issues (diff)
downloadgnuradio-0b8a23041aace0fa3873a0eb3fa173ae9e165083.tar.xz
gnuradio-0b8a23041aace0fa3873a0eb3fa173ae9e165083.zip
additive_scrambler: Add proper test for count based reset
Do not chain two additive scramblers to check whether the reset is performed correctly: A flaw in the reset logic can not be detected this way as the same logic is used both in the scrambler and the descrambler. Instead, check whether the first N elements generated by the scrambler are repeated in the output (where N is the reset count). This test does fail as of this commit; see [1]. [1] https://github.com/gnuradio/gnuradio/issues/2926
-rwxr-xr-xgr-digital/python/digital/qa_scrambler.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/gr-digital/python/digital/qa_scrambler.py b/gr-digital/python/digital/qa_scrambler.py
index 522b23245..52540b9b3 100755
--- a/gr-digital/python/digital/qa_scrambler.py
+++ b/gr-digital/python/digital/qa_scrambler.py
@@ -63,28 +63,24 @@ class test_scrambler(gr_unittest.TestCase):
self.assertEqual(src_data, dst.data())
def test_additive_scrambler_reset(self):
- src_data = (1,)*1000
+ src_data = (1,)*200
src = blocks.vector_source_b(src_data, False)
- scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100)
- descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 50)
dst = blocks.vector_sink_b()
- self.tb.connect(src, scrambler, descrambler, dst)
+ self.tb.connect(src, scrambler, dst)
self.tb.run()
- self.assertEqual(src_data, dst.data())
+ output = dst.data()
+ self.assertEqual(output[:50] * 4, output)
def test_additive_scrambler_reset_3bpb(self):
- src_data = (5,)*2000
+ src_data = (5,)*200
src = blocks.vector_source_b(src_data, False)
- scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 3)
- descrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 100, 3)
+ scrambler = digital.additive_scrambler_bb(0x8a, 0x7f, 7, 50, 3)
dst = blocks.vector_sink_b()
- dst2 = blocks.vector_sink_b()
- self.tb.connect(src, scrambler, descrambler, dst)
- self.tb.connect(scrambler, dst2)
+ self.tb.connect(src, scrambler, dst)
self.tb.run()
- if not (src_data == dst.data()):
- self.fail('Not equal.')
- self.assertEqual(src_data, src_data)
+ output = dst.data()
+ self.assertEqual(output[:50] * 4, output)
def test_additive_scrambler_tags(self):
src_data = (1,)*1000