Summary:
This is in response to a feature request from some folks in the core team to have a local command that would only run relevant "core" tests. The idea is to have a local smoke test option for developers to run locally before making a PR in order to verify their changes did not break core functionality. These smoke tests are not targeted to be short but rather relevant.
This PR enables that by allowing developers to run `python test/run_test.py --core` or `python test/run_test.py -core` in order to run the CORE_TEST_LIST, which is currently test_nn.py, test_torch.py, and test_ops.py.
I am not the best person to judge what should be considered "core", so please comment which tests should be included and/or excluded from the CORE_TEST_LIST!
Pull Request resolved: https://github.com/pytorch/pytorch/pull/63976
Test Plan:
```
(pytorch) janeyx@janeyx-mbp test % python run_test.py --core -v
Selected tests: test_nn, test_ops, test_torch
Running test_nn ... [2021-08-25 14:48:28.865078]
Executing ['/Users/janeyx/miniconda3/envs/pytorch/bin/python', 'test_nn.py', '-v'] ... [2021-08-25 14:48:28.865123]
test_to (__main__.PackedSequenceTest) ... ok
test_to_memory_format (__main__.PackedSequenceTest) ... ok
```
Reviewed By: walterddr
Differential Revision:
D30575560
Pulled By: janeyx99
fbshipit-source-id:
3f151982c1e315e50e60cb0d818adaea34556a04
WINDOWS_COVERAGE_BLOCKLIST = []
+# A subset of our TEST list that validates PyTorch's ops, modules, and autograd function as expected
+CORE_TEST_LIST = [
+ "test_autograd",
+ "test_modules",
+ "test_nn",
+ "test_ops",
+ "test_torch"
+]
# the JSON file to store the S3 test stats
TEST_TIMES_FILE = ".pytorch-test-times.json"
help="run all distributed tests",
)
parser.add_argument(
+ "-core",
+ "--core",
+ action="store_true",
+ help="Only run core tests, or tests that validate PyTorch's ops, modules,"
+ "and autograd. They are defined by CORE_TEST_LIST."
+ )
+ parser.add_argument(
"-pt",
"--pytest",
action="store_true",
filter(lambda test_name: test_name in DISTRIBUTED_TESTS, selected_tests)
)
+ # Filter to only run core tests when --core option is specified
+ if options.core:
+ selected_tests = list(
+ filter(lambda test_name: test_name in CORE_TEST_LIST, selected_tests)
+ )
+
# process reordering
if options.bring_to_front:
to_front = set(options.bring_to_front)