test207.cpp revision 12855:588919e0e4aa
1#include <systemc> 2using namespace sc_core; 3using namespace sc_dt; 4using std::cout; 5using std::endl; 6 7// 7) "event_queue" 8 9void check_form_of_suffix(std::string s) 10{ 11 std::string charset = "0123456789"; 12 while (!s.empty()) 13 { 14 sc_assert(s[0] == '_'); 15 s = s.substr(1); 16 sc_assert(!s.empty()); 17 do 18 { 19 sc_assert(charset.find(s[0]) < charset.size()); 20 s = s.substr(1); 21 } while (!s.empty() && (s[0] != '_')); 22 } 23} 24 25SC_MODULE(M) 26{ 27 SC_CTOR(M) 28 { 29 SC_THREAD(T); 30 } 31 void T() 32 { 33 } 34}; 35 36struct Top: sc_module 37{ 38 sc_event_queue eq; 39 M *m; 40 Top(sc_module_name) 41 { 42 m = new M("m"); 43 44 std::string s = eq.basename(); 45 sc_assert (s.substr(0,11) == "event_queue"); 46 sc_assert (s.size() > 11); 47 check_form_of_suffix(s.substr(11)); 48 49 s = eq.name(); 50 sc_assert (s.substr(0,15) == "top.event_queue"); 51 sc_assert (s.size() > 15); 52 check_form_of_suffix(s.substr(15)); 53 54 sc_assert (std::string(eq.kind()) == "sc_event_queue"); 55 } 56}; 57 58int sc_main(int argc, char* argv[]) 59{ 60 cout << "Should be silent..." << endl; 61 62 Top top("top"); 63 sc_start(); 64 65 cout << endl << "Success" << endl; 66 return 0; 67} 68