add Longevity test
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@281 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
13d56ada49
commit
d0e75dd3b1
3 changed files with 85 additions and 0 deletions
32
test/Longevity/Makefile
Executable file
32
test/Longevity/Makefile
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
|
||||||
|
CPP = g++
|
||||||
|
CC = gcc
|
||||||
|
OBJ = main.o
|
||||||
|
LINKOBJ = main.o
|
||||||
|
CXXINCS = -I./../../include
|
||||||
|
LIBS = -L../../lib -lloki
|
||||||
|
CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG
|
||||||
|
BIN = main-gcc.exe
|
||||||
|
RM = rm -f
|
||||||
|
CHK_DIR_EXISTS= if not exist
|
||||||
|
MKDIR = mkdir
|
||||||
|
|
||||||
|
.PHONY: all all-before all-after clean clean-custom
|
||||||
|
|
||||||
|
all: all-before $(BIN) all-after
|
||||||
|
|
||||||
|
|
||||||
|
clean: clean-custom
|
||||||
|
${RM} $(OBJ) $(BIN)
|
||||||
|
|
||||||
|
$(BIN): $(OBJ)
|
||||||
|
$(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS)
|
||||||
|
|
||||||
|
check_tmp:
|
||||||
|
@$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp"
|
||||||
|
|
||||||
|
Factory.o: Factory.cpp
|
||||||
|
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
|
||||||
|
|
||||||
|
|
40
test/Longevity/main.cpp
Executable file
40
test/Longevity/main.cpp
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "loki/Singleton.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct L1
|
||||||
|
{
|
||||||
|
L1(){std::cout << "create L1: " << this << "\n";}
|
||||||
|
~L1(){std::cout << "delete L1: " << this <<" \n";}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct L2
|
||||||
|
{
|
||||||
|
L2(){std::cout << "create L2 \n";}
|
||||||
|
~L2(){std::cout << "delete L2 \n";}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct L3
|
||||||
|
{
|
||||||
|
L3(){std::cout << "create L3 \n";}
|
||||||
|
~L3(){std::cout << "delete L3 \n";}
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Loki::SetLongevity
|
||||||
|
(new L1, 1);
|
||||||
|
Loki::SetLongevity<L1, void (*)(L1*)>
|
||||||
|
(new L1, 1, Loki::Private::Deleter<L1>::Delete);
|
||||||
|
Loki::SetLongevity<L1, Loki::Private::Deleter<L1>::Type>
|
||||||
|
(new L1, 1, Loki::Private::Deleter<L1>::Delete);
|
||||||
|
Loki::SetLongevity(new L2, 2);
|
||||||
|
Loki::SetLongevity(new L1, 1);
|
||||||
|
Loki::SetLongevity(new L3, 3);
|
||||||
|
Loki::SetLongevity(new L1, 1);
|
||||||
|
|
||||||
|
std::cout << "\n";
|
||||||
|
}
|
||||||
|
|
13
test/Longevity/make.msvc.bat
Executable file
13
test/Longevity/make.msvc.bat
Executable file
|
@ -0,0 +1,13 @@
|
||||||
|
if not exist tmp\ mkdir tmp
|
||||||
|
|
||||||
|
cl -c -Zm200 -O2 -DNDEBUG -MT -EHsc -GR -W0 -wd4710 -I"." -I"..\..\include" -Fotmp\ main.cpp
|
||||||
|
|
||||||
|
if not defined LOKI_MSVC_NOLIB (
|
||||||
|
|
||||||
|
link /NOLOGO /SUBSYSTEM:CONSOLE /incremental:no /OUT:"main-msvc.exe" ..\..\lib\loki.lib tmp\main.obj
|
||||||
|
|
||||||
|
) else (
|
||||||
|
|
||||||
|
link /NOLOGO /SUBSYSTEM:CONSOLE /incremental:no /OUT:"main-msvc.exe" tmp\main.obj ..\..\lib\SmallObj.obj ..\..\lib\Singleton.obj
|
||||||
|
|
||||||
|
)
|
Loading…
Reference in a new issue