diff --git a/.circleci/config.yml b/.circleci/config.yml index 2dcbd14..6055965 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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 diff --git a/.gitignore b/.gitignore index fcff3aa..2bde4d0 100644 --- a/.gitignore +++ b/.gitignore @@ -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/ diff --git a/Pipfile b/Pipfile index 26656eb..cf0f734 100644 --- a/Pipfile +++ b/Pipfile @@ -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