Index: sources/test_regression/16062005a/Makefile
===================================================================
--- sources/test_regression/16062005/Makefile	(revision 15)
+++ sources/test_regression/16062005a/Makefile	(revision 55)
@@ -1,58 +1,18 @@
+
 include ../env.mk
+HIERARCHY = object_hierarchy.txt
+ERASE = $(HIERARCHY)
+include ../Makefile.common
 
-SYSTEM    = system.cpp system2.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+HIERARCHY_REF = object_hierarchy_ref.txt
 
-.SECONDARY:
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) $(HIERARCHY) 2> /dev/null
+	@if diff $(HIERARCHY) $(HIERARCHY_REF) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-main : $(EXE_SCASS) 
 
-test : main
-	./system_systemcass.x object_hierarchy1.txt
-	diff object_hierarchy1_reference.txt object_hierarchy1.txt
-	./system2_systemcass.x object_hierarchy2.txt
-	diff object_hierarchy2_reference.txt object_hierarchy2.txt
-	@echo Test OK.
 
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/16062005a/object_hierarchy1_reference.txt
===================================================================
--- sources/test_regression/16062005/object_hierarchy1_reference.txt	(revision 15)
+++ 	(revision )
@@ -1,19 +1,0 @@
-clock sc_clock
-top1.a.b.d1 sc_object
-top1.a.b.d2 sc_object
-top1.a.b.c sc_object
-top1.a.b sc_object
-top1.a.c sc_object
-top1.a sc_object
-top1.d sc_object
-top1 sc_object
-top2.b1.d1 sc_object
-top2.b1.d2 sc_object
-top2.b1.c sc_object
-top2.b1 sc_object
-top2.b2.d1 sc_object
-top2.b2.d2 sc_object
-top2.b2.c sc_object
-top2.b2 sc_object
-top2.c sc_object
-top2 sc_object
Index: sources/test_regression/16062005a/object_hierarchy2_reference.txt
===================================================================
--- sources/test_regression/16062005/object_hierarchy2_reference.txt	(revision 15)
+++ 	(revision )
@@ -1,11 +1,0 @@
-Top level :
-s_clk, noname_0, noname_1, noname_2, noname_3, m, top_level_module
-
-Child of "m" :
-m.i_bool, m.i_int, m.i_sc_int17, m.o_int, m.o_sc_uint38, m.reg_lv8, m.reg_int, m.reg_uint, m.reg_sc_uint3, m.reg_sc_int31, m.noname_4, m.intern_module_of_moldu
-
-Child of "m.intern_module_of_moldu" :
-m.intern_module_of_moldu.noname_5
-
-Child of "top_level_module" :
-top_level_module.noname_6
Index: sources/test_regression/16062005a/object_hierarchy_ref.txt
===================================================================
--- sources/test_regression/16062005a/object_hierarchy_ref.txt	(revision 55)
+++ sources/test_regression/16062005a/object_hierarchy_ref.txt	(revision 55)
@@ -0,0 +1,19 @@
+clock sc_clock
+top1.a.b.d1 sc_object
+top1.a.b.d2 sc_object
+top1.a.b.c sc_object
+top1.a.b sc_object
+top1.a.c sc_object
+top1.a sc_object
+top1.d sc_object
+top1 sc_object
+top2.b1.d1 sc_object
+top2.b1.d2 sc_object
+top2.b1.c sc_object
+top2.b1 sc_object
+top2.b2.d1 sc_object
+top2.b2.d2 sc_object
+top2.b2.c sc_object
+top2.b2 sc_object
+top2.c sc_object
+top2 sc_object
Index: sources/test_regression/16062005a/system.cpp
===================================================================
--- sources/test_regression/16062005/system.cpp	(revision 15)
+++ sources/test_regression/16062005a/system.cpp	(revision 55)
@@ -1,161 +1,131 @@
-#include "systemc.h"
+
 #include <iostream>
 #include <fstream>
 #include <vector>
 
-#define ASSERT(x) { if (!(x)) { \
-                      cerr << "ASSERT : " #x \
-                           << " in function '" << __FUNCTION__  \
-                           << "'\n"; exit (-1); \
-                    } \
-                  }
+#include "systemc.h"
+#include "test.h"
 
 
 using namespace std;
 
-struct D : sc_module
-{
-  D (sc_module_name)
-  {
-  }
+struct D : sc_module {
+    D(sc_module_name) {}
 };
 
-struct C : sc_module
-{
-  C (sc_module_name)
-  {
-  }
+
+
+struct C : sc_module {
+    C(sc_module_name) {}
 };
 
-struct B : sc_module
-{
-  D d1;
-  D d2;
-  C c;
-  B (sc_module_name) : d1("d1"), d2("d2"), c("c")
-  {
-  }
+
+struct B : sc_module {
+    D d1;
+    D d2;
+    C c;
+    B(sc_module_name) : d1("d1"), d2("d2"), c("c") {}
 };
 
-struct A : sc_module
-{
-  B b;
-  C c;
-  A (sc_module_name) : b("b"), c("c")
-  {
-  }
+
+struct A : sc_module {
+    B b;
+    C c;
+    A(sc_module_name) : b("b"), c("c") {}
 };
 
-struct top_level1 : sc_module
-{
-  A a;
-  D d;
-  top_level1(sc_module_name) : a("a"), d("d")
-  {
-  }
+
+struct top_level1 : sc_module {
+    A a;
+    D d;
+    top_level1(sc_module_name) : a("a"), d("d") {}
 };
 
-struct top_level2 : sc_module
-{
-  B b1;
-  B b2;
-  C c;
-  top_level2(sc_module_name) : b1("b1"), b2("b2"), c("c")
-  {
-  }
+
+struct top_level2 : sc_module {
+    B b1;
+    B b2;
+    C c;
+    top_level2(sc_module_name) : b1("b1"), b2("b2"), c("c") {}
 };
 
-void
-dump_hierarchy (ostream &o, sc_object *obj)
-{
-  const std::vector<sc_object*> &children = obj->get_child_objects();
-  for (unsigned i = 0; i < children.size(); i++)
-    if (children[i])
-      dump_hierarchy (o,children[i]);
-  o << obj->name () << " " << obj->kind() << endl;
+
+void dump_hierarchy(ostream & o, sc_object * obj) {
+    const vector<sc_object *> & children = obj->get_child_objects();
+    for (unsigned i = 0; i < children.size(); i++) {
+        if (children[i]) {
+            dump_hierarchy(o, children[i]);
+        }
+    }
+    o << obj->name() << " " << obj->kind() << endl;
 }
 
-void
-dump_hierarchy (ostream &o, const std::vector<sc_object*> &obj_list)
-{
-  for (unsigned i = 0; i < obj_list.size(); i++)
-    dump_hierarchy(o, obj_list[i]);
+
+void dump_hierarchy (ostream & o, const vector<sc_object *> & obj_list) {
+    for (unsigned i = 0; i < obj_list.size(); i++) {
+        dump_hierarchy(o, obj_list[i]);
+    }
 }
 
-int
-sc_main (int argc, char ** argv)
-{
-  if (argc < 2)
-  {
-    cerr << "Usage : " << argv[0] << " <filename>\n";
-    exit (-1);
-  }
 
-  sc_clock   clk("clock");
-  top_level1 top1("top1");
-  top_level2 top2("top2");
- 
-  ofstream o;
-  o.open (argv[1],ios::out | ios::trunc);
-  if (o.is_open () == false)
-  {
-    cerr << "Unable to open '" << argv[1] << "'.\n";
-    return 1;
-  }
+int sc_main (int argc, char ** argv) {
+    if (argc < 2) {
+        cerr << "Usage : " << argv[0] << " <filename>\n";
+        exit(-1);
+    }
 
-  sc_start(0);
-  dump_hierarchy (o,sc_get_top_level_objects());
-  
-  ASSERT(sc_find_object("top2.b1"    ) == &top2.b1    );
-  ASSERT(sc_find_object("top2.b1.d1" ) == &top2.b1.d1 );
-  ASSERT(sc_find_object("top2.b1.d2" ) == &top2.b1.d2 );
-  ASSERT(sc_find_object("top2.b1.c"  ) == &top2.b1.c  );
-  ASSERT(sc_find_object("top2.b2"    ) == &top2.b2    );
-  ASSERT(sc_find_object("top2.c"     ) == &top2.c     );
-  ASSERT(sc_find_object("top1.a"     ) == &top1.a     );
-  ASSERT(sc_find_object("top1.d"     ) == &top1.d     ); 
-  ASSERT(sc_find_object("top1.a.b"   ) == &top1.a.b   );
-  ASSERT(sc_find_object("top1.a.b.d1") == &top1.a.b.d1);
-  ASSERT(sc_find_object("top1.a.b.d2") == &top1.a.b.d2);
-  ASSERT(sc_find_object("top1.a.b.c" ) == &top1.a.b.c );
-  ASSERT(sc_find_object("top1.a.c"   ) == &top1.a.c   );  
-  ASSERT(sc_find_object("top1.c"     ) == NULL        );
-  ASSERT(sc_find_object("top1"       )->get_parent_object() == NULL);
-  ASSERT(sc_find_object("top1.a"     )->get_parent_object() == &top1);
-  ASSERT(sc_find_object("top1.a.b"   )->get_parent_object() == &top1.a);
-  ASSERT(sc_find_object("top1.a.b.d2")->get_parent_object() == &top1.a.b);
-  ASSERT(sc_find_object("top1.d"     )->get_parent_object() == &top1);
-  ASSERT(sc_find_object("top2.b1"    )->get_parent_object() == &top2);
-  ASSERT(sc_find_object("top2.b2"    )->get_parent_object() == &top2);
-  ASSERT(sc_find_object("top2.c"     )->get_parent_object() == &top2);
-  ASSERT(sc_find_object("top2.b1.c"  )->get_parent_object() == &top2.b1);
-#if 0
-  o << sc_find_object("top2.b1.d1")->name() << endl;
-  o << sc_find_object("top2.b1.d2")->name() << endl;
-  o << sc_find_object("top2.b1.c")->name() << endl;
-  o << sc_find_object("top2.b2")->name() << endl;
-  o << sc_find_object("top2.c")->name() << endl;
-  o << sc_find_object("top1.a")->name() << endl;
-  o << sc_find_object("top1.d")->name() << endl;
-  o << sc_find_object("top1.a.b")->name() << endl;
-  o << sc_find_object("top1.a.b.d1")->name() << endl;
-  o << sc_find_object("top1.a.b.d2")->name() << endl;
-  o << sc_find_object("top1.a.b.c")->name() << endl;
-  o << sc_find_object("top1.a.c")->name() << endl;
-  if (sc_find_object("top1.c") == NULL)
-    o << "top1.c not found.\n";
-  else
-    o << "top1.c found.\n";
-  o << sc_find_object("top2.b1.c")->get_parent_object()->name () << endl;
-  o << sc_find_object("top1.a")->get_parent_object()->name () << endl;
-  if (top1.get_parent_object() == NULL)
-    o << "top1 has no parent.\n";
-  else
-    o << "top1 has a parent.\n";
-#endif
+    sc_clock clk("clock");
+    top_level1 top1("top1");
+    top_level2 top2("top2");
 
-  o.close ();
+    ofstream o;
+    o.open(argv[1],ios::out | ios::trunc);
+    if (!o.is_open()) {
+        cerr << "Unable to open '" << argv[1] << "'.\n";
+        return 1;
+    }
 
-  return 0;
+    sc_start(sc_time(0, sc_core::SC_NS));
+    dump_hierarchy(o, sc_get_top_level_objects());
+
+    ASSERT(sc_find_object("top2.b1"    ) == &top2.b1    );
+    ASSERT(sc_find_object("top2.b1.d1" ) == &top2.b1.d1 );
+    ASSERT(sc_find_object("top2.b1.d2" ) == &top2.b1.d2 );
+    ASSERT(sc_find_object("top2.b1.c"  ) == &top2.b1.c  );
+    ASSERT(sc_find_object("top2.b2"    ) == &top2.b2    );
+    ASSERT(sc_find_object("top2.c"     ) == &top2.c     );
+    ASSERT(sc_find_object("top1.a"     ) == &top1.a     );
+    ASSERT(sc_find_object("top1.d"     ) == &top1.d     ); 
+    ASSERT(sc_find_object("top1.a.b"   ) == &top1.a.b   );
+    ASSERT(sc_find_object("top1.a.b.d1") == &top1.a.b.d1);
+    ASSERT(sc_find_object("top1.a.b.d2") == &top1.a.b.d2);
+    ASSERT(sc_find_object("top1.a.b.c" ) == &top1.a.b.c );
+    ASSERT(sc_find_object("top1.a.c"   ) == &top1.a.c   );  
+    ASSERT(sc_find_object("top1.c"     ) == NULL        );
+    ASSERT(sc_find_object("top1"       )->get_parent_object() == NULL);
+    ASSERT(sc_find_object("top1.a"     )->get_parent_object() == &top1);
+    ASSERT(sc_find_object("top1.a.b"   )->get_parent_object() == &top1.a);
+    ASSERT(sc_find_object("top1.a.b.d2")->get_parent_object() == &top1.a.b);
+    ASSERT(sc_find_object("top1.d"     )->get_parent_object() == &top1);
+    ASSERT(sc_find_object("top2.b1"    )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.b2"    )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.c"     )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.b1.c"  )->get_parent_object() == &top2.b1);
+
+    o.close();
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16062005a/system2.cpp
===================================================================
--- sources/test_regression/16062005/system2.cpp	(revision 15)
+++ 	(revision )
@@ -1,105 +1,0 @@
-#include "systemc.h"
-#include <iostream>
-#include <fstream>
-#include <vector>
-
-using namespace std;
-
-struct intramoldu : sc_module
-{
-  sc_signal<long> reg_long;
-  intramoldu (sc_module_name n)
-  { }
-};
-
-
-struct moldu : sc_module
-{
-  sc_in<bool>             i_bool;
-  sc_in<int >             i_int;
-  sc_in<sc_int<17> >      i_sc_int17;
-  sc_out<int >            o_int;
-  sc_out<sc_uint<38> >    o_sc_uint38;
-  sc_signal<sc_lv<8> >    reg_lv8;
-  sc_signal<int>          reg_int;
-  sc_signal<unsigned int> reg_uint;
-  sc_signal<sc_uint<3> >  reg_sc_uint3;
-  sc_signal<sc_int<31> >  reg_sc_int31;
-  sc_in_clk               i_clk;
-  intramoldu              microarchitecture;
-  moldu (sc_module_name n) :
-                       microarchitecture ("intern_module_of_moldu"),
-                       i_bool     ("i_bool"),
-                       i_int      ("i_int"),
-                       i_sc_int17 ("i_sc_int17"),
-                       o_int      ("o_int"),
-                       o_sc_uint38("o_sc_uint38"),
-                       reg_lv8    ("reg_lv8"),
-                       reg_int    ("reg_int"),
-                       reg_uint   ("reg_uint"),
-                       reg_sc_uint3 ("reg_sc_uint3"),
-                       reg_sc_int31 ("reg_sc_int31")
-  {
-  }
-};
-
-void
-dump_objects (ofstream &o, const vector<sc_object*> &obj_list)
-{
-  for (unsigned i = 0; i < obj_list.size(); i++)
-  {
-    const sc_object *obj = obj_list[i];
-    if (obj == NULL)
-      o << "\nError : NULL pointer in objects list !\n"; 
-    else
-      o << ((i != 0)?", ":"") << obj->name ();
-  }
-  o << "\n";
-}
-
-int
-sc_main (int argc, char ** argv)
-{
-  if (argc < 2)
-  {
-    cerr << "Usage : " << argv[0] << " <filename>\n";
-    exit (-1);
-  }
- 
-  ofstream o;
-  o.open (argv[1],ios::out | ios::trunc);
-  if (o.is_open () == false)
-  {
-    cerr << "Unable to open '" << argv[1] << "'.\n";
-    return 1;
-  }
-
-  sc_clock s_clk("s_clk");
-  sc_signal<bool>            s_bool;
-  sc_signal<int >            s_int;
-  sc_signal<sc_int<17> >     s_sc_int17;
-  sc_signal<sc_uint<38> >    s_sc_uint38;
-  moldu m("m");
-  intramoldu              microarchitecture("top_level_module");
-  m.i_clk      (s_clk);
-  m.i_bool     (s_bool);
-  m.i_int      (s_int);
-  m.i_sc_int17 (s_sc_int17);
-  m.o_int      (s_int);
-  m.o_sc_uint38(s_sc_uint38);
-
-  sc_start(0);
-  o << "Top level :\n";
-  dump_objects(o,sc_get_top_level_objects());
-  o << "\nChild of \"m\" :\n";
-  dump_objects(o,m.get_child_objects());
-  o << "\nChild of \"m.intern_module_of_moldu\" :\n";
-  dump_objects(o,m.microarchitecture.get_child_objects());
-  o << "\nChild of \"top_level_module\" :\n";
-  dump_objects(o,microarchitecture.get_child_objects());
-
-  o.close ();
-
-  return 0;
-}
-
