<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2022 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License 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.
  ~
  ~ Re-runs a subset of MtsConscryptTestCases using Conscrypt's file-descriptor based
  ~ implementation to ensure there are no regressions in this implementation before
  ~ it is fully deprecated.
  ~
  ~ Apart from the include filters and SSLSocket implementation this test suite is
  ~ identical to MtsConscryptTestCases.
  -->
<configuration description="Configuration for BoringSSL native tests">
   <option name="test-suite-tag" value="mts-conscrypt" />
   <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
       <option name="cleanup" value="true" />
       <option name="push" value="boringssl_crypto_test->/data/local/tmp/boringssl_crypto_test" />
       <option name="push" value="boringssl_ssl_test->/data/local/tmp/boringssl_ssl_test" />
       <option name="append-bitness" value="true" />
   </target_preparer>
   <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
   <test class="com.android.tradefed.testtype.GTest" >
       <option name="native-test-device-path" value="/data/local/tmp" />
       <option name="module-name" value="boringssl_crypto_test" />
       <option name="module-name" value="boringssl_ssl_test" />
       <option name="runtime-hint" value="10m" />
       <option name="native-test-timeout" value="600000" />
   </test>
</configuration>
