16 #include "tensorflow_serving/core/availability_preserving_policy.h"
20 #include <gtest/gtest.h>
21 #include "tensorflow_serving/core/servable_id.h"
23 namespace tensorflow {
29 TEST(AvailabilityPreservingPolicyTest, LoadsNewAspired) {
30 std::vector<AspiredServableStateSnapshot> versions;
37 AvailabilityPreservingPolicy policy;
38 auto action = policy.GetNextAction(versions);
41 EXPECT_EQ(5, action->id.version);
46 TEST(AvailabilityPreservingPolicyTest, UnloadsNonAspiredFirst) {
47 std::vector<AspiredServableStateSnapshot> versions;
54 AvailabilityPreservingPolicy policy;
55 auto action = policy.GetNextAction(versions);
58 EXPECT_EQ(3, action->id.version);
63 TEST(AvailabilityPreservingPolicyTest, UnloadsFirstNonAspiredWhenNoAspired) {
64 std::vector<AspiredServableStateSnapshot> versions;
69 AvailabilityPreservingPolicy policy;
70 const auto action = policy.GetNextAction(versions);
73 EXPECT_EQ(2, action->id.version);
77 TEST(AvailabilityPreservingPolicyTest, ReturnsNoActionWhenNone) {
78 std::vector<AspiredServableStateSnapshot> versions;
85 AvailabilityPreservingPolicy policy;
86 const auto action = policy.GetNextAction(versions);
92 TEST(AvailabilityPreservingPolicyTest, DoesNotUnloadWhenOtherNotReady) {
93 std::vector<AspiredServableStateSnapshot> versions;
97 AvailabilityPreservingPolicy policy;
98 const auto action = policy.GetNextAction(versions);
104 TEST(AvailabilityPreservingPolicyTest, DoesNotUnloadWhenOtherInError) {
105 std::vector<AspiredServableStateSnapshot> versions;
109 AvailabilityPreservingPolicy policy;
110 const auto action = policy.GetNextAction(versions);
111 EXPECT_FALSE(action);
116 TEST(AvailabilityPreservingPolicyTest, UnloadIfOtherReadyEvenIfLoading) {
117 std::vector<AspiredServableStateSnapshot> versions;
122 AvailabilityPreservingPolicy policy;
123 const auto action = policy.GetNextAction(versions);
126 EXPECT_EQ(1, action->id.version);
131 TEST(AvailabilityPreservingPolicyTest, UnloadIfOtherReadyEvenIfError) {
132 std::vector<AspiredServableStateSnapshot> versions;
137 AvailabilityPreservingPolicy policy;
138 const auto action = policy.GetNextAction(versions);
141 EXPECT_EQ(1, action->id.version);
148 TEST(AvailabilityPreservingPolicyTest, UnloadIfNoAspiredVersionsReady) {
149 std::vector<AspiredServableStateSnapshot> versions;
155 AvailabilityPreservingPolicy policy;
156 const auto action = policy.GetNextAction(versions);
159 EXPECT_EQ(1, action->id.version);
@ kUnload
Call unload on the servable.
@ kLoad
Call load on the servable.
@ kReady
'loader_->Load()' has succeeded.
@ kDisabled
'loader_->Unload()' has finished.
@ kLoading
'loader_->Load()' has been called.
@ kUnloading
'loader_->Unload()' has been called.