Chromium Code Reviews| Index: components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java |
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java |
| index cb47233dea4eebdaaa4e6d1fb7f6af3841346f68..c14a15208f46d876571a752a609c1a85a6605a6d 100644 |
| --- a/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java |
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/ExperimentalOptionsTest.java |
| @@ -8,12 +8,14 @@ import android.support.test.filters.SmallTest; |
| import org.json.JSONObject; |
| +import org.chromium.base.Log; |
| import org.chromium.base.PathUtils; |
| import org.chromium.base.test.util.Feature; |
| -import java.io.BufferedReader; |
| import java.io.File; |
| -import java.io.FileReader; |
| +import java.io.FileInputStream; |
| +import java.io.FileNotFoundException; |
| +import java.io.IOException; |
| /** |
| * Tests for experimental options. |
| @@ -66,22 +68,12 @@ public class ExperimentalOptionsTest extends CronetTestBase { |
| assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| assertEquals("GET", callback.mResponseAsString); |
| mTestFramework.mCronetEngine.stopNetLog(); |
| - assertTrue(logfile.exists()); |
| - assertTrue(logfile.length() != 0); |
| - BufferedReader logReader = new BufferedReader(new FileReader(logfile)); |
| - boolean validFile = false; |
| - try { |
| - String logLine; |
| - while ((logLine = logReader.readLine()) != null) { |
| - if (logLine.contains("HostResolverRules")) { |
| - validFile = true; |
| - break; |
| - } |
| - } |
| - } finally { |
| - logReader.close(); |
| + while (true) { |
| + Log.i(TAG, "Still waiting for netlog file....."); |
| + Thread.sleep(10000); |
|
kapishnikov
2017/04/18 16:24:34
This will increase the duration of every test run
xunjieli
2017/04/18 18:30:29
Done. Great idea! Per offline discussion, I have c
|
| + boolean contains = false; |
| + if (fileContainsString(logfile, "HostResolverRules")) break; |
| } |
| - assertTrue(validFile); |
| assertTrue(logfile.delete()); |
| assertTrue(!logfile.exists()); |
| } |
| @@ -107,23 +99,33 @@ public class ExperimentalOptionsTest extends CronetTestBase { |
| assertEquals(200, callback.mResponseInfo.getHttpStatusCode()); |
| assertEquals("GET", callback.mResponseAsString); |
| - assertTrue(file.exists()); |
| - assertTrue(file.length() != 0); |
| - BufferedReader logReader = new BufferedReader(new FileReader(file)); |
| - boolean validFile = false; |
| - try { |
| - String logLine; |
| - while ((logLine = logReader.readLine()) != null) { |
| - if (logLine.contains("CLIENT_RANDOM")) { |
| - validFile = true; |
| - break; |
| - } |
| - } |
| - } finally { |
| - logReader.close(); |
| + while (true) { |
| + Log.i(TAG, "Still waiting for ssl key log file....."); |
| + Thread.sleep(10000); |
| + boolean contains = false; |
| + if (fileContainsString(file, "CLIENT_RANDOM")) break; |
| } |
| - assertTrue(validFile); |
| assertTrue(file.delete()); |
| assertTrue(!file.exists()); |
| } |
| + |
| + // Returns whether a file contains a particular string. |
| + private boolean fileContainsString(File file, String content) throws IOException { |
| + FileInputStream fileInputStream = null; |
| + try { |
| + fileInputStream = new FileInputStream(file); |
| + byte[] data = new byte[(int) file.length()]; |
| + fileInputStream.read(data); |
| + return new String(data, "UTF-8").contains(content); |
| + } catch (FileNotFoundException e) { |
| + // Ignored this exception since the file will only be created when updates are |
| + // flushed to the disk. |
| + Log.i(TAG, "file not found"); |
| + } finally { |
| + if (fileInputStream != null) { |
| + fileInputStream.close(); |
| + } |
| + } |
| + return false; |
| + } |
| } |