test/Makefile
author Edouard Tisserant <edouard@pep-project.org>
Thu, 20 Jul 2017 15:09:34 +0200
changeset 1932 1bbe9e6435b7
parent 1929 bad90979fd7e
child 1934 c59a9b6e9f40
permissions -rw-r--r--
re-started gpg-agent killings - it doesn't hurt
vb@1513
     1
vb@1513
     2
# This file is under GNU General Public License 3.0
vb@1513
     3
# see LICENSE.txt
vb@1513
     4
edouard@1844
     5
HERE := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
edouard@1844
     6
vb@2
     7
include ../Makefile.conf
vb@2
     8
vb@66
     9
CC?=g++ -std=gnu++11 -pthread
vb@66
    10
CXX?=g++ -std=gnu++11 -pthread
vb@66
    11
LD?=$(CXX)
Edouard@134
    12
LDFLAGS?=-L$(HOME)/lib
vb@1304
    13
LDLIBS?=-letpan -lpEpEngine -lstdc++ -L../asn.1 -lasn1
vb@1304
    14
ifeq ($(BUILD_FOR),Linux)
vb@1310
    15
	LDLIBS+= -luuid
vb@1304
    16
endif
roker@762
    17
CXXFLAGS?=-std=c++11 -g -O0 -I../src -I../asn.1
vb@2
    18
# CXXFLAGS=-O3 -DNDEBUG
vb@2
    19
Edouard@178
    20
ifeq ("$(OPENPGP)","NETPGP")
Edouard@178
    21
	LDLIBS+= -lnetpgp
Edouard@178
    22
endif
Edouard@178
    23
vb@2
    24
TARGET=pEpEngineTest
vb@2
    25
vb@50
    26
UNIT_TESTS_SOURCE=$(wildcard *_test.cc)
vb@50
    27
UNIT_TESTS=$(subst .cc,,$(UNIT_TESTS_SOURCE))
krista@1617
    28
UNIT_TESTS_RUN=$(subst .cc,_run,$(UNIT_TESTS_SOURCE))
vb@2
    29
vb@48
    30
all: $(TARGET) $(UNIT_TESTS)
vb@2
    31
vb@2
    32
.PHONY: clean
vb@2
    33
roker@1659
    34
# don't delete .o files!
roker@1659
    35
.PRECIOUS: %.o
roker@1659
    36
edouard@1844
    37
unexport GNUPGHOME;
edouard@1844
    38
TEST_HOME=$(HERE)/test_home
edouard@1844
    39
TEST_HOME_SKEL=$(TEST_HOME)_skel
edouard@1844
    40
TEST_GNUPGHOME_SKEL=$(TEST_HOME)_skel/.gnupg
edouard@1844
    41
edouard@1929
    42
ifeq ($(shell which gpg2), )
edouard@1929
    43
    GPG_CMD = gpg
edouard@1929
    44
else
edouard@1929
    45
    GPG_CMD = gpg2
edouard@1929
    46
endif
edouard@1929
    47
edouard@1844
    48
ifeq ($(shell uname), Darwin)
edouard@1844
    49
    LIBPATH = DYLD_LIBRARY_PATH
edouard@1851
    50
    LLDB_BIN = /Applications/Xcode.app/Contents/Developer/usr/bin/lldb
edouard@1844
    51
else
edouard@1844
    52
    LIBPATH = LD_LIBRARY_PATH
edouard@1851
    53
    LLDB_BIN = lldb
edouard@1844
    54
endif
edouard@1844
    55
edouard@1844
    56
TEST_CMD_PFX = $(LIBPATH)=$(HOME)/lib:../src HOME=$(TEST_HOME)
edouard@1844
    57
edouard@1932
    58
define killgpg =
edouard@1932
    59
	gpgconf --kill gpg-agent
edouard@1932
    60
	HOME=$(TEST_HOME) gpgconf --kill gpg-agent
edouard@1932
    61
	HOME=$(TEST_HOME_SKEL) gpgconf --kill gpg-agent
edouard@1932
    62
endef
edouard@1932
    63
ifeq ("$(OPENPGP)","NETPGP")
edouard@1932
    64
    killgpg_if_using_it =
edouard@1932
    65
else
edouard@1932
    66
    killgpg_if_using_it = $(killgpg)
edouard@1932
    67
endif
edouard@1932
    68
edouard@1844
    69
test_home_skel:
edouard@1932
    70
	$(killgpg)
edouard@1844
    71
	mkdir -p test_home_skel
krista@1920
    72
	mkdir -p $(TEST_GNUPGHOME_SKEL)/private-keys-v1.d
edouard@1929
    73
	$(GPG_CMD) --import --batch --homedir $(TEST_GNUPGHOME_SKEL) 0x*.asc *_sec.asc
edouard@1932
    74
	$(killgpg)
edouard@1844
    75
edouard@1844
    76
test_home_: test_home_skel
edouard@1932
    77
	$(killgpg_if_using_it)
edouard@1844
    78
	rm -rf test_home
edouard@1844
    79
	cp -a test_home_skel test_home
edouard@1844
    80
vb@2
    81
clean:
vb@458
    82
	rm -f *.o $(TARGET) *.a *~ $(UNIT_TESTS) pep_Dokument_Titel.pdf msg4.asc
edouard@1844
    83
	rm -Rf *.dSYM test_home test_home_skel pubring.gpg secring.gpg random_seed *.conf trustdb.gpg
vb@2
    84
edouard@1844
    85
test: pEpEngineTest test_home_
edouard@1844
    86
	$(TEST_CMD_PFX) ./pEpEngineTest
vb@2
    87
roker@1656
    88
%_test : %_test.o test_util.o
roker@1656
    89
	 $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
roker@1656
    90
edouard@1844
    91
%_run : % test_home_
edouard@1844
    92
	$(TEST_CMD_PFX) ./$<
Edouard@699
    93
edouard@1844
    94
%_lldb : % test_home_
edouard@1851
    95
	$(TEST_CMD_PFX) $(LLDB_BIN) ./$<
roker@1656
    96
edouard@1844
    97
%_valgrind : % test_home_
edouard@1844
    98
	$(TEST_CMD_PFX) valgrind --leak-check=yes ./$<
Edouard@745
    99
edouard@1844
   100
%_gdb : % test_home_
edouard@1844
   101
	$(TEST_CMD_PFX) gdb ./$<
Edouard@770
   102
Edouard@699
   103
unit_tests: $(UNIT_TESTS) $(UNIT_TESTS_RUN)
vb@142
   104
vb@142
   105
install:
vb@142
   106
	make -C .. install