Loading core/java/android/os/FileUtils.java +13 −0 Original line number Diff line number Diff line Loading @@ -1198,6 +1198,19 @@ public class FileUtils { /** {@hide} */ public static int translateModeStringToPosix(String mode) { // Sanity check for invalid chars for (int i = 0; i < mode.length(); i++) { switch (mode.charAt(i)) { case 'r': case 'w': case 't': case 'a': break; default: throw new IllegalArgumentException("Bad mode: " + mode); } } int res = 0; if (mode.startsWith("rw")) { res |= O_RDWR | O_CREAT; Loading core/tests/coretests/src/android/os/FileUtilsTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.content.Context; import android.os.FileUtils.MemoryPipe; Loading Loading @@ -510,6 +511,20 @@ public class FileUtilsTest { MODE_WRITE_ONLY | MODE_CREATE | MODE_APPEND); } @Test public void testTranslateMode_Invalid() throws Exception { try { translateModeStringToPosix("rwx"); fail(); } catch (IllegalArgumentException expected) { } try { translateModeStringToPosix(""); fail(); } catch (IllegalArgumentException expected) { } } private static void assertTranslate(String string, int posix, int pfd) { assertEquals(posix, translateModeStringToPosix(string)); assertEquals(string, translateModePosixToString(posix)); Loading Loading
core/java/android/os/FileUtils.java +13 −0 Original line number Diff line number Diff line Loading @@ -1198,6 +1198,19 @@ public class FileUtils { /** {@hide} */ public static int translateModeStringToPosix(String mode) { // Sanity check for invalid chars for (int i = 0; i < mode.length(); i++) { switch (mode.charAt(i)) { case 'r': case 'w': case 't': case 'a': break; default: throw new IllegalArgumentException("Bad mode: " + mode); } } int res = 0; if (mode.startsWith("rw")) { res |= O_RDWR | O_CREAT; Loading
core/tests/coretests/src/android/os/FileUtilsTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.content.Context; import android.os.FileUtils.MemoryPipe; Loading Loading @@ -510,6 +511,20 @@ public class FileUtilsTest { MODE_WRITE_ONLY | MODE_CREATE | MODE_APPEND); } @Test public void testTranslateMode_Invalid() throws Exception { try { translateModeStringToPosix("rwx"); fail(); } catch (IllegalArgumentException expected) { } try { translateModeStringToPosix(""); fail(); } catch (IllegalArgumentException expected) { } } private static void assertTranslate(String string, int posix, int pfd) { assertEquals(posix, translateModeStringToPosix(string)); assertEquals(string, translateModePosixToString(posix)); Loading