Add file extension property to Skylark

RELNOTES[NEW]: Files now have an "extension" property in Skylark.

--
MOS_MIGRATED_REVID=136425934
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
index 71b7dec..c4ac7c1 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
@@ -280,6 +280,20 @@
     assertThat(new PathFragment("").getBaseName()).isEmpty();
   }
 
+  @Test
+  public void testFileExtension() throws Exception {
+    assertThat(new PathFragment("foo.bar").getFileExtension()).isEqualTo("bar");
+    assertThat(new PathFragment("foo.barr").getFileExtension()).isEqualTo("barr");
+    assertThat(new PathFragment("foo.b").getFileExtension()).isEqualTo("b");
+    assertThat(new PathFragment("foo.").getFileExtension()).isEmpty();
+    assertThat(new PathFragment("foo").getFileExtension()).isEmpty();
+    assertThat(new PathFragment(".").getFileExtension()).isEmpty();
+    assertThat(new PathFragment("").getFileExtension()).isEmpty();
+    assertThat(new PathFragment("foo/bar.baz").getFileExtension()).isEqualTo("baz");
+    assertThat(new PathFragment("foo.bar.baz").getFileExtension()).isEqualTo("baz");
+    assertThat(new PathFragment("foo.bar/baz").getFileExtension()).isEmpty();
+  }
+
   private static void assertPath(String expected, PathFragment actual) {
     assertEquals(expected, actual.getPathString());
   }