Можно ли переопределить тест uvm, который указан через + UVM_TESTNAME = test1, также имея + uvm_set_type_override = test1, test2? - PullRequest
0 голосов
/ 11 февраля 2019

Мне интересно, можно ли переопределить тест, указанный в командной строке, через + UVM_TESTNAME с помощью + uvm_set_type_override.

I have tried it and this is what i see in prints in log. 
UVM_INFO @ 0: reporter [RNTST] Running test Test1...
UVM_INFO @ 0: reporter [UVM_CMDLINE_PROC] Applying type override from the command line: +uvm_set_type_override=Test1,Test2

Так что мне кажется, что сначала создается тестовый компонент, а затем применяются заводские переопределения?

Я вижу в uvm_root.svh следующие фрагменты кода

 // if test now defined, create it using common factory
 if (test_name != "") begin
   if(m_children.exists("uvm_test_top")) begin
     uvm_report_fatal("TTINST",
         "An uvm_test_top already exists via a previous call to run_test", UVM_NONE);
     #0; // forces shutdown because $finish is forked
  end
   $cast(uvm_test_top, factory.create_component_by_name(test_name,
         "", "uvm_test_top", null));

Используется фабрика, но я не знаю, были ли введены актуальные переопределения. Я также вижу код в следующем,

 begin
  if(test_name=="") 
     uvm_report_info("RNTST", "Running test ...", UVM_LOW); 
  else if (test_name == uvm_test_top.get_type_name())
     uvm_report_info("RNTST", {"Running test ",test_name,"..."}, UVM_LOW); 
  else
     uvm_report_info("RNTST", {"Running test ",uvm_test_top.get_type_name()," (via factory override for test \"",test_name,"\")..."}, UVM_LOW);
 end

Мне интересно, исполняется ли когда-нибудь часть "else" выше?или при каких условиях это выполняется?

1 Ответ

0 голосов
/ 11 февраля 2019

Кажется, что есть проблема с порядком обработки командной строки в UVM - UVM_TESTNAME обрабатывается отдельно перед всеми остальными опциями.

Можно установить переопределение перед вызовом run_test () в начальном блоке.

Но какой смысл устанавливать имя теста, а затем переопределять его в той же командной строке??Почему бы не использовать переопределенное имя теста в качестве теста?

...