通過gr_modtool會自動生成測試驅動程式的模板,只需要修改模板即可,模板如下:
from gnuradio import gr, gr_unittest
from gnuradio import blocks
import double_diff_swig as double_diff
class qa_translate (gr_unittest.testcase):
def setup (self):
self.tb = gr.top_block ()
def teardown (self):
self.tb = none
def test_001_t (self):
# set up fg
self.tb.run ()
# check data
if __name__ == '__main__':
gr_unittest.run(qa_translate, "qa_translate.xml")
這裡module的名稱為double_diff,block的名稱為translate。
我們需要做的就是補充test_001_t()函式:構建流圖、給出測試資料以及預期結果、執行流圖、將實際結果與預期結果i進行比較。修改好的程式如下:
from gnuradio import gr, gr_unittest
from gnuradio import blocks
import double_diff
class qa_translate (gr_unittest.testcase):
def setup (self):
self.tb = gr.top_block ()
def teardown (self):
self.tb = none
def test_001_t (self):
src_data=[1,-1,-1,1,1,-1]
expected_ampl=(1,1,1,1,1,1)
expected_phase=(0,1,1,0,0,1)
src=blocks.vector_source_c(src_data)
op=double_diff.translate()
dst0=blocks.vector_sink_f()
dst1=blocks.vector_sink_f()
self.tb.connect(src,op)
self.tb.connect((op,0),dst0)
self.tb.connect((op,1),dst1)
# set up fg
self.tb.run ()
# check data
result_ampl=dst0.data()
result_phase=dst1.data()
self.assertequal(expected_ampl,result_ampl)
self.assertequal(expected_phase,result_phase)
if __name__ == '__main__':
gr_unittest.run(qa_translate, "qa_translate.xml")
執行結果:
5 裝置驅動Makefile編寫及編寫測試驅動
市面上的關於裝置驅動的書大部分是三星的開發板 都是啥210,2440啥的舊晶元 全志和瑞芯微的好像沒看到有,還有有關ti晶元的中文書籍關於驅動方面講的也很淺,不適於入門。博文是在關於三桑的開發板上的基礎上開始編寫的,因筆者 我 水平問題,錯漏在所難免 參考資料改的makefile mkdir roo...
怎麼編寫測試驅動程式
開發測試驅動程式一般分為4步 1,指出需要的新特性。可以記錄下來,然後為其編寫乙個測試 2,編寫特性的概要 這樣程式就可以執行而沒有任何語法等方面的錯誤,但是測試會失敗。看到測試失敗是很重要的,這樣就能確定測試可以失敗。如果測試 中出現了錯誤,那麼就有可能出現任何情況,測試都會成功,這樣等於沒測試任...
python測試驅動
最近在看python測試驅動開發這本書。複習到了很多關於django以及python的知識。先說下我配置的環境django 2.10 python 3.61 pycharm 因為這本書我看的時候用的是django1.11所以版本差異非常大。在第三章urls配置中 書中用的是url配置 而django...