1a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. 2a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower 3a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerLicensed under the Apache License, Version 2.0 (the "License"); 4a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFloweryou may not use this file except in compliance with the License. 5a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerYou may obtain a copy of the License at 6a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower 7a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower http://www.apache.org/licenses/LICENSE-2.0 8a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower 9a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerUnless required by applicable law or agreed to in writing, software 10a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerdistributed under the License is distributed on an "AS IS" BASIS, 11a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerSee the License for the specific language governing permissions and 13a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerlimitations under the License. 14a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower==============================================================================*/ 15a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower 16a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower#include "tensorflow/compiler/xla/tests/client_library_test_base.h" 17a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower 18a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowernamespace xla { 19a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowernamespace { 20a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlowerTEST_F(ClientLibraryTestBase, DeepGraph) { 21a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower // TODO(b/62624812): To trigger the stack overflow this test is 22a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower // intended to track, we need to set kDepth to 20000. 23a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower // Unfortunately, setting it that high causes the test to time out. 24a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower const int kDepth = 200; 25a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower ComputationBuilder b(client_, TestName()); 26a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower ComputationDataHandle x; 27a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower ComputationDataHandle y; 28a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower auto x_data = CreateR0Parameter<int32>(3, 0, "x", &b, &x); 29a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower auto y_data = CreateR0Parameter<int32>(1, 1, "y", &b, &y); 30a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower ComputationDataHandle z = x; 31a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower for (int i = 0; i < kDepth; ++i) { 32a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower z = b.Add(z, y); 33a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower } 34a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower ComputeAndCompareR0<int32>(&b, /*expected=*/kDepth + 3, 35a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower {x_data.get(), y_data.get()}); 36a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower} 37a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower} // namespace 38a7c36173cabcc1289a836e8143accb5f0914b19aA. Unique TensorFlower} // namespace xla 39