| 75 | }; |
| 76 | |
| 77 | TEST_F(OpSegmentTest, Basic) { |
| 78 | OpSegment opseg; |
| 79 | OpKernel* op; |
| 80 | |
| 81 | opseg.AddHold("A"); |
| 82 | opseg.AddHold("B"); |
| 83 | for (int i = 0; i < 10; ++i) { |
| 84 | // Register in session A. |
| 85 | auto* ndef = &float_nodedefs_[i]; |
| 86 | TF_EXPECT_OK(opseg.FindOrCreate("A", ndef->name(), &op, GetFn(ndef))); |
| 87 | ValidateOpAndTypes(op, *ndef, DT_FLOAT); |
| 88 | |
| 89 | // Register in session B. |
| 90 | ndef = &int32_nodedefs_[i]; |
| 91 | TF_EXPECT_OK(opseg.FindOrCreate("B", ndef->name(), &op, GetFn(ndef))); |
| 92 | ValidateOpAndTypes(op, *ndef, DT_INT32); |
| 93 | } |
| 94 | |
| 95 | auto reterr = [](OpKernel** kernel) { |
| 96 | return errors::Internal("Should not be called"); |
| 97 | }; |
| 98 | for (int i = 0; i < 10; ++i) { |
| 99 | // Lookup op in session A. |
| 100 | TF_EXPECT_OK( |
| 101 | opseg.FindOrCreate("A", strings::StrCat("op", i), &op, reterr)); |
| 102 | ValidateOpAndTypes(op, float_nodedefs_[i], DT_FLOAT); |
| 103 | |
| 104 | // Lookup op in session B. |
| 105 | TF_EXPECT_OK( |
| 106 | opseg.FindOrCreate("B", strings::StrCat("op", i), &op, reterr)); |
| 107 | ValidateOpAndTypes(op, int32_nodedefs_[i], DT_INT32); |
| 108 | } |
| 109 | |
| 110 | opseg.RemoveHold("A"); |
| 111 | opseg.RemoveHold("B"); |
| 112 | } |
| 113 | |
| 114 | TEST_F(OpSegmentTest, SessionNotFound) { |
| 115 | OpSegment opseg; |
nothing calls this directly
no test coverage detected