SLIDER-1047 add regression test to verify latest role history format reload


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/b99a3d9b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/b99a3d9b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/b99a3d9b

Branch: refs/heads/develop
Commit: b99a3d9be786a6779d73ce32c888e05b04da5ec3
Parents: 7dc4d78
Author: Steve Loughran <ste...@apache.org>
Authored: Wed Jan 6 19:23:09 2016 +0000
Committer: Steve Loughran <ste...@apache.org>
Committed: Wed Jan 6 19:23:09 2016 +0000

----------------------------------------------------------------------
 .../slider/server/avro/LoadedRoleHistory.java   | 11 ++++++
 .../model/history/TestRoleHistoryRW.groovy      | 17 +++++++++
 .../slider/server/avro/history_v01b_1_role.json | 38 ++++++++++++++++++++
 3 files changed, 66 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b99a3d9b/slider-core/src/main/java/org/apache/slider/server/avro/LoadedRoleHistory.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/avro/LoadedRoleHistory.java
 
b/slider-core/src/main/java/org/apache/slider/server/avro/LoadedRoleHistory.java
index 3947064..77408a5 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/avro/LoadedRoleHistory.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/avro/LoadedRoleHistory.java
@@ -54,6 +54,7 @@ public class LoadedRoleHistory {
   public int size() {
     return records.size();
   }
+
   public RoleHistoryHeader getHeader() {
     return header;
   }
@@ -78,4 +79,14 @@ public class LoadedRoleHistory {
     }
   }
 
+  @Override
+  public String toString() {
+    final StringBuilder sb = new StringBuilder(
+      "LoadedRoleHistory{");
+    sb.append("path=").append(path);
+    sb.append("; number of roles=").append(roleMap.size());
+    sb.append("; size=").append(size());
+    sb.append('}');
+    return sb.toString();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b99a3d9b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/history/TestRoleHistoryRW.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/history/TestRoleHistoryRW.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/history/TestRoleHistoryRW.groovy
index 72e4240..8321044 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/history/TestRoleHistoryRW.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/history/TestRoleHistoryRW.groovy
@@ -41,6 +41,7 @@ class TestRoleHistoryRW extends BaseMockAppStateTest {
   static long time = System.currentTimeMillis();
   public static final String HISTORY_V1_6_ROLE = 
"org/apache/slider/server/avro/history-v01-6-role.json"
   public static final String HISTORY_V1_3_ROLE = 
"org/apache/slider/server/avro/history-v01-3-role.json"
+  public static final String HISTORY_V1b_1_ROLE = 
"org/apache/slider/server/avro/history_v01b_1_role.json"
 
 
   static final ProviderRole PROVIDER_ROLE3 = new ProviderRole(
@@ -323,4 +324,20 @@ class TestRoleHistoryRW extends BaseMockAppStateTest {
     assert 0 == roleHistory.rebuild(loadedRoleHistory)
   }
 
+  /**
+   * Test that a v1b JSON file can be read. Here more roles than expected
+   * @throws Throwable
+   */
+  @Test
+  public void testReloadDataV1b_1_role() throws Throwable {
+    String source = HISTORY_V1b_1_ROLE
+    RoleHistoryWriter writer = new RoleHistoryWriter()
+
+    def loadedRoleHistory = writer.read(source)
+    assert 1 == loadedRoleHistory.size()
+    assert 2 == loadedRoleHistory.roleMap.size()
+    RoleHistory roleHistory = new MockRoleHistory(MockFactory.ROLES)
+    assert 0 == roleHistory.rebuild(loadedRoleHistory)
+
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b99a3d9b/slider-core/src/test/resources/org/apache/slider/server/avro/history_v01b_1_role.json
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/resources/org/apache/slider/server/avro/history_v01b_1_role.json
 
b/slider-core/src/test/resources/org/apache/slider/server/avro/history_v01b_1_role.json
new file mode 100644
index 0000000..67d644f
--- /dev/null
+++ 
b/slider-core/src/test/resources/org/apache/slider/server/avro/history_v01b_1_role.json
@@ -0,0 +1,38 @@
+{
+  "entry": {
+    "org.apache.slider.server.avro.RoleHistoryHeader": {
+      "version": 1,
+      "saved": 1450435691617,
+      "savedx": "151b4b44461",
+      "savedate": "18 Dec 2015 10:48:11 GMT",
+      "roles": 2
+    }
+  }
+}
+{
+  "entry": {
+    "org.apache.slider.server.avro.RoleHistoryMapping": {
+      "rolemap": {
+        "echo": 1,
+        "slider-appmaster": 0
+      }
+    }
+  }
+}
+{
+  "entry": {
+    "org.apache.slider.server.avro.NodeEntryRecord": {
+      "host": "192.168.56.1",
+      "role": 1,
+      "active": true,
+      "last_used": 0
+    }
+  }
+}
+{
+  "entry": {
+    "org.apache.slider.server.avro.RoleHistoryFooter": {
+      "count": 1
+    }
+  }
+}

Reply via email to