Test Sınıfları
Gün 7: Bitirme Projesi - Bölüm 2 | Farklı test senaryoları: Random, Corner, Stress
Kaynak Kod
// =============================================================================
// GUN 7 - Konu 4: Test Siniflari - Farkli Test Senaryolari
// =============================================================================
class ALU_Base_Test;
ALU_Environment env;
virtual alu_if.driver drv_vif;
virtual alu_if.monitor mon_vif;
string test_name;
function new(virtual alu_if.driver drv_vif, virtual alu_if.monitor mon_vif,
string name = "Base_Test");
this.drv_vif = drv_vif;
this.mon_vif = mon_vif;
this.test_name = name;
endfunction
virtual task run();
$display("\n##########################################################");
$display(" TEST: %s", test_name);
$display("##########################################################\n");
// Environment olustur
env = new(drv_vif, mon_vif, get_num_transactions());
env.build();
env.reset();
env.run();
env.report();
endtask
virtual function int get_num_transactions();
return 100;
endfunction
endclass
// Rastgele test
class ALU_Random_Test extends ALU_Base_Test;
function new(virtual alu_if.driver drv_vif, virtual alu_if.monitor mon_vif);
super.new(drv_vif, mon_vif, "Random_Test");
endfunction
virtual function int get_num_transactions();
return 200;
endfunction
endclass
// Kose durumu testi
class ALU_Corner_Test extends ALU_Base_Test;
function new(virtual alu_if.driver drv_vif, virtual alu_if.monitor mon_vif);
super.new(drv_vif, mon_vif, "Corner_Case_Test");
endfunction
virtual function int get_num_transactions();
return 50; // Generator kendi kose durumlarini ekleyecek
endfunction
endclass
// Yogun toplama testi
class ALU_Add_Stress_Test extends ALU_Base_Test;
function new(virtual alu_if.driver drv_vif, virtual alu_if.monitor mon_vif);
super.new(drv_vif, mon_vif, "Add_Stress_Test");
endfunction
virtual function int get_num_transactions();
return 150;
endfunction
endclass