16 #include "tensorflow_serving/core/resource_preserving_policy.h"
20 #include <gtest/gtest.h>
21 #include "tensorflow_serving/core/servable_id.h"
23 namespace tensorflow {
28 TEST(ResourcePreservingPolicyTest, UnloadsFirstNonAspired) {
29 std::vector<AspiredServableStateSnapshot> versions;
36 ResourcePreservingPolicy policy;
37 const auto action = policy.GetNextAction(versions);
40 EXPECT_EQ(3, action->id.version);
45 TEST(ResourcePreservingPolicyTest, LoadsFirstAspiredWhenNoneToUnload) {
46 std::vector<AspiredServableStateSnapshot> versions;
53 ResourcePreservingPolicy policy;
54 const auto action = policy.GetNextAction(versions);
57 EXPECT_EQ(5, action->id.version);
62 TEST(ResourcePreservingPolicyTest, ReturnsNoActionWhenNone) {
63 std::vector<AspiredServableStateSnapshot> versions;
70 ResourcePreservingPolicy policy;
71 const auto action = policy.GetNextAction(versions);
75 TEST(ResourcePreservingPolicyTest, DoesNotLoadWhenOthersStillUnloading) {
76 std::vector<AspiredServableStateSnapshot> versions;
81 ResourcePreservingPolicy policy;
82 const auto action = policy.GetNextAction(versions);
86 TEST(ResourcePreservingPolicyTest, LoadIfUnaspiredIsError) {
87 std::vector<AspiredServableStateSnapshot> versions;
91 ResourcePreservingPolicy policy;
92 const auto action = policy.GetNextAction(versions);
95 EXPECT_EQ(2, action->id.version);
98 TEST(ResourcePreservingPolicyTest, ErrorAndUnloadRequestedPreventLoading) {
99 std::vector<AspiredServableStateSnapshot> versions;
105 ResourcePreservingPolicy policy;
106 const auto action = policy.GetNextAction(versions);
107 EXPECT_FALSE(action);
110 TEST(ResourcePreservingPolicyTest, ErrorAndDisabledAllowLoading) {
111 std::vector<AspiredServableStateSnapshot> versions;
116 ResourcePreservingPolicy policy;
117 const auto action = policy.GetNextAction(versions);
120 EXPECT_EQ(3, action->id.version);
@ kUnload
Call unload on the servable.
@ kLoad
Call load on the servable.
@ kReady
'loader_->Load()' has succeeded.
@ kUnloadRequested
The manager has been requested to unload this servable.
@ kDisabled
'loader_->Unload()' has finished.
@ kLoading
'loader_->Load()' has been called.
@ kUnloading
'loader_->Unload()' has been called.