1
0
mirror of https://github.com/stefanocasazza/ULib.git synced 2025-09-28 19:05:55 +08:00
ULib/tests/debug/test_objectDB.cpp
stefanocasazza 10c1d1ddff some fix
2016-05-02 15:51:12 +02:00

101 lines
1.6 KiB
C++

// test_objectDB.cpp
#include <ulib/debug/trace.h>
#include <ulib/debug/common.h>
#include <ulib/debug/objectDB.h>
#include <ulib/debug/error_memory.h>
#include <stdlib.h>
class Genitore {
public:
U_MEMORY_TEST
Genitore(const char* n = "genitore")
{
U_TRACE_REGISTER_OBJECT(5,Genitore,"%S",n)
nome = n;
}
~Genitore()
{
U_TRACE_UNREGISTER_OBJECT(5,Genitore)
}
Genitore(const Genitore& g) { *this = g; }
Genitore& operator=(const Genitore& g)
{
nome = g.nome;
return *this;
}
// friend ostream& operator<<(ostream& os, const Genitore& genitore) { return os << genitore.nome; }
const char* dump(bool) const { return nome; }
protected:
const char* nome;
};
class Figlio : public Genitore {
public:
Figlio(const char* n = "figlio") : Genitore(n)
{
U_TRACE_REGISTER_OBJECT(5, Figlio, "%S", n)
}
~Figlio()
{
U_TRACE_UNREGISTER_OBJECT(5, Figlio)
}
const char* dump(bool) const { return nome; }
};
static void one()
{
U_TRACE(5, "one()")
Figlio* vettore_figli;
U_NEW(Figlio, vettore_figli, Figlio[3]);
}
static void two()
{
U_TRACE(5, "two()")
Figlio* vettore_figli;
U_NEW(Figlio, vettore_figli, Figlio[3]);
}
int U_EXPORT main (int argc, char* argv[])
{
u_init_ulib(argv);
U_TRACE(5, "main(%d,%p)", argc, argv)
int sz = (argc > 1 ? atoi(argv[1]) : 1000);
U_SET_LOCATION_INFO;
Figlio figlio;
U_SET_LOCATION_INFO;
Genitore genitore;
one();
two();
Figlio* vettore_figli;
U_NEW(Figlio, vettore_figli, Figlio[sz]);
delete[] vettore_figli;
::exit(0);
}