diff --git a/.circleci/config.yml b/.circleci/config.yml index cb796d03eb..ea84f8ce7b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh - run: name: Run tests - command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD -e "TORCHAUDIO_TEST_FORCE_CUDA=1" "${image_name}" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: diff --git a/.circleci/config.yml.in b/.circleci/config.yml.in index aff66edf1d..8a5cef16b3 100644 --- a/.circleci/config.yml.in +++ b/.circleci/config.yml.in @@ -465,7 +465,7 @@ jobs: command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh - run: name: Run tests - command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh + command: docker run -t --gpus all -v $PWD:$PWD -w $PWD -e "TORCHAUDIO_TEST_FORCE_CUDA=1" "${image_name}" .circleci/unittest/linux/scripts/run_test.sh - store_test_results: path: test-results - store_artifacts: diff --git a/test/torchaudio_unittest/common_utils/case_utils.py b/test/torchaudio_unittest/common_utils/case_utils.py index bf235f1ef6..140291a8a2 100644 --- a/test/torchaudio_unittest/common_utils/case_utils.py +++ b/test/torchaudio_unittest/common_utils/case_utils.py @@ -104,7 +104,15 @@ def skipIfNoModule(module, display_name=None): return unittest.skipIf(not is_module_available(module), f'"{display_name}" is not available') -skipIfNoCuda = unittest.skipIf(not torch.cuda.is_available(), reason='CUDA not available') +def skipIfNoCuda(test_item): + if torch.cuda.is_available(): + return test_item + force_cuda_test = os.environ.get('TORCHAUDIO_TEST_FORCE_CUDA', '0') + if force_cuda_test not in ['0', '1']: + raise ValueError('"TORCHAUDIO_TEST_FORCE_CUDA" must be either "0" or "1".') + if force_cuda_test == '1': + raise RuntimeError('"TORCHAUDIO_TEST_FORCE_CUDA" is set but CUDA is not available.') + return unittest.skip('CUDA is not available.')(test_item) skipIfNoSox = unittest.skipIf(not is_sox_available(), reason='Sox not available') skipIfNoKaldi = unittest.skipIf(not is_kaldi_available(), reason='Kaldi not available') skipIfRocm = unittest.skipIf(os.getenv('TORCHAUDIO_TEST_WITH_ROCM', '0') == '1',