diff --git a/CMakeLists.txt b/CMakeLists.txt index e272660c67e..d16e5f5f053 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -639,7 +639,7 @@ if (BUILD_TESTING) pytest -x -n=${N} --reruns=2 --durations=10 --cache-clear -rpfsq -o log_cli=true --log-cli-level=DEBUG --provider-version=$ENV{S2N_LIBCRYPTO} - --provider-criterion=off --fips-mode=0 ${test_file_path} + --fips-mode=0 ${test_file_path} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests/integrationv2 ) else() diff --git a/bindings/rust/integration/Cargo.toml b/bindings/rust/integration/Cargo.toml index a229b2df586..684cc4714ac 100644 --- a/bindings/rust/integration/Cargo.toml +++ b/bindings/rust/integration/Cargo.toml @@ -8,17 +8,4 @@ publish = false [dependencies] s2n-tls = { path = "../s2n-tls"} s2n-tls-sys = { path = "../s2n-tls-sys" } -criterion = { version = "0.3", features = ["html_reports"] } -anyhow = "1" -unicode-width = "=0.1.13" # newer versions require newer rust, see https://github.com/aws/s2n-tls/issues/4786 -[[bench]] -name = "s2nc" -harness = false - -[[bench]] -name = "s2nd" -harness = false - -[dev-dependencies] -regex = "=1.9.6" # newer versions require rust 1.65, see https://github.com/aws/s2n-tls/issues/4242 diff --git a/bindings/rust/integration/benches/s2nc.rs b/bindings/rust/integration/benches/s2nc.rs deleted file mode 100644 index d2fe97ff0db..00000000000 --- a/bindings/rust/integration/benches/s2nc.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -use criterion::{criterion_group, criterion_main, Criterion}; -use std::{env, process::Command, time::Duration}; - -pub fn s2nc(c: &mut Criterion) { - let mut group = c.benchmark_group("s2nc"); - let s2nc_env: &str = &env::var("S2NC_ARGS").unwrap(); - let s2nc_test_name: &str = &env::var("S2NC_TEST_NAME").unwrap(); - let test_name = format!("s2nc_{}", s2nc_test_name); - let s2nc_split = s2nc_env.split(' ').collect::>(); - group.bench_function(test_name, move |b| { - b.iter(|| { - let s2nc_argvec = s2nc_split.clone(); - let status = Command::new("/usr/local/bin/s2nc") - .args(s2nc_argvec) - .status() - .expect("failed to execute process"); - assert!(status.success()); - }); - }); - - group.finish(); -} - -criterion_group!(name = benches; - config = Criterion::default().sample_size(10).measurement_time(Duration::from_secs(1)); - targets = s2nc); -criterion_main!(benches); diff --git a/bindings/rust/integration/benches/s2nd.rs b/bindings/rust/integration/benches/s2nd.rs deleted file mode 100644 index 8e2d06235fa..00000000000 --- a/bindings/rust/integration/benches/s2nd.rs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -use criterion::{criterion_group, criterion_main, Criterion}; -use std::{env, process::Command, time::Duration}; - -pub fn s2nd(c: &mut Criterion) { - let mut group = c.benchmark_group("s2nd"); - let s2nd_env: &str = &env::var("S2ND_ARGS").unwrap(); - let s2nd_test_name: &str = &env::var("S2ND_TEST_NAME").unwrap(); - let test_name = format!("s2nd_{}", s2nd_test_name); - let s2nd_split = s2nd_env.split(' ').collect::>(); - group.bench_function(test_name, move |b| { - b.iter(|| { - let s2nd_argvec = s2nd_split.clone(); - let status = Command::new("/usr/local/bin/s2nd") - .args(s2nd_argvec) - .status() - .expect("failed to execute process"); - assert!(status.success()); - }); - }); - - group.finish(); -} - -criterion_group!(name = benches; - config = Criterion::default().sample_size(10).measurement_time(Duration::from_secs(1)); - targets = s2nd); -criterion_main!(benches); diff --git a/codebuild/bin/criterion_baseline.sh b/codebuild/bin/criterion_baseline.sh deleted file mode 100755 index fa644b0a80a..00000000000 --- a/codebuild/bin/criterion_baseline.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). -# You may not use this file except in compliance with the License. -# A copy of the License is located at -# -# http://aws.amazon.com/apache2.0 -# -# or in the "license" file accompanying this file. This file is distributed -# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -# express or implied. See the License for the specific language governing -# permissions and limitations under the License. - -set -eu -source codebuild/bin/s2n_setup_env.sh -source codebuild/bin/utils.sh - -# Limit the number of child processes in the test run -export RUST_BACKTRACE=1 -export TOX_TEST_NAME="$INTEGV2_TEST" - -# There can be only one artifact config per batch job, -# so we're scipting the baseline upload steps here. -upload_artifacts(){ - cd tests/integrationv2/target/criterion - echo "Creating zip ${AWS_S3_PATH}" - zip -r "${AWS_S3_PATH}" ./* - aws s3 cp "${AWS_S3_PATH}" "${AWS_S3_URL}" - echo "S3 upload complete" -} - -if [ -d "third-party-src" ]; then - echo "Not running against c.a.c." - return 0 -fi - -# setting LOCAL_TESTING disables a check for an existing baseline. -if [ -z "${LOCAL_TESTING:-}" ]; then - # Fetch creds and the latest release number. - gh_login s2n_codebuild_PRs - LATEST_RELEASE_VER=$(get_latest_release) - # Build a specific filename for this release - AWS_S3_PATH="integv2criterion_${INTEGV2_TEST}_${LATEST_RELEASE_VER}.zip" - zip_count=$(aws s3 ls "${AWS_S3_URL}${AWS_S3_PATH}"|wc -l||true) - - # Only do the baseline if an artifact for the current release doesn't exist. - if [ "$zip_count" -eq 0 ]; then - echo "File ${AWS_S3_URL}${AWS_S3_PATH} not found" - criterion_install_deps - ORIGINAL_COMMIT=$(git rev-parse HEAD) - git fetch --tags - git checkout "$LATEST_RELEASE_VER" - S2N_USE_CRITERION=baseline make -C tests/integrationv2 "$INTEGV2_TEST" - upload_artifacts - git reset --hard ${ORIGINAL_COMMIT} - else - echo "Found existing artifact for ${LATEST_RELEASE_VER}, not rebuilding." - exit 0 - fi -else - echo "Local testing enabled; baselining without checking s3" - criterion_install_deps - S2N_USE_CRITERION=baseline make -C tests/integrationv2 "$INTEGV2_TEST" -fi - diff --git a/codebuild/bin/criterion_delta.sh b/codebuild/bin/criterion_delta.sh deleted file mode 100755 index b2a28fecec7..00000000000 --- a/codebuild/bin/criterion_delta.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). -# You may not use this file except in compliance with the License. -# A copy of the License is located at -# -# http://aws.amazon.com/apache2.0 -# -# or in the "license" file accompanying this file. This file is distributed -# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -# express or implied. See the License for the specific language governing -# permissions and limitations under the License. -set -eu -source ./codebuild/bin/utils.sh -export AWS_S3_BUCKET="s3://s2n-tls-logs/" -# Limit the number of child processes in the test run -export RUST_BACKTRACE=1 - -export GIT_COMMIT=$(git log -n 1 --format="%h") -export AWS_S3_REPORT_PATH="reports/${INTEGV2_TEST}/$(date +%Y%m%d_%H%M_${GIT_COMMIT})" - -# CodeBuild artifacts are too limited; -# scipting the baseline download steps here. -download_artifacts(){ - mkdir -p ./tests/integrationv2/target/criterion || true - echo "Downloading ${AWS_S3_BUCKET}${1}/${2}" - pushd ./tests/integrationv2/target/criterion/ - aws s3 cp "${AWS_S3_BUCKET}${1}/${2}" . - unzip -o "${2}" - echo "S3 download complete" - popd -} - -upload_report(){ - cd tests/integrationv2/target/criterion - echo "Uploading report to ${AWS_S3_BUCKET}/${AWS_S3_REPORT_PATH}" - aws s3 sync . "${AWS_S3_BUCKET}${AWS_S3_REPORT_PATH}" - echo "S3 upload complete" -} - -# Fetch creds and the latest release number. -gh_login s2n_codebuild_PRs -LATEST_RELEASE_VER=$(get_latest_release) -AWS_ZIPFILE="integv2criterion_${INTEGV2_TEST}_${LATEST_RELEASE_VER}.zip" -AWS_S3_BASE_PATH="release" -criterion_install_deps -download_artifacts ${AWS_S3_BASE_PATH} ${AWS_ZIPFILE} - -echo "Current dir: $(pwd)" -S2N_USE_CRITERION=delta make -C tests/integrationv2 "$INTEGV2_TEST" -upload_report - diff --git a/codebuild/spec/buildspec_ubuntu_integv2criterion.yml b/codebuild/spec/buildspec_ubuntu_integv2criterion.yml deleted file mode 100644 index 0b737941c73..00000000000 --- a/codebuild/spec/buildspec_ubuntu_integv2criterion.yml +++ /dev/null @@ -1,59 +0,0 @@ ---- -version: 0.2 - -env: - variables: - # CODEBUILD_ is a reserved namespace. - CB_BIN_DIR: "./codebuild/bin" - -# Doc for batch https://docs.aws.amazon.com/codebuild/latest/userguide/batch-build-buildspec.html#build-spec.batch.build-list -batch: - build-graph: - - identifier: s2nIntegrationv2WellKnownEndpointsBaseline - buildspec: codebuild/spec/buildspec_ubuntu_integv2criterion_baseline.yml - env: - privileged-mode: true - compute-type: BUILD_GENERAL1_LARGE - variables: - INTEGV2_TEST: test_well_known_endpoints - S2N_USE_CRITERION: 2 - TESTS: integrationv2crit - GCC_VERSION: 6 - RUST_BACKTRACE: 1 - - identifier: s2nIntegrationv2WellKnownEndpoints - debug-session: true - env: - privileged-mode: true - compute-type: BUILD_GENERAL1_LARGE - variables: - INTEGV2_TEST: test_well_known_endpoints - S2N_USE_CRITERION: 1 - TESTS: integrationv2crit - GCC_VERSION: 6 - ARTIFACT_BUCKET: s3://s2n-tls-logs/release - ARTIFACT_FILE: integv2criterion - depend-on: - - s2nIntegrationv2WellKnownEndpointsBaseline - -phases: - install: - runtime-versions: - python: 3.x - commands: - - $CB_BIN_DIR/install_ubuntu_dependencies.sh - - $CB_BIN_DIR/utils.sh gh_login s2n_codebuild_PRs - - export LATEST_RELEASE_VER=$($CB_BIN_DIR/utils.sh get_latest_release) - - mkdir -p tests/integrationv2/target/criterion || true - - aws s3 cp ${ARTIFACT_BUCKET}/${ARTIFACT_FILE}_${INTEGV2_TEST}_${LATEST_RELEASE_VER}.zip . - - unzip -o ${ARTIFACT_FILE}_${INTEGV2_TEST}_${LATEST_RELEASE_VER}.zip -d ./tests/integrationv2/target/criterion - build: - commands: - - codebuild-breakpoint - - $CB_BIN_DIR/criterion_delta.sh -artifacts: - files: - - "**/index.html" - - "**/*.svg" - - "**/*.json" - base-directory: "tests/integrationv2/target/criterion" - discard-paths: no diff --git a/codebuild/spec/buildspec_ubuntu_integv2criterion_baseline.yml b/codebuild/spec/buildspec_ubuntu_integv2criterion_baseline.yml deleted file mode 100644 index f6b43b2c535..00000000000 --- a/codebuild/spec/buildspec_ubuntu_integv2criterion_baseline.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -version: 0.2 -env: - variables: - # CODEBUILD_ is a reserved namespace. - CB_BIN_DIR: "./codebuild/bin" -phases: - install: - runtime-versions: - python: 3.x - commands: - - | - if [ -d "third-party-src" ]; then - cd third-party-src; - fi - - $CB_BIN_DIR/install_ubuntu_dependencies.sh - build: - commands: - - $CB_BIN_DIR/criterion_baseline.sh - - mkdir -p tests/integrationv2/target/criterion - - echo "{id:$CODEBUILD_BUILD_ID}" >> tests/integrationv2/target/criterion/artifact.json - -artifacts: - files: - - "**/index.html" - - "**/*.svg" - - "**/*.json" - base-directory: "tests/integrationv2/target/criterion" - discard-paths: no - diff --git a/tests/integrationv2/README.md b/tests/integrationv2/README.md index a6ef767eea7..ed3cb41bb5b 100644 --- a/tests/integrationv2/README.md +++ b/tests/integrationv2/README.md @@ -156,39 +156,3 @@ An example of how to test that the server and the client can send and receive ap **INTERNALERROR> OSError: cannot send to ** An error similar to this is caused by a runtime error in a test. In `tox.ini` change `-n8` to `-n0` to see the actual error causing the OSError. - - -# Criterion - -### Why - -We wanted to use the rust criterion project to benchmark s2n-tls, without re-writing all the integration tests. -To accomplish this, we created some criterion benchmarks that use s2nc and s2nd, and a new provider, CriterionS2N, in the python testing framework. - -### Prerequisites - -Normally, you'd run criterion with `cargo bench --bench `, but cargo does some checks to see if it needs to rebuild -the benchmark and other housekeeping that slows things down a bit. Running `cargo bench --no-run` is the benchmark equivalent to `cargo build` and will produce a binary executable. - -The CI will run `make install` and `make -C ./bindings/rust` to create and install the s2nc/d binaries in a system-wide location, then build the cargo criterion binary handlers for s2nc and s2nd. - - -### Running locally - -The Criterion CodeBuild scripts can be used to run these locally, by setting LOCAL_TESTING the s3/github interactions are disabled. Tooling needed includes python3.9, rust, and write permissions to `/usr/local/bin|lib` (or use sudo) - in addition to the traditional C build tooling. - -``` -export LOCAL_TESTING=true -INTEGV2_TEST=test_well_known_endpoints ./codebuild/bin/criterion_baseline.sh -INTEGV2_TEST=test_well_known_endpoints ./codebuild/bin/criterion_delta.sh -``` - -The resulting reports are viewable via `tests/integrationv2/target/criterion/report/index.html` - - - -## Troubleshooting CriterionS2N - -The most direct trouble-shooting is done using the [interactive troubleshooting CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html#ssm-pause-build) `codebuild-break` line in the buildspec. Put the break right before the main build step and run interactively. - -As mentioned above, in order to get more output from the tests, set the `-n` or `XDIST_WORKER` environment variable to 0 and add a -v to the pytest command line in tox.ini. diff --git a/tests/integrationv2/conftest.py b/tests/integrationv2/conftest.py index d71ff1e9401..55b992ef698 100644 --- a/tests/integrationv2/conftest.py +++ b/tests/integrationv2/conftest.py @@ -1,6 +1,6 @@ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -from global_flags import set_flag, S2N_PROVIDER_VERSION, S2N_FIPS_MODE, S2N_USE_CRITERION +from global_flags import set_flag, S2N_PROVIDER_VERSION, S2N_FIPS_MODE def pytest_addoption(parser): @@ -8,8 +8,6 @@ def pytest_addoption(parser): default=None, type=str, help="Set the version of the TLS provider") parser.addoption("--fips-mode", action="store", dest="fips-mode", default=False, type=int, help="S2N is running in FIPS mode") - parser.addoption("--provider-criterion", action="store", dest="provider-criterion", - default="off", type=str, choices=['off', 'baseline', 'delta'], help="Use Criterion provider in one of 3 modes: [off,baseline,delta]") def pytest_configure(config): @@ -26,7 +24,6 @@ def pytest_configure(config): set_flag(S2N_FIPS_MODE, True) set_flag(S2N_PROVIDER_VERSION, config.getoption('provider-version', None)) - set_flag(S2N_USE_CRITERION, config.getoption('provider-criterion', "off")) def pytest_collection_modifyitems(config, items): diff --git a/tests/integrationv2/fixtures.py b/tests/integrationv2/fixtures.py index 4ec0c3a3e96..dad2b7afbed 100644 --- a/tests/integrationv2/fixtures.py +++ b/tests/integrationv2/fixtures.py @@ -4,9 +4,9 @@ import pytest import subprocess -from global_flags import get_flag, is_criterion_on, S2N_USE_CRITERION +from global_flags import get_flag from processes import ManagedProcess -from providers import Provider, CriterionS2N, S2N +from providers import Provider, S2N from common import ProviderOptions @@ -25,11 +25,6 @@ def managed_process(): def _fn(provider_class: Provider, options: ProviderOptions, timeout=5, send_marker=None, close_marker=None, expect_stderr=None, kill_marker=None, send_with_newline=None): - if provider_class == S2N and is_criterion_on(): - provider_class = CriterionS2N - # This comes from the number of iterations specific in the rust benchmark handler(s). - # currently set at 10 iterations, so give us 10x more time. - timeout = timeout * 10 provider = provider_class(options) cmd_line = provider.get_cmd_line() # The process will default to send markers in the providers.py file diff --git a/tests/integrationv2/global_flags.py b/tests/integrationv2/global_flags.py index 149a22eacfc..853cd3feb02 100644 --- a/tests/integrationv2/global_flags.py +++ b/tests/integrationv2/global_flags.py @@ -11,16 +11,6 @@ # (set from the S2N_LIBCRYPTO env var, which is how the original integration test works) S2N_PROVIDER_VERSION = 's2n_provider_version' -# From S2N_USE_CRITERION env var. -S2N_USE_CRITERION = 's2n_use_criterion' - - -def is_criterion_on(): - if _flags.get(S2N_USE_CRITERION, "off") in ["baseline", "delta"]: - return True - return False - - _flags = {} diff --git a/tests/integrationv2/providers.py b/tests/integrationv2/providers.py index 55b1efc628d..ae203af6e6c 100644 --- a/tests/integrationv2/providers.py +++ b/tests/integrationv2/providers.py @@ -7,7 +7,6 @@ from common import ProviderOptions, Ciphers, Curves, Protocols, Signatures from global_flags import get_flag, S2N_PROVIDER_VERSION, S2N_FIPS_MODE -from global_flags import S2N_USE_CRITERION from stat import S_IMODE @@ -332,92 +331,6 @@ def setup_server(self): return cmd_line -class CriterionS2N(S2N): - """ - Wrap the S2N provider in criterion-rust - The CriterionS2N provider modifies the test command being run by pytest to be the criterion benchmark binary - and moves the s2nc/d command line arguments into an environment variable. The binary created by - `cargo bench --no-run` has a unique name and must be searched for, which the CriterionS2N provider finds - and replaces in the final testing command. The arguments to s2nc/d are moved to the environment variables - `S2NC_ARGS` or `S2ND_ARGS`, along with the test name, which are read by the rust benchmark when spawning - s2nc/d as subprocesses. - """ - criterion_off = 'off' - criterion_delta = 'delta' - criterion_baseline = 'baseline' - # Figure out what mode to run in: baseline or delta - criterion_mode = get_flag(S2N_USE_CRITERION) - - def _find_s2n_benchmark(self, pattern): - # Use executable bit to find the correct file. - result = find_files(pattern, root_dir=self.cargo_root, modes=['0o775', '0o755']) - if len(result) != 1: - raise FileNotFoundError( - f"Exactly one s2n criterion benchmark not found. Found {result}.") - else: - return result[0] - - def _find_cargo(self): - return os.path.abspath("../../bindings/rust") - - def _cargo_bench(self): - """ - Find the handlers - """ - self.s2nc_bench = self._find_s2n_benchmark("s2nc-") - self.s2nd_bench = self._find_s2n_benchmark("s2nd-") - - def __init__(self, options: ProviderOptions): - super().__init__(options) - # Set cargo root - self.cargo_root = self._find_cargo() - - # Find the criterion binaries - self._cargo_bench() - - # strip off the s2nc/d at the front because criterion - if 's2nc' in self.cmd_line[0] or 's2nd' in self.cmd_line[0]: - self.cmd_line = self.cmd_line[1:] - - # strip off the s2nc -e argument, criterion handler isn't sending any STDIN characters, - # and makes it look like s2nc is hanging. - # WARNING: this is a blocker for any test that requires STDIN. - if '-e' in self.cmd_line: - self.cmd_line.remove('-e') - print(f"***** cmd_line is now {self.cmd_line}") - - # Copy the command arguments to an environment variable for the harness to read. - if self.options.mode == Provider.ServerMode: - self.options.env_overrides.update( - {'S2ND_ARGS': ' '.join(self.cmd_line), - 'S2ND_TEST_NAME': f"{self.options.cipher}_{self.options.host}"}) - self.capture_server_args() - elif self.options.mode == Provider.ClientMode: - self.options.env_overrides.update( - {'S2NC_ARGS': ' '.join(self.cmd_line), - 'S2NC_TEST_NAME': f"{self.options.cipher}_{self.options.host}"}) - if self.criterion_mode == CriterionS2N.criterion_baseline: - self.capture_client_args_baseline() - if self.criterion_mode == CriterionS2N.criterion_delta: - self.capture_client_args_delta() - - def capture_server_args(self): - self.cmd_line = [self.s2nd_bench, "--bench", - "s2nd", "--save-baseline", "main"] - - # Saves baseline data with the tag "main" - # see https://bheisler.github.io/criterion.rs/book/user_guide/command_line_options.html - def capture_client_args_baseline(self): - self.cmd_line = [self.s2nc_bench, "--bench", - "s2nc", "--save-baseline", "main"] - - # "By default, Criterion.rs will compare the measurements against the previous run" - # This run is stored with the tag "new" - # https://bheisler.github.io/criterion.rs/book/user_guide/command_line_options.html - def capture_client_args_delta(self): - self.cmd_line = [self.s2nc_bench, "--bench", "s2nc", "--plotting-backend", "plotters", "--baseline", "main"] - - class OpenSSL(Provider): _version = get_flag(S2N_PROVIDER_VERSION) diff --git a/tests/integrationv2/test_well_known_endpoints.py b/tests/integrationv2/test_well_known_endpoints.py index 21869520da0..7bce5c2248a 100644 --- a/tests/integrationv2/test_well_known_endpoints.py +++ b/tests/integrationv2/test_well_known_endpoints.py @@ -6,7 +6,7 @@ from configuration import PROTOCOLS from common import ProviderOptions, Ciphers, pq_enabled from fixtures import managed_process # lgtm [py/unused-import] -from global_flags import get_flag, is_criterion_on, S2N_FIPS_MODE, S2N_USE_CRITERION +from global_flags import get_flag, S2N_FIPS_MODE from providers import Provider, S2N from test_pq_handshake import PQ_ENABLED_FLAG from utils import invalid_test_parameters, get_parameter_name, to_bytes @@ -110,10 +110,6 @@ def test_well_known_endpoints(managed_process, protocol, endpoint, provider, cip if get_flag(S2N_FIPS_MODE) is True: client_options.trust_store = TRUST_STORE_TRUSTED_BUNDLE - # TODO: Understand the failure with criterion and this endpoint. - if is_criterion_on() and 'www.netflix.com' in endpoint: - pytest.skip() - # expect_stderr=True because S2N sometimes receives OCSP responses: # https://github.com/aws/s2n-tls/blob/14ed186a13c1ffae7fbb036ed5d2849ce7c17403/bin/echo.c#L180-L184 client = managed_process(provider, client_options, diff --git a/tests/integrationv2/tox.ini b/tests/integrationv2/tox.ini index fd0705b5192..eda3ebfbece 100644 --- a/tests/integrationv2/tox.ini +++ b/tests/integrationv2/tox.ini @@ -25,6 +25,5 @@ commands = --durations=10 \ -o log_cli=true --log-cli-level=INFO \ --provider-version={env:S2N_LIBCRYPTO} \ - --provider-criterion={env:S2N_USE_CRITERION:"off"} \ --fips-mode={env:S2N_TEST_IN_FIPS_MODE:"0"} \ {env:TOX_TEST_NAME:""}