From 6092d96f5d3c4c870b6e476237a105b5f037df70 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Tue, 8 Jan 2013 14:18:37 -0600 Subject: [PATCH] tests: Add check for handling of wide data (16 probes) The details of the test are explained in-source. This test is designed to provide a test case for bug 33. Signed-off-by: Alexandru Gagniuc --- test/data/logicsnapshot.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/test/data/logicsnapshot.cpp b/test/data/logicsnapshot.cpp index 1c536791..951e3845 100644 --- a/test/data/logicsnapshot.cpp +++ b/test/data/logicsnapshot.cpp @@ -471,5 +471,42 @@ BOOST_AUTO_TEST_CASE(LisaMUsbHid) BOOST_CHECK_EQUAL(edges[edges.size() - 2].second, false); } +/* + * This test checks the rendering of wide data (more than 8 probes) + * Probe signals are either all-high, or all-low, but are interleaved such that + * they would toggle during every sample if treated like 8 probes. + * The packet contains a large number of samples, so the mipmap generation kicks + * in. + * + * The signals should not toggle (have exactly two edges: the start and end) + */ +BOOST_AUTO_TEST_CASE(WideData) +{ + const int Length = 512<<10; + uint16_t *data = new uint16_t[Length]; + + sr_datafeed_logic logic; + logic.unitsize = sizeof(data[0]); + logic.length = Length * sizeof(data[0]); + logic.data = data; + + for(int i = 0; i < Length; i++) + data[i] = 0x0FF0; + + LogicSnapshot s(logic); + + vector edges; + + edges.clear(); + s.get_subsampled_edges(edges, 0, Length-1, 1, 0); + BOOST_CHECK_EQUAL(edges.size(), 2); + + edges.clear(); + s.get_subsampled_edges(edges, 0, Length-1, 1, 8); + BOOST_CHECK_EQUAL(edges.size(), 2); + + // Cleanup + delete [] data; +} BOOST_AUTO_TEST_SUITE_END() -- 2.30.2