xref: /aosp_15_r20/external/pytorch/test/cpp/api/namespace.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker #include <gtest/gtest.h>
2*da0073e9SAndroid Build Coastguard Worker 
3*da0073e9SAndroid Build Coastguard Worker #include <torch/torch.h>
4*da0073e9SAndroid Build Coastguard Worker 
5*da0073e9SAndroid Build Coastguard Worker struct Node {};
6*da0073e9SAndroid Build Coastguard Worker 
7*da0073e9SAndroid Build Coastguard Worker // If `torch::autograd::Note` is leaked into the root namespace, the following
8*da0073e9SAndroid Build Coastguard Worker // compile error would throw:
9*da0073e9SAndroid Build Coastguard Worker // ```
10*da0073e9SAndroid Build Coastguard Worker // void NotLeakingSymbolsFromTorchAutogradNamespace_test_func(Node *node) {}
11*da0073e9SAndroid Build Coastguard Worker //                                                            ^
12*da0073e9SAndroid Build Coastguard Worker // error: reference to `Node` is ambiguous
13*da0073e9SAndroid Build Coastguard Worker // ```
NotLeakingSymbolsFromTorchAutogradNamespace_test_func(Node * node)14*da0073e9SAndroid Build Coastguard Worker void NotLeakingSymbolsFromTorchAutogradNamespace_test_func(Node* node) {}
15*da0073e9SAndroid Build Coastguard Worker 
TEST(NamespaceTests,NotLeakingSymbolsFromTorchAutogradNamespace)16*da0073e9SAndroid Build Coastguard Worker TEST(NamespaceTests, NotLeakingSymbolsFromTorchAutogradNamespace) {
17*da0073e9SAndroid Build Coastguard Worker   // Checks that we are not leaking symbols from the
18*da0073e9SAndroid Build Coastguard Worker   // `torch::autograd` namespace to the root namespace
19*da0073e9SAndroid Build Coastguard Worker   NotLeakingSymbolsFromTorchAutogradNamespace_test_func(nullptr);
20*da0073e9SAndroid Build Coastguard Worker }
21