Github user omalley commented on a diff in the pull request:

    https://github.com/apache/orc/pull/84#discussion_r96791802
  
    --- Diff: java/core/src/test/org/apache/orc/TestVectorOrcFile.java ---
    @@ -2944,4 +2948,164 @@ public void testWriterVersion() throws Exception {
         assertEquals(OrcFile.WriterVersion.ORIGINAL, 
OrcFile.WriterVersion.from(0));
         assertEquals(OrcFile.WriterVersion.HIVE_4243, 
OrcFile.WriterVersion.from(2));
       }
    +
    +  /**
    +   * Test whether the file versions are translated correctly
    +   * @throws Exception
    +   */
    +  @Test
    +  public void testFileVersion() throws Exception {
    +    assertEquals(OrcFile.Version.V_0_11, ReaderImpl.getFileVersion(null));
    +    assertEquals(OrcFile.Version.V_0_11, ReaderImpl.getFileVersion(new 
ArrayList<Integer>()));
    +    assertEquals(OrcFile.Version.V_0_11,
    +        ReaderImpl.getFileVersion(Arrays.asList(new Integer[]{0, 11})));
    +    assertEquals(OrcFile.Version.V_0_12,
    +        ReaderImpl.getFileVersion(Arrays.asList(new Integer[]{0, 12})));
    +    assertEquals(OrcFile.Version.FUTURE,
    +        ReaderImpl.getFileVersion(Arrays.asList(new Integer[]{9999, 0})));
    +  }
    +
    +  @Test
    +  public void testMergeUnderstood() throws Exception {
    +    Path p = new Path("test.orc");
    +    Reader futureVersion = Mockito.mock(Reader.class);
    +    
Mockito.when(futureVersion.getFileVersion()).thenReturn(OrcFile.Version.FUTURE);
    +    
Mockito.when(futureVersion.getWriterVersion()).thenReturn(OrcFile.WriterVersion.HIVE_4243);
    +    assertEquals(false, OrcFile.understandFormat(p, futureVersion));
    +    Reader futureWriter = Mockito.mock(Reader.class);
    +    
Mockito.when(futureWriter.getFileVersion()).thenReturn(OrcFile.Version.V_0_11);
    +    
Mockito.when(futureWriter.getWriterVersion()).thenReturn(OrcFile.WriterVersion.FUTURE);
    +    assertEquals(false, OrcFile.understandFormat(p, futureWriter));
    +    Reader current = Mockito.mock(Reader.class);
    +    
Mockito.when(current.getFileVersion()).thenReturn(OrcFile.Version.CURRENT);
    +    
Mockito.when(current.getWriterVersion()).thenReturn(OrcFile.CURRENT_WRITER);
    +    assertEquals(true, OrcFile.understandFormat(p, current));
    +  }
    +
    +  static ByteBuffer fromString(String s) {
    +    return ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8));
    +  }
    +
    +  static byte[] fromInt(int x) {
    +    return Integer.toHexString(x).getBytes(StandardCharsets.UTF_8);
    +  }
    +
    +  @Test
    +  public void testGoodMerge() throws Exception {
    --- End diff --
    
    The second merge in testGoodMerge, I did have two files that are dropped 
for being incompatible.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to