add json config and updaet pkgbuild

This commit is contained in:
stubbfel
2015-11-18 23:22:09 +01:00
parent cb34c4b4f7
commit 20d477be4a
18 changed files with 492 additions and 89 deletions

View File

@@ -1,5 +1,5 @@
# This code depends on make tool being used
DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES}))
DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES}))
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

4
CMakeLists.txt Normal file
View File

@@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 3.3.2)
project (121Nat)
ADD_SUBDIRECTORY(src)

26
dist/package/PKGBUILD vendored Normal file
View File

@@ -0,0 +1,26 @@
pkgname=121Nat
pkgver=1.0 # note: if the pkgver had been '0.99-10' then use an underscore. like '0.99_10'
pkgrel=1
pkgdesc="transparent one to one nat"
arch=(any)
url="http://www.foo.org"
license=('MIT')
depends=('pth' 'jsoncpp')
makedepends=('cmake')
source=(./$pkgname-$pkgver.tar.gz)
md5sums=('0e1494ebbcf0b0ca1bfa8475c5078f21')
build() {
cd $srcdir/$pkgname
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ../
make
}
package() {
cd $srcdir/$pkgname/build
make DESTDIR=$pkgdir install
mkdir -p $pkgdir/etc/$pkgname
cp ../src/config.json $pkgdir/etc/$pkgname/config-example.json
}

View File

@@ -21,7 +21,7 @@ FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_DLIB_EXT=so
CND_CONF=Debug
CND_DISTDIR=dist
@@ -46,8 +46,16 @@ TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f2 \
${TESTDIR}/TestFiles/f1
# Test Object Files
TESTOBJECTFILES= \
${TESTDIR}/tests/jsontest.o \
${TESTDIR}/tests/jsontestrunner.o \
${TESTDIR}/tests/nattest.o \
${TESTDIR}/tests/nattestrunner.o
# C Compiler Flags
CFLAGS=
@@ -62,61 +70,79 @@ FFLAGS=
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=-ltins -lpthread
LDLIBSOPTIONS=-ltins -lpthread `pkg-config --libs jsoncpp`
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/PduSender.o: src/PduSender.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSender.o src/PduSender.cpp
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSender.o src/PduSender.cpp
${OBJECTDIR}/src/PduSniffer.o: src/PduSniffer.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSniffer.o src/PduSniffer.cpp
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSniffer.o src/PduSniffer.cpp
${OBJECTDIR}/src/main.o: src/main.cpp
${MKDIR} -p ${OBJECTDIR}/src
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main.o src/main.cpp
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main.o src/main.cpp
${OBJECTDIR}/src/map/NatRange.o: src/map/NatRange.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/NatRange.o src/map/NatRange.cpp
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/NatRange.o src/map/NatRange.cpp
${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
${MKDIR} -p ${OBJECTDIR}/src/map
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap.o src/map/natmap.cpp
# Subprojects
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
.build-tests-conf: .build-tests-subprojects .build-conf ${TESTFILES}
.build-tests-subprojects:
${TESTDIR}/TestFiles/f2: ${TESTDIR}/tests/jsontest.o ${TESTDIR}/tests/jsontestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f2 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/jsontest.o: tests/jsontest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontest.o tests/jsontest.cpp
${TESTDIR}/tests/jsontestrunner.o: tests/jsontestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontestrunner.o tests/jsontestrunner.cpp
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattest.o tests/nattest.cpp
$(COMPILE.cc) -g -Wall -I. `pkg-config --cflags jsoncpp` -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattest.o tests/nattest.cpp
${TESTDIR}/tests/nattestrunner.o: tests/nattestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Wall -I. -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattestrunner.o tests/nattestrunner.cpp
$(COMPILE.cc) -g -Wall -I. `pkg-config --cflags jsoncpp` -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/nattestrunner.o tests/nattestrunner.cpp
${OBJECTDIR}/src/PduSender_nomain.o: ${OBJECTDIR}/src/PduSender.o src/PduSender.cpp
@@ -127,7 +153,7 @@ ${OBJECTDIR}/src/PduSender_nomain.o: ${OBJECTDIR}/src/PduSender.o src/PduSender.
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSender_nomain.o src/PduSender.cpp;\
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSender_nomain.o src/PduSender.cpp;\
else \
${CP} ${OBJECTDIR}/src/PduSender.o ${OBJECTDIR}/src/PduSender_nomain.o;\
fi
@@ -140,7 +166,7 @@ ${OBJECTDIR}/src/PduSniffer_nomain.o: ${OBJECTDIR}/src/PduSniffer.o src/PduSniff
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSniffer_nomain.o src/PduSniffer.cpp;\
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/PduSniffer_nomain.o src/PduSniffer.cpp;\
else \
${CP} ${OBJECTDIR}/src/PduSniffer.o ${OBJECTDIR}/src/PduSniffer_nomain.o;\
fi
@@ -153,7 +179,7 @@ ${OBJECTDIR}/src/main_nomain.o: ${OBJECTDIR}/src/main.o src/main.cpp
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main_nomain.o src/main.cpp;\
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/main_nomain.o src/main.cpp;\
else \
${CP} ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/main_nomain.o;\
fi
@@ -166,7 +192,7 @@ ${OBJECTDIR}/src/map/NatRange_nomain.o: ${OBJECTDIR}/src/map/NatRange.o src/map/
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/NatRange_nomain.o src/map/NatRange.cpp;\
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/NatRange_nomain.o src/map/NatRange.cpp;\
else \
${CP} ${OBJECTDIR}/src/map/NatRange.o ${OBJECTDIR}/src/map/NatRange_nomain.o;\
fi
@@ -179,7 +205,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
(echo "$$NMOUTPUT" | ${GREP} 'T _main$$'); \
then \
${RM} "$@.d";\
$(COMPILE.cc) -g -Wall -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap_nomain.o src/map/natmap.cpp;\
$(COMPILE.cc) -g -Wall `pkg-config --cflags jsoncpp` -std=c++11 -Dmain=__nomain -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/src/map/natmap_nomain.o src/map/natmap.cpp;\
else \
${CP} ${OBJECTDIR}/src/map/natmap.o ${OBJECTDIR}/src/map/natmap_nomain.o;\
fi
@@ -188,6 +214,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f2 || true; \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
@@ -196,7 +223,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
# Subprojects
.clean-subprojects:

View File

@@ -21,7 +21,7 @@ FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_DLIB_EXT=so
CND_CONF=Release
CND_DISTDIR=dist
@@ -46,8 +46,16 @@ TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f2 \
${TESTDIR}/TestFiles/f1
# Test Object Files
TESTOBJECTFILES= \
${TESTDIR}/tests/jsontest.o \
${TESTDIR}/tests/jsontestrunner.o \
${TESTDIR}/tests/nattest.o \
${TESTDIR}/tests/nattestrunner.o
# C Compiler Flags
CFLAGS=
@@ -66,11 +74,11 @@ LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/PduSender.o: src/PduSender.cpp
${MKDIR} -p ${OBJECTDIR}/src
@@ -101,12 +109,30 @@ ${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
.build-tests-conf: .build-tests-subprojects .build-conf ${TESTFILES}
.build-tests-subprojects:
${TESTDIR}/TestFiles/f2: ${TESTDIR}/tests/jsontest.o ${TESTDIR}/tests/jsontestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f2 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/jsontest.o: tests/jsontest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -O2 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontest.o tests/jsontest.cpp
${TESTDIR}/tests/jsontestrunner.o: tests/jsontestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -O2 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontestrunner.o tests/jsontestrunner.cpp
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
@@ -188,6 +214,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f2 || true; \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
@@ -196,7 +223,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
# Subprojects
.clean-subprojects:

View File

@@ -21,7 +21,7 @@ FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_DLIB_EXT=so
CND_CONF=Unitest
CND_DISTDIR=dist
@@ -46,8 +46,16 @@ TESTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tests
# Test Files
TESTFILES= \
${TESTDIR}/TestFiles/f2 \
${TESTDIR}/TestFiles/f1
# Test Object Files
TESTOBJECTFILES= \
${TESTDIR}/tests/jsontest.o \
${TESTDIR}/tests/jsontestrunner.o \
${TESTDIR}/tests/nattest.o \
${TESTDIR}/tests/nattestrunner.o
# C Compiler Flags
CFLAGS=
@@ -66,11 +74,11 @@ LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat: ${OBJECTFILES}
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/src/PduSender.o: src/PduSender.cpp
${MKDIR} -p ${OBJECTDIR}/src
@@ -101,12 +109,30 @@ ${OBJECTDIR}/src/map/natmap.o: src/map/natmap.cpp
.build-subprojects:
# Build Test Targets
.build-tests-conf: .build-conf ${TESTFILES}
.build-tests-conf: .build-tests-subprojects .build-conf ${TESTFILES}
.build-tests-subprojects:
${TESTDIR}/TestFiles/f2: ${TESTDIR}/tests/jsontest.o ${TESTDIR}/tests/jsontestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f2 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/TestFiles/f1: ${TESTDIR}/tests/nattest.o ${TESTDIR}/tests/nattestrunner.o ${OBJECTFILES:%.o=%_nomain.o}
${MKDIR} -p ${TESTDIR}/TestFiles
${LINK.cc} -o ${TESTDIR}/TestFiles/f1 $^ ${LDLIBSOPTIONS} `cppunit-config --libs`
${TESTDIR}/tests/jsontest.o: tests/jsontest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontest.o tests/jsontest.cpp
${TESTDIR}/tests/jsontestrunner.o: tests/jsontestrunner.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
$(COMPILE.cc) -g -Itest -std=c++11 `cppunit-config --cflags` -MMD -MP -MF "$@.d" -o ${TESTDIR}/tests/jsontestrunner.o tests/jsontestrunner.cpp
${TESTDIR}/tests/nattest.o: tests/nattest.cpp
${MKDIR} -p ${TESTDIR}/tests
${RM} "$@.d"
@@ -188,6 +214,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
.test-conf:
@if [ "${TEST}" = "" ]; \
then \
${TESTDIR}/TestFiles/f2 || true; \
${TESTDIR}/TestFiles/f1 || true; \
else \
./${TEST} || true; \
@@ -196,7 +223,7 @@ ${OBJECTDIR}/src/map/natmap_nomain.o: ${OBJECTDIR}/src/map/natmap.o src/map/natm
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
# Subprojects
.clean-subprojects:

View File

@@ -24,7 +24,7 @@ CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=1T1NAT
PROJECTNAME=121Nat
# Active Configuration
DEFAULTCONF=Debug
@@ -76,7 +76,7 @@ ALLCONFS=Debug Release Unitest
.depcheck-impl:
@echo "# This code depends on make tool being used" >.dep.inc
@if [ -n "${MAKE_VERSION}" ]; then \
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
echo "include \$${DEPFILES}" >>.dep.inc; \
echo "endif" >>.dep.inc; \

View File

@@ -7,29 +7,29 @@ CND_BASEDIR=`pwd`
CND_BUILDDIR=build
CND_DISTDIR=dist
# Debug configuration
CND_PLATFORM_Debug=GNU-Linux-x86
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux-x86
CND_ARTIFACT_NAME_Debug=1t1nat
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package
CND_PACKAGE_NAME_Debug=1t1nat.tar
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/1t1nat.tar
CND_PLATFORM_Debug=GNU-Linux
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux
CND_ARTIFACT_NAME_Debug=121nat
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/121nat
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package
CND_PACKAGE_NAME_Debug=121nat.tar
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/121nat.tar
# Release configuration
CND_PLATFORM_Release=GNU-Linux-x86
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86
CND_ARTIFACT_NAME_Release=1t1nat
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package
CND_PACKAGE_NAME_Release=1t1nat.tar
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/1t1nat.tar
CND_PLATFORM_Release=GNU-Linux
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux
CND_ARTIFACT_NAME_Release=121nat
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/121nat
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package
CND_PACKAGE_NAME_Release=121nat.tar
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/121nat.tar
# Unitest configuration
CND_PLATFORM_Unitest=GNU-Linux-x86
CND_ARTIFACT_DIR_Unitest=dist/Unitest/GNU-Linux-x86
CND_ARTIFACT_NAME_Unitest=1t1nat
CND_ARTIFACT_PATH_Unitest=dist/Unitest/GNU-Linux-x86/1t1nat
CND_PACKAGE_DIR_Unitest=dist/Unitest/GNU-Linux-x86/package
CND_PACKAGE_NAME_Unitest=1t1nat.tar
CND_PACKAGE_PATH_Unitest=dist/Unitest/GNU-Linux-x86/package/1t1nat.tar
CND_PLATFORM_Unitest=GNU-Linux
CND_ARTIFACT_DIR_Unitest=dist/Unitest/GNU-Linux
CND_ARTIFACT_NAME_Unitest=121nat
CND_ARTIFACT_PATH_Unitest=dist/Unitest/GNU-Linux/121nat
CND_PACKAGE_DIR_Unitest=dist/Unitest/GNU-Linux/package
CND_PACKAGE_NAME_Unitest=121nat.tar
CND_PACKAGE_PATH_Unitest=dist/Unitest/GNU-Linux/package/121nat.tar
#
# include compiler specific variables
#

View File

@@ -6,16 +6,16 @@
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_CONF=Debug
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
OUTPUT_BASENAME=121nat
PACKAGE_TOP_DIR=121nat/
# Functions
function checkReturnCode
@@ -60,15 +60,15 @@ mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
makeDirectory "${NBTMPDIR}/121nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar *
checkReturnCode
# Cleanup

View File

@@ -6,16 +6,16 @@
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_CONF=Release
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
OUTPUT_BASENAME=121nat
PACKAGE_TOP_DIR=121nat/
# Functions
function checkReturnCode
@@ -60,15 +60,15 @@ mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
makeDirectory "${NBTMPDIR}/121nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar *
checkReturnCode
# Cleanup

View File

@@ -6,16 +6,16 @@
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux-x86
CND_PLATFORM=GNU-Linux
CND_CONF=Unitest
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/1t1nat
OUTPUT_BASENAME=1t1nat
PACKAGE_TOP_DIR=1t1nat/
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/121nat
OUTPUT_BASENAME=121nat
PACKAGE_TOP_DIR=121nat/
# Functions
function checkReturnCode
@@ -60,15 +60,15 @@ mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/1t1nat/bin"
makeDirectory "${NBTMPDIR}/121nat/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/1t1nat.tar *
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/121nat.tar *
checkReturnCode
# Cleanup

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="95">
<configurationDescriptor version="97">
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
@@ -14,6 +14,7 @@
<logicalFolder name="ResourceFiles"
displayName="Resource Files"
projectFiles="true">
<itemPath>src/config.json</itemPath>
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
@@ -30,6 +31,11 @@
displayName="Test Files"
projectFiles="false"
kind="TEST_LOGICAL_FOLDER">
<logicalFolder name="f2" displayName="JsonTest" projectFiles="true" kind="TEST">
<itemPath>tests/jsontest.cpp</itemPath>
<itemPath>tests/jsontest.h</itemPath>
<itemPath>tests/jsontestrunner.cpp</itemPath>
</logicalFolder>
<logicalFolder name="f1" displayName="nattest" projectFiles="true" kind="TEST">
<itemPath>tests/nattest.cpp</itemPath>
<itemPath>tests/nattest.h</itemPath>
@@ -60,6 +66,7 @@
<linkerLibItems>
<linkerLibLibItem>tins</linkerLibLibItem>
<linkerLibLibItem>pthread</linkerLibLibItem>
<linkerOptionItem>`pkg-config --libs jsoncpp`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</compileType>
@@ -83,6 +90,20 @@
</linkerLibItems>
</linkerTool>
</folder>
<folder path="TestFiles/f2">
<cTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f2</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/PduSender.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/PduSender.h" ex="false" tool="3" flavor2="0">
@@ -91,6 +112,8 @@
</item>
<item path="src/PduSniffer.h" ex="false" tool="3" flavor2="0">
</item>
<item path="src/config.json" ex="false" tool="3" flavor2="0">
</item>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/NatRange.cpp" ex="false" tool="1" flavor2="0">
@@ -101,6 +124,12 @@
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/jsontest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">
@@ -148,6 +177,20 @@
</linkerLibItems>
</linkerTool>
</folder>
<folder path="TestFiles/f2">
<cTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f2</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/PduSender.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/PduSender.h" ex="false" tool="3" flavor2="0">
@@ -156,6 +199,8 @@
</item>
<item path="src/PduSniffer.h" ex="false" tool="3" flavor2="0">
</item>
<item path="src/config.json" ex="false" tool="3" flavor2="0">
</item>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/NatRange.cpp" ex="false" tool="1" flavor2="0">
@@ -166,6 +211,12 @@
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/jsontest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">
@@ -207,6 +258,20 @@
</linkerLibItems>
</linkerTool>
</folder>
<folder path="TestFiles/f2">
<cTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</cTool>
<ccTool>
<commandLine>`cppunit-config --cflags`</commandLine>
</ccTool>
<linkerTool>
<output>${TESTDIR}/TestFiles/f2</output>
<linkerLibItems>
<linkerOptionItem>`cppunit-config --libs`</linkerOptionItem>
</linkerLibItems>
</linkerTool>
</folder>
<item path="src/PduSender.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/PduSender.h" ex="false" tool="3" flavor2="0">
@@ -215,6 +280,8 @@
</item>
<item path="src/PduSniffer.h" ex="false" tool="3" flavor2="0">
</item>
<item path="src/config.json" ex="false" tool="3" flavor2="0">
</item>
<item path="src/main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="src/map/NatRange.cpp" ex="false" tool="1" flavor2="0">
@@ -225,6 +292,12 @@
</item>
<item path="src/map/natmap.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/jsontest.h" ex="false" tool="3" flavor2="0">
</item>
<item path="tests/jsontestrunner.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="tests/nattest.h" ex="false" tool="3" flavor2="0">

8
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,8 @@
file(GLOB_RECURSE 121Nat_Src_Files "*.h" "*.cpp")
add_executable(121Nat ${121Nat_Src_Files})
target_link_libraries (121Nat tins pthread jsoncpp)
target_compile_features(121Nat PRIVATE cxx_range_for)
install(TARGETS 121Nat
RUNTIME DESTINATION bin
)

12
src/config.json Normal file
View File

@@ -0,0 +1,12 @@
[{
"vboxnet0": {
"rangeIpAddr": "10.0.0.0",
"rangeNetmask": "255.255.240.0"
}
}, {
"vboxnet1": {
"rangeIpAddr": "172.27.0.0",
"rangeNetmask": "255.255.0.0"
}
}]

View File

@@ -4,27 +4,42 @@
#include "map/natmap.h"
#include "PduSniffer.h"
#include "PduSender.h"
int main()
#include <json/json.h>
#include <json/value.h>
#include <fstream>
int main(int argc, char** argv)
{
Tins::NetworkInterface net1("vboxnet0");
Tins::NetworkInterface net2("vboxnet1");
otonat::NatRange range1(net1, "10.0.0.0", "255.255.240.0");
otonat::NatRange range2(net2, "172.27.0.0", "255.255.0.0");
if (argc < 2){
return 0;
}
otonat::NatMap::NatRangeList list;
list.push_back(range1);
list.push_back(range2);
std::ifstream config_doc(argv[1], std::ifstream::binary);
Json::Value root;
config_doc >> root;
const Json::Value netcards = root;
for (Json::Value netcard : netcards) {
const std::string name = netcard.getMemberNames()[0].c_str();
const Json::Value cardMember = netcard[name];
const std::string ipStr = cardMember["rangeIpAddr"].asString();
const std::string maskStr = cardMember["rangeNetmask"].asString();
const Tins::NetworkInterface net(name);
const otonat::NatRange netRange(net, Tins::IPv4Address(ipStr), Tins::IPv4Address(maskStr));
list.push_back(netRange);
}
otonat::NatMap natMap = otonat::NatMap(list);
otonat::PduSniffer sniffer(&natMap);
otonat::PduSender sender(&natMap);
std::thread * mapThread = natMap.translateThread();
std::thread * senderThread = sender.SendPdusFromQueueThread();
std::thread * snifferThread1 = sniffer.SniffInterfaceInNewThread(net1);
std::thread * snifferThread2 = sniffer.SniffInterfaceInNewThread(net2);
for (otonat::NatRange & net : list) {
sniffer.SniffInterfaceInNewThread(net.interface);
}
mapThread->join();
senderThread->join();
snifferThread1->join();
snifferThread2->join();
return 0;
}

58
tests/jsontest.cpp Normal file
View File

@@ -0,0 +1,58 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: jsontest.cpp
* Author: dev
*
* Created on 18.11.2015, 20:41:37
*/
#include "jsontest.h"
#include <json/json.h>
#include <json/value.h>
#include <fstream>
#include <iostream>
#include <string.h>
#include "../src/map/NatRange.h"
#include <tins/tins.h>
CPPUNIT_TEST_SUITE_REGISTRATION(jsontest);
jsontest::jsontest() {
}
jsontest::~jsontest() {
}
void jsontest::setUp() {
}
void jsontest::tearDown() {
}
void jsontest::testReadConfig() {
std::ifstream config_doc("src/config.json", std::ifstream::binary);
Json::Value root;
config_doc >> root;
const Json::Value netcards = root;
for (Json::Value netcard : netcards) {
const std::string name = netcard.getMemberNames()[0].c_str();
const Json::Value cardMember = netcard[name];
const std::string ipStr = cardMember["rangeIpAddr"].asString();
const std::string maskStr = cardMember["rangeNetmask"].asString();
CPPUNIT_ASSERT(name == "vboxnet0" || name == "vboxnet1");
CPPUNIT_ASSERT(ipStr == "10.0.0.0" || ipStr == "172.27.0.0");
CPPUNIT_ASSERT(maskStr == "255.255.240.0" || maskStr == "255.255.0.0");
const Tins::NetworkInterface net(name);
const otonat::NatRange netRange(net, Tins::IPv4Address(ipStr), Tins::IPv4Address(maskStr));
CPPUNIT_ASSERT(name == netRange.interface.name());
CPPUNIT_ASSERT(ipStr == netRange.rangeIpAddr.to_string());
CPPUNIT_ASSERT(maskStr == netRange.rangeNetmask.to_string());
}
}

37
tests/jsontest.h Normal file
View File

@@ -0,0 +1,37 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: jsontest.h
* Author: dev
*
* Created on 18.11.2015, 20:41:37
*/
#ifndef JSONTEST_H
#define JSONTEST_H
#include <cppunit/extensions/HelperMacros.h>
class jsontest : public CPPUNIT_NS::TestFixture {
CPPUNIT_TEST_SUITE(jsontest);
CPPUNIT_TEST(testReadConfig);
CPPUNIT_TEST_SUITE_END();
public:
jsontest();
virtual ~jsontest();
void setUp();
void tearDown();
private:
void testReadConfig();
};
#endif /* JSONTEST_H */

89
tests/jsontestrunner.cpp Normal file
View File

@@ -0,0 +1,89 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: newtestrunner.cpp
* Author: dev
*
* Created on 18.11.2015, 20:41:38
*/
// CppUnit site http://sourceforge.net/projects/cppunit/files
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
#include <cppunit/Test.h>
#include <cppunit/TestFailure.h>
#include <cppunit/portability/Stream.h>
class ProgressListener : public CPPUNIT_NS::TestListener {
public:
ProgressListener()
: m_lastTestFailed(false) {
}
~ProgressListener() {
}
void startTest(CPPUNIT_NS::Test *test) {
CPPUNIT_NS::stdCOut() << test->getName();
CPPUNIT_NS::stdCOut() << "\n";
CPPUNIT_NS::stdCOut().flush();
m_lastTestFailed = false;
}
void addFailure(const CPPUNIT_NS::TestFailure &failure) {
CPPUNIT_NS::stdCOut() << " : " << (failure.isError() ? "error" : "assertion");
m_lastTestFailed = true;
}
void endTest(CPPUNIT_NS::Test *test) {
if (!m_lastTestFailed)
CPPUNIT_NS::stdCOut() << " : OK";
CPPUNIT_NS::stdCOut() << "\n";
}
private:
/// Prevents the use of the copy constructor.
ProgressListener(const ProgressListener &copy);
/// Prevents the use of the copy operator.
void operator=(const ProgressListener &copy);
private:
bool m_lastTestFailed;
};
int main() {
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener(&result);
// Add a listener that print dots as test run.
ProgressListener progress;
controller.addListener(&progress);
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
runner.run(controller);
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter(&result, CPPUNIT_NS::stdCOut());
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}