Test runs twice

Hi GNURADIOers,

I wanted to tell you that test for my block runs twice.
Namely, I designed block based on tagged_file_sink, which is able to
store
some
additional samples before true tag.
I designed also test, but when I run it, it simply executes twice.

at the bottom of my qa file you can find this:

  self.tb.run ()
  print "\nAfter run!\n"
  result_data = (0, 1, 1, 0, 0, 1, 1)
  expected_result = (0, 1, 1, 0, 0, 1, 1)
  self.assertEqual (expected_result, result_data, 6)

and I am able to see in terminal twice “After run”, and there are also
two
files produced by the block itself.

I discovered that at very end of my qa file, there is:

if name == ‘main’:
gr_unittest.run(qa_file_sink_history, “qa_file_sink_history.xml”)

but in some older test one can find this:

if name == ‘main’:
gr_unittest.main ()

When change first one with the second one, test executes once as it
should
be.
Can anybody explain me this behaviour?

Best

On Tue, Feb 26, 2013 at 7:17 AM, Nemanja S. [email protected]
wrote:

  self.tb.run ()

if name == ‘main’:

Best


Nemanja Savić

It has to do with how we run the test in the gr_unittest.py suite.
Specifically, if you give it an XML file to save the results, it has
to run the test twice: once to output to the XML file and once to
output to the screen for feedback. If you don’t provide the XML file
to output to, it will only run the test once.

Their is actually a FIXME in the gr_unittest.py file about this.

Tom