| 813 | class GetAttrKernel : public ::tensorflow::OpKernel { |
| 814 | public: |
| 815 | explicit GetAttrKernel(OpKernelConstruction* context) : OpKernel(context) { |
| 816 | string attr_name; |
| 817 | OP_REQUIRES_OK(context, context->GetAttr("attr_name", &attr_name)); |
| 818 | |
| 819 | status.emplace_back("s", context->GetAttr(attr_name, &s)); |
| 820 | status.emplace_back("s_list", context->GetAttr(attr_name, &s_list)); |
| 821 | status.emplace_back("i", context->GetAttr(attr_name, &i)); |
| 822 | status.emplace_back("i_list", context->GetAttr(attr_name, &i_list)); |
| 823 | status.emplace_back("i32", context->GetAttr(attr_name, &i32)); |
| 824 | status.emplace_back("i32_list", context->GetAttr(attr_name, &i32_list)); |
| 825 | status.emplace_back("f", context->GetAttr(attr_name, &f)); |
| 826 | status.emplace_back("f_list", context->GetAttr(attr_name, &f_list)); |
| 827 | status.emplace_back("b", context->GetAttr(attr_name, &b)); |
| 828 | status.emplace_back("b_list", context->GetAttr(attr_name, &b_list)); |
| 829 | status.emplace_back("type", context->GetAttr(attr_name, &type)); |
| 830 | status.emplace_back("type_list", context->GetAttr(attr_name, &type_list)); |
| 831 | status.emplace_back("type_vector", |
| 832 | context->GetAttr(attr_name, &type_vector)); |
| 833 | status.emplace_back("shape_proto", |
| 834 | context->GetAttr(attr_name, &shape_proto)); |
| 835 | status.emplace_back("shape_proto_list", |
| 836 | context->GetAttr(attr_name, &shape_proto_list)); |
| 837 | status.emplace_back("shape", context->GetAttr(attr_name, &shape)); |
| 838 | status.emplace_back("shape_list", context->GetAttr(attr_name, &shape_list)); |
| 839 | } |
| 840 | void Compute(::tensorflow::OpKernelContext* context) override {} |
| 841 | |
| 842 | void ExpectOk(std::initializer_list<string> keys) { |
nothing calls this directly
no test coverage detected