16 #include "tensorflow_serving/core/static_manager.h"
18 #include <gmock/gmock.h>
19 #include <gtest/gtest.h>
21 namespace tensorflow {
25 TEST(StaticManagerTest, StoresServables) {
26 StaticManagerBuilder builder;
27 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 22},
28 std::unique_ptr<int>{new int{22}}));
29 auto manager = builder.Build();
30 ServableHandle<int> handle;
31 TF_CHECK_OK(manager->GetServableHandle(ServableRequest::Specific(
"name", 22),
33 EXPECT_EQ(22, *handle);
36 TEST(StaticManagerTest, UseAfterBuild) {
37 StaticManagerBuilder builder;
38 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 22},
39 std::unique_ptr<int>{new int{22}}));
40 auto manager = builder.Build();
41 EXPECT_EQ(
nullptr, builder.Build());
43 .AddServable(ServableId{
"name", 21},
44 std::unique_ptr<int>(
new int(22)))
48 TEST(StaticManagerTest, Errors) {
49 StaticManagerBuilder builder;
52 builder.AddServable(ServableId{
"name", 22}, std::unique_ptr<int>{nullptr})
55 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 22},
56 std::unique_ptr<int>{new int{22}}));
58 .AddServable(ServableId{
"name", 22},
59 std::unique_ptr<int>{
new int{22}})
63 TEST(StaticManagerTest, GetLatestVersion) {
64 StaticManagerBuilder builder;
65 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 22},
66 std::unique_ptr<int>{new int{22}}));
67 const ServableId
id = {
"name", 24};
68 TF_CHECK_OK(builder.AddServable(
id, std::unique_ptr<int>{new int{24}}));
69 auto manager = builder.Build();
71 ServableHandle<int> handle;
73 manager->GetServableHandle(ServableRequest::Latest(
"name"), &handle));
74 EXPECT_EQ(24, *handle);
75 EXPECT_EQ(
id, handle.id());
78 TEST(StaticManagerTest, GetSpecificVersion) {
79 StaticManagerBuilder builder;
80 const ServableId
id = {
"name", 22};
81 TF_CHECK_OK(builder.AddServable(
id, std::unique_ptr<int>{new int{22}}));
82 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 24},
83 std::unique_ptr<int>{new int{24}}));
84 auto manager = builder.Build();
86 ServableHandle<int> handle;
87 TF_CHECK_OK(manager->GetServableHandle(ServableRequest::FromId(
id), &handle));
88 EXPECT_EQ(22, *handle);
89 EXPECT_EQ(
id, handle.id());
92 TEST(StaticManagerTest, ServableNotFound) {
93 StaticManagerBuilder builder;
94 auto manager = builder.Build();
95 ServableHandle<int> handle;
96 EXPECT_EQ(error::NOT_FOUND,
97 manager->GetServableHandle(ServableRequest::Latest(
"name"), &handle)
99 EXPECT_EQ(
nullptr, handle.get());
102 TEST(StaticManagerTest, VersionNotFound) {
103 StaticManagerBuilder builder;
104 TF_CHECK_OK(builder.AddServable(ServableId{
"name", 22},
105 std::unique_ptr<int>{new int{22}}));
106 auto manager = builder.Build();
107 ServableHandle<int> handle;
110 manager->GetServableHandle(ServableRequest::Specific(
"name", 21), &handle)
112 EXPECT_EQ(
nullptr, handle.get());