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; |
+ } |
} |