pytorch/test/cpp/api
Edward Yang 1e7050072b Make TensorOptions contain optional fields, optimize struct size (#12103)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/12103

This defers lookup of defaults to the site where we read
out of TensorOptions. THIS IS A BC-BREAKING BEHAVIOR CHANGE,
but we expect the bulk of uses of OptionsGuard don't allocate TensorOptions
inside the OptionsGuard region, and then use it outside of the region
(the situation where behavior could change.)

I also optimize the size of TensorOptions by rearranging fields, so that we
always fit in two 64-bit words.

Reviewed By: goldsborough

Differential Revision: D10052523

fbshipit-source-id: f454a15b4dbf8cd17bc902ab7d2016f2f689ed13
2018-10-05 09:24:53 -07:00
..
any.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
CMakeLists.txt Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
cursor.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
expanding-array.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
integration.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
jit.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
main.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
memory.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
misc.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
module.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
modules.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
optim_baseline.h Lazily create tensors in optim_baseline (#12301) 2018-10-04 10:55:53 -07:00
optim_baseline.py Lazily create tensors in optim_baseline (#12301) 2018-10-04 10:55:53 -07:00
optim.cpp Lazily create tensors in optim_baseline (#12301) 2018-10-04 10:55:53 -07:00
ordered-dict.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
parallel.cpp Make TensorOptions contain optional fields, optimize struct size (#12103) 2018-10-05 09:24:53 -07:00
README.md Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
rnn.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
sequential.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
serialize.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00
static.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
support.h Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
tensor_cuda.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
tensor_options_cuda.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
tensor_options.cpp Rewrite C++ API tests in gtest (#11953) 2018-09-21 21:28:16 -07:00
tensor.cpp Remove caffe2::Tensor::capacity_nbytes, at::Tensor::to##name##Data, (#11876) 2018-09-24 10:40:10 -07:00

C++ Frontend Tests

In this folder live the tests for PyTorch's C++ Frontend. They use the GoogleTest test framework.

CUDA Tests

To make a test runnable only on platforms with CUDA, you should suffix your test with _CUDA, e.g.

TEST(MyTestSuite, MyTestCase_CUDA) { }

To make it runnable only on platforms with at least two CUDA machines, suffix it with _MultiCUDA instead of _CUDA, e.g.

TEST(MyTestSuite, MyTestCase_MultiCUDA) { }

There is logic in main.cpp that detects the availability and number of CUDA devices and supplies the appropriate negative filters to GoogleTest.

Integration Tests

Integration tests use the MNIST dataset. You must download it by running the following command from the PyTorch root folder:

$ python tools/download_mnist.py -d test/cpp/api/mnist

The required paths will be referenced as test/cpp/api/mnist/... in the test code, so you must run the integration tests from the PyTorch root folder.