Makefile
# Authors:
# Trevor Perrin
# Hubert Kario - test and test-dev
#
PYTHON2 := $(shell which python2 2>/dev/null)
PYTHON3 := $(shell which python3 2>/dev/null)
COVERAGE := $(shell which coverage 2>/dev/null)
COVERAGE2 := $(shell which coverage2 2>/dev/null)
COVERAGE3 := $(shell which coverage3 2>/dev/null)
.PHONY : default
default:
@echo To install tlslite run \"python -m pip install .\" or \"make install\"
.PHONY: install
install:
python -m pip install .
.PHONY : clean
clean:
rm -rf tlslite/__pycache__
rm -rf tlslite/integration/__pycache__
rm -rf tlslite/utils/__pycache__
rm -rf tlslite/*.pyc
rm -rf tlslite/utils/*.pyc
rm -rf tlslite/integration/*.pyc
rm -rf unit_tests/*.pyc
rm -rf unit_tests/__pycache__
rm -rf dist
rm -rf build
rm -f MANIFEST
$(MAKE) -C docs clean
.PHONY : docs
docs:
$(MAKE) -C docs html
dist: docs
python -m build
.PHONY : test
test:
python tests/tlstest.py server localhost:4433 tests & sleep 4
python tests/tlstest.py client localhost:4433 tests
.PHONY : test-utils
test-utils:
PYTHONPATH=. python scripts/tls.py server -c tests/serverX509Cert.pem -k tests/serverX509Key.pem localhost:4433 & echo "$$!" > server.pid & sleep 4
PYTHONPATH=. python scripts/tls.py client localhost:4433
kill `cat server.pid`
wait `cat server.pid` || :
.PHONY : test-local
test-local: test-utils
PYTHONPATH=. COVERAGE_FILE=.coverage.server coverage run --branch --source tlslite tests/tlstest.py server localhost:4433 tests & sleep 4
PYTHONPATH=. COVERAGE_FILE=.coverage.client coverage run --branch --source tlslite tests/tlstest.py client localhost:4433 tests
test-dev:
ifdef PYTHON2
@echo "Running test suite with Python 2"
ifndef COVERAGE2
python2 -m unittest discover -v
else
coverage2 run --branch --source tlslite -m unittest discover
endif
PYTHONPATH=. COVERAGE_FILE=.coverage.2.server coverage2 run --branch --source tlslite tests/tlstest.py server localhost:4433 tests & sleep 4
PYTHONPATH=. COVERAGE_FILE=.coverage.2.client coverage2 run --branch --source tlslite tests/tlstest.py client localhost:4433 tests
endif
ifdef PYTHON3
@echo "Running test suite with Python 3"
ifndef COVERAGE2
python3 -m unittest discover -v
else
coverage3 run --append --branch --source tlslite -m unittest discover
endif
PYTHONPATH=. COVERAGE_FILE=.coverage.3.server coverage3 run --branch --source tlslite tests/tlstest.py server localhost:4433 tests & sleep 4
PYTHONPATH=. COVERAGE_FILE=.coverage.3.client coverage3 run --branch --source tlslite tests/tlstest.py client localhost:4433 tests
endif
ifndef PYTHON2
ifndef PYTHON3
@echo "Running test suite with default Python"
ifndef COVERAGE
python -m unittest discover -v
else
coverage run --branch --source tlslite -m unittest discover
endif
PYTHONPATH=. COVERAGE_FILE=.coverage.server coverage run --branch --source tlslite tests/tlstest.py server localhost:4433 tests & sleep 4
PYTHONPATH=. COVERAGE_FILE=.coverage.client coverage run --branch --source tlslite tests/tlstest.py client localhost:4433 tests
endif
endif
$(MAKE) -C docs dummy
pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" tlslite > pylint_report.txt || :
diff-quality --violations=pylint --fail-under=90 pylint_report.txt
ifdef COVERAGE2
coverage2 combine --append .coverage .coverage.2.server .coverage.2.client
coverage2 report -m
coverage2 xml
diff-cover --fail-under=90 coverage.xml
endif
ifdef COVERAGE3
coverage2 combine --append .coverage .coverage.3.server .coverage.3.client
coverage3 report -m
coverage3 xml
diff-cover --fail-under=90 coverage.xml
endif
ifndef COVERAGE2
ifndef COVERAGE3
ifdef COVERAGE
coverage combine --append .coverage .coverage.server .coverage.client
coverage report -m
coverage xml
diff-cover --fail-under=90 coverage.xml
endif
endif
endif
tests/TACK_Key1.pem:
tack genkey -x -p test -o tests/TACK_Key1.pem
tests/TACK_Key2.pem:
tack genkey -x -p test -o tests/TACK_Key2.pem
# the following needs to be used only when the server certificate gets recreated
gen-tacks: tests/TACK_Key1.pem tests/TACK_Key2.pem
tack sign -x -k tests/TACK_Key1.pem -p test -c tests/serverX509Cert.pem -o tests/TACK1.pem
tack sign -x -k tests/TACK_Key2.pem -p test -c tests/serverX509Cert.pem -o tests/TACK2.pem