diff --git a/.pfnci/hint.pbtxt b/.pfnci/hint.pbtxt index 03b18902d7e9..3e4a42ebe2e0 100644 --- a/.pfnci/hint.pbtxt +++ b/.pfnci/hint.pbtxt @@ -5,6 +5,7 @@ # Slow tests take 60+ seconds. rules { name: "chainer_tests/functions_tests/activation_tests/test_crelu.py" xdist: 4 deadline: 240 } +rules { name: "chainer_tests/functions_tests/evaluation_tests/test_accuracy.py" xdist: 4 deadline: 240 } rules { name: "chainer_tests/functions_tests/loss_tests/test_softmax_cross_entropy.py" xdist: 8 deadline: 240 } rules { name: "chainer_tests/functions_tests/math_tests/test_sparse_matmul.py" xdist: 4 deadline: 240 } rules { name: "chainer_tests/functions_tests/normalization_tests/test_batch_normalization.py" xdist: 4 deadline: 240 } @@ -55,7 +56,6 @@ rules { name: "chainer_tests/functions_tests/connection_tests/test_convolution_n rules { name: "chainer_tests/functions_tests/connection_tests/test_deconvolution_2d.py" } rules { name: "chainer_tests/functions_tests/connection_tests/test_deconvolution_nd.py" } rules { name: "chainer_tests/functions_tests/connection_tests/test_embed_id.py" } -rules { name: "chainer_tests/functions_tests/evaluation_tests/test_accuracy.py" } rules { name: "chainer_tests/functions_tests/loss_tests/test_contrastive.py" } rules { name: "chainer_tests/functions_tests/loss_tests/test_negative_sampling.py" } rules { name: "chainer_tests/functions_tests/loss_tests/test_sigmoid_cross_entropy.py" } diff --git a/scripts/ci/travis/steps.sh b/scripts/ci/travis/steps.sh index 45593c1c0354..5ad8392ead7f 100644 --- a/scripts/ci/travis/steps.sh +++ b/scripts/ci/travis/steps.sh @@ -158,7 +158,10 @@ step_chainer_tests() { step_chainerx_python_tests() { - pytest -rfEX "$REPO_DIR"/tests/chainerx_tests + # TODO(niboshi): Apply pairwise parameterization only selectively. See + # #8210. + env CHAINER_TEST_PAIRWISE_PARAMETERIZE=always \ + pytest -rfEX "$REPO_DIR"/tests/chainerx_tests } diff --git a/tests/chainer_tests/conftest.py b/tests/chainer_tests/conftest.py index 0a5a8a66385d..182fa6d96d26 100644 --- a/tests/chainer_tests/conftest.py +++ b/tests/chainer_tests/conftest.py @@ -1,8 +1,6 @@ import pytest from chainer.backends import cuda -from chainer import testing -from chainer.testing import parameterized import chainerx @@ -13,20 +11,6 @@ pytest.mark.chainerx = pytest.mark.skip -def pytest_collection(session): - # Perform pairwise testing. - # TODO(kataoka): This is a tentative fix. Discuss its public interface. - pairwise_product_dict = parameterized._pairwise_product_dict - testing.product_dict = pairwise_product_dict - parameterized.product_dict = pairwise_product_dict - - -def pytest_collection_finish(session): - product_dict = parameterized._product_dict_orig - testing.product_dict = product_dict - parameterized.product_dict = product_dict - - def pytest_runtest_teardown(item, nextitem): if cuda.available: assert cuda.cupy.cuda.runtime.getDevice() == 0 diff --git a/tests/chainerx_tests/conftest.py b/tests/chainerx_tests/conftest.py index 01b2c5335aa3..8cbede8e2efc 100644 --- a/tests/chainerx_tests/conftest.py +++ b/tests/chainerx_tests/conftest.py @@ -1,7 +1,5 @@ import pytest -from chainer import testing -from chainer.testing import parameterized import chainerx.testing from chainerx_tests import cuda_utils @@ -11,20 +9,6 @@ def pytest_configure(config): _register_cuda_marker(config) -def pytest_collection(session): - # Perform pairwise testing. - # TODO(kataoka): This is a tentative fix. Discuss its public interface. - pairwise_product_dict = parameterized._pairwise_product_dict - testing.product_dict = pairwise_product_dict - parameterized.product_dict = pairwise_product_dict - - -def pytest_collection_finish(session): - product_dict = parameterized._product_dict_orig - testing.product_dict = product_dict - parameterized.product_dict = product_dict - - def pytest_runtest_setup(item): _setup_cuda_marker(item) diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 000000000000..ec080fa0e6f5 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,24 @@ +import os + +from chainer import testing +from chainer.testing import parameterized + + +_pairwise_parameterize = os.environ.get('CHAINER_TEST_PAIRWISE_PARAMETERIZATION', 'never') +assert _pairwise_parameterize in ('never', 'always') + + +def pytest_collection(session): + # Perform pairwise testing. + # TODO(kataoka): This is a tentative fix. Discuss its public interface. + if _pairwise_parameterize == 'always': + pairwise_product_dict = parameterized._pairwise_product_dict + testing.product_dict = pairwise_product_dict + parameterized.product_dict = pairwise_product_dict + + +def pytest_collection_finish(session): + if _pairwise_parameterize == 'always': + product_dict = parameterized._product_dict_orig + testing.product_dict = product_dict + parameterized.product_dict = product_dict