Test runs twice


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
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
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
Can anybody explain me this behaviour?


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

  self.tb.run ()

if name == ‘main’:


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.