Merge "Fix Os.getDefault() BlockGuard test."
diff --git a/luni/src/test/java/libcore/libcore/io/BlockGuardOsTest.java b/luni/src/test/java/libcore/libcore/io/BlockGuardOsTest.java
index 91d7c3a..471906f 100644
--- a/luni/src/test/java/libcore/libcore/io/BlockGuardOsTest.java
+++ b/luni/src/test/java/libcore/libcore/io/BlockGuardOsTest.java
@@ -24,6 +24,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import android.system.ErrnoException;
 import android.system.OsConstants;
 import android.system.StructAddrinfo;
 
@@ -58,22 +59,42 @@
 
     @Mock private Os mockOsDelegate;
     @Mock private BlockGuard.Policy mockThreadPolicy;
+    @Mock private BlockGuard.VmPolicy mockVmPolicy;
 
     private BlockGuard.Policy savedThreadPolicy;
+    private BlockGuard.VmPolicy savedVmPolicy;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         savedThreadPolicy = BlockGuard.getThreadPolicy();
+        savedVmPolicy = BlockGuard.getVmPolicy();
         BlockGuard.setThreadPolicy(mockThreadPolicy);
+        BlockGuard.setVmPolicy(mockVmPolicy);
     }
 
     @After
     public void tearDown() {
+        BlockGuard.setVmPolicy(savedVmPolicy);
         BlockGuard.setThreadPolicy(savedThreadPolicy);
     }
 
     @Test
+    public void test_blockguardOsIsNotifiedByDefault_rename() {
+        String oldPath = "BlockGuardOsTest/missing/old/path";
+        String newPath = "BlockGuardOsTest/missing/new/path";
+        try {
+            // We try not to be prescriptive about the exact default Os implementation.
+            // Whatever default Os is installed, we do expect BlockGuard to be called.
+            Os.getDefault().rename(oldPath, newPath);
+        } catch (ErrnoException ignored) {
+        }
+        verify(mockThreadPolicy).onWriteToDisk();
+        verify(mockVmPolicy).onPathAccess(oldPath);
+        verify(mockVmPolicy).onPathAccess(newPath);
+    }
+
+    @Test
     public void test_android_getaddrinfo_networkPolicy() {
         InetAddress[] addresses = new InetAddress[] { InetAddress.getLoopbackAddress() };
         when(mockOsDelegate.android_getaddrinfo(anyString(), any(), anyInt()))
diff --git a/luni/src/test/java/libcore/libcore/io/OsTest.java b/luni/src/test/java/libcore/libcore/io/OsTest.java
index 0b66d96..6359f87 100644
--- a/luni/src/test/java/libcore/libcore/io/OsTest.java
+++ b/luni/src/test/java/libcore/libcore/io/OsTest.java
@@ -18,7 +18,6 @@
 
 import junit.framework.TestCase;
 
-import libcore.io.BlockGuardOs;
 import libcore.io.ForwardingOs;
 import libcore.io.Os;
 
@@ -26,11 +25,6 @@
 
 public class OsTest extends TestCase {
 
-    public void testGetDefault_instanceofBlockguardOs() {
-        Os os = Os.getDefault();
-        assertTrue(os.getClass().toString(), os instanceof BlockGuardOs);
-    }
-
     public void testCompareAndSetDefault_success() throws Exception {
         Os defaultOs = Os.getDefault();
         Os mockOs = Mockito.mock(Os.class);