Add benchmarking requirements and deps.

pull/187/head
Kieran Prasch 2018-07-05 19:01:59 -07:00
parent 3f2c8b0447
commit 4f897b326e
3 changed files with 49 additions and 4 deletions

View File

@ -108,7 +108,7 @@ jobs:
- run:
name: Profile Re-Encryption Memory Usage
command: |
pipenv run valgrind --tool=massif --massif-out-file=./reencryption_memory_profile.massif.out python3 ./tests/scripts/reencryption_memory_profile.py 1000
pipenv run valgrind --tool=massif --massif-out-file=./reencryption_memory_profile.massif.out python3 ./tests/metrics/reencryption_firehose.py
- store_artifacts:
path: ./reencryption_memory_profile.massif.out
@ -142,3 +142,33 @@ jobs:
pipenv run make doctest
- store_artifacts:
path: ./docs/build/doctest/output.txt
reencryption_benchmark-36:
working_directory: ~/pyUmbral-36/
docker:
- image: circleci/python:3.6
steps:
- checkout
- restore_cache:
keys:
- v1-deps-{{ .Environment.CIRCLE_WORKFLOW_ID }}-{{ checksum "Pipfile" }}-py36
- v1-benchmarks-py36
- run:
name: Run Documentation Tests
command: |
cd test/metrics
pipenv install -e . --skip-lock
pipenv run pytest -v tests/metrics/reencryption_benchmark.py \
--benchmark-verbose \
--benchmark-compare \
--benchmark-histogram=./histograms/histogram \
--benchmark-autosave \
--junitxml=./reports/pytest/python36-results.xml \
- save_cache:
paths:
- "./tests/metrics/.benchmarks"
key: v1-benchmarks-py36
- store_artifacts:
path: ./tests/metrics/histograms
- store_test_results:
path: /reports/pytest

10
.gitignore vendored
View File

@ -245,3 +245,13 @@ pip-selfcheck.json
.idea
/mypy_report/
/tests/metrics/.benchmarks/
.circleci/execute_build.sh
pytest.ini
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0001_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_012048_uncommited-changes.json
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0002_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_012504_uncommited-changes.json
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0003_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_012940_uncommited-changes.json
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0004_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_013515_uncommited-changes.json
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0005_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_013954_uncommited-changes.json
tests/metrics/.benchmarks/Linux-CPython-3.6-64bit/0006_060d9fd1f397bc6a55992b0d95dd8ed31c4f3f3c_20180706_014433_uncommited-changes.json
tests/metrics/histograms/

11
Pipfile
View File

@ -8,12 +8,9 @@ name = "pypi"
cryptography35_linux = { path="./wheelhouse/cryptography-2.3.dev1-cp35-cp35m-linux_x86_64.whl", markers="python_version >= '3.5' and python_version < '3.6' and platform_system == 'Linux'"}
cryptography36_linux = { path="./wheelhouse/cryptography-2.3.dev1-cp36-cp36m-linux_x86_64.whl", markers="python_version >= '3.6' and python_version < '3.7' and platform_system == 'Linux'"}
cryptography36_darwin = { path="./wheelhouse/cryptography-2.3.dev1-cp36-cp36m-macosx_10_13_x86_64.whl", markers="python_version >= '3.6' and python_version < '3.7' and platform_system == 'Darwin'"}
# Use bytestringSplitter from github until we release it on PyPi.
bytestringSplitter = {git = "https://github.com/nucypher/bytestringSplitter.git", ref = "nucypher-depend"}
pynacl = "*"
# Since wheel-specified dependencies aren't locked...
idna = ">=2.1"
asn1crypto = ">=0.21.0"
@ -21,12 +18,20 @@ six = ">=1.4.1"
cffi = ">=1.7"
[dev-packages]
# Pytest Plugins
pytest = "*"
pytest-mypy = "*"
pytest-mock = "*"
pytest-cov = "*"
pytest-benchmark = {version = "*", extras = ["histogram"]}
# Pytest Plugin Subdeps
mock = "*"
mypy = "*"
coverage = "*"
codecov = "*"
# Docs
sphinx = "*"
sphinx-autobuild = "*"
[pipenv]
allow_prereleases = true