summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/database/DatabaseUtils.java24
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java8
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java24
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java35
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java54
-rw-r--r--tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java24
6 files changed, 144 insertions, 25 deletions
diff --git a/core/java/android/database/DatabaseUtils.java b/core/java/android/database/DatabaseUtils.java
index 38d6526d22e8..90bb0e229733 100644
--- a/core/java/android/database/DatabaseUtils.java
+++ b/core/java/android/database/DatabaseUtils.java
@@ -769,8 +769,8 @@ public class DatabaseUtils {
*/
public static void cursorStringToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getString(index));
}
}
@@ -785,8 +785,8 @@ public class DatabaseUtils {
*/
public static void cursorLongToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getLong(index));
}
}
@@ -801,8 +801,8 @@ public class DatabaseUtils {
*/
public static void cursorShortToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getShort(index));
}
}
@@ -817,8 +817,8 @@ public class DatabaseUtils {
*/
public static void cursorIntToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getInt(index));
}
}
@@ -833,8 +833,8 @@ public class DatabaseUtils {
*/
public static void cursorFloatToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getFloat(index));
}
}
@@ -849,8 +849,8 @@ public class DatabaseUtils {
*/
public static void cursorDoubleToContentValuesIfPresent(Cursor cursor, ContentValues values,
String column) {
- final int index = cursor.getColumnIndexOrThrow(column);
- if (!cursor.isNull(index)) {
+ final int index = cursor.getColumnIndex(column);
+ if (index != -1 && !cursor.isNull(index)) {
values.put(column, cursor.getDouble(index));
}
}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java
index d68930cba40e..7cbb3970c8da 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java
@@ -92,8 +92,16 @@ public abstract class AbstractResult implements Comparable<AbstractResult> {
public abstract void setExpectedImageResult(byte[] expectedResult);
+ public abstract void setExpectedImageResultPath(String relativePath);
+
+ public abstract String getExpectedImageResultPath();
+
public abstract void setExpectedTextResult(String expectedResult);
+ public abstract void setExpectedTextResultPath(String relativePath);
+
+ public abstract String getExpectedTextResultPath();
+
/**
* Returns result's image data that can be written to the disk. It can be null
* if there is an error of some sort or for example the test times out.
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java
index a793dab3aa95..31da7767ffa7 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java
@@ -22,6 +22,8 @@ import android.webkit.WebView;
/**
* A dummy class representing test that crashed.
+ *
+ * TODO: All the methods regarding expected results need implementing.
*/
public class CrashedDummyResult extends AbstractResult {
String mRelativePath;
@@ -82,4 +84,26 @@ public class CrashedDummyResult extends AbstractResult {
public void setExpectedTextResult(String expectedResult) {
/** TODO */
}
+
+ @Override
+ public String getExpectedImageResultPath() {
+ /** TODO */
+ return null;
+ }
+
+ @Override
+ public String getExpectedTextResultPath() {
+ /** TODO */
+ return null;
+ }
+
+ @Override
+ public void setExpectedImageResultPath(String relativePath) {
+ /** TODO */
+ }
+
+ @Override
+ public void setExpectedTextResultPath(String relativePath) {
+ /** TODO */
+ }
} \ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java
index fbc069b9a48e..d9da672cdc9c 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java
@@ -128,6 +128,13 @@ public class ManagerService extends Service {
private String mCurrentlyRunningTest;
private int mCurrentlyRunningTestIndex;
+ /**
+ * These are implementation details of getExpectedResultPath() used to reduce the number
+ * of requests required to the host server.
+ */
+ private String mLastExpectedResultPathRequested;
+ private String mLastExpectedResultPathFetched;
+
private String mAllTestsRelativePath;
@Override
@@ -194,7 +201,9 @@ public class ManagerService extends Service {
private void handleResults(AbstractResult results) {
String relativePath = results.getRelativePath();
results.setExpectedTextResult(getExpectedTextResult(relativePath));
+ results.setExpectedTextResultPath(getExpectedTextResultPath(relativePath));
results.setExpectedImageResult(getExpectedImageResult(relativePath));
+ results.setExpectedImageResultPath(getExpectedImageResultPath(relativePath));
dumpActualTextResult(results);
dumpActualImageResult(results);
@@ -227,7 +236,7 @@ public class ManagerService extends Service {
actualImageResult, false);
}
- public static String getExpectedTextResult(String relativePath) {
+ public String getExpectedTextResult(String relativePath) {
byte[] result = getExpectedResult(relativePath, TEXT_RESULT_EXTENSION);
if (result != null) {
return new String(result);
@@ -235,13 +244,14 @@ public class ManagerService extends Service {
return null;
}
- public static byte[] getExpectedImageResult(String relativePath) {
+ public byte[] getExpectedImageResult(String relativePath) {
return getExpectedResult(relativePath, IMAGE_RESULT_EXTENSION);
}
- private static byte[] getExpectedResult(String relativePath, String extension) {
+ private byte[] getExpectedResult(String relativePath, String extension) {
String originalRelativePath =
FileFilter.setPathEnding(relativePath, "-expected." + extension);
+ mLastExpectedResultPathRequested = originalRelativePath;
byte[] bytes = null;
List<String> locations = EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES;
@@ -252,6 +262,25 @@ public class ManagerService extends Service {
bytes = FsUtils.readDataFromUrl(FileFilter.getUrl(relativePath));
}
+ mLastExpectedResultPathFetched = relativePath;
return bytes;
}
+
+ private String getExpectedTextResultPath(String relativePath) {
+ return getExpectedResultPath(relativePath, TEXT_RESULT_EXTENSION);
+ }
+
+ private String getExpectedImageResultPath(String relativePath) {
+ return getExpectedResultPath(relativePath, IMAGE_RESULT_EXTENSION);
+ }
+
+ private String getExpectedResultPath(String relativePath, String extension) {
+ String originalRelativePath =
+ FileFilter.setPathEnding(relativePath, "-expected." + extension);
+ if (!originalRelativePath.equals(mLastExpectedResultPathRequested)) {
+ getExpectedResult(relativePath, extension);
+ }
+
+ return mLastExpectedResultPathFetched;
+ }
} \ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java
index 5c10776b0ae2..ea8b097f9488 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java
@@ -65,7 +65,8 @@ public class Summarizer {
" font-size: 14px;" +
" color: black;" +
" text-decoration: none;" +
- " margin-bottom: 4px;}" +
+ " margin-top: 4px;" +
+ " margin-bottom: 2px;}" +
"h3 a span.path {" +
" text-decoration: underline;}" +
"h3 span.tri {" +
@@ -77,6 +78,15 @@ public class Summarizer {
" color: #8ee100;" +
" float: left;" +
" width: 20px;}" +
+ "span.source {" +
+ " display: block;" +
+ " font-size: 10px;" +
+ " color: #888;" +
+ " margin-left: 20px;" +
+ " margin-bottom: 1px;}" +
+ "span.source a {" +
+ " font-size: 10px;" +
+ " color: #888;}" +
"h3 img {" +
" width: 8px;" +
" margin-right: 4px;}" +
@@ -186,8 +196,8 @@ public class Summarizer {
private int mCrashedTestsCount = 0;
private List<AbstractResult> mUnexpectedFailures = new ArrayList<AbstractResult>();
private List<AbstractResult> mExpectedFailures = new ArrayList<AbstractResult>();
- private List<String> mExpectedPasses = new ArrayList<String>();
- private List<String> mUnexpectedPasses = new ArrayList<String>();
+ private List<AbstractResult> mExpectedPasses = new ArrayList<AbstractResult>();
+ private List<AbstractResult> mUnexpectedPasses = new ArrayList<AbstractResult>();
private FileFilter mFileFilter;
private String mResultsRootDirPath;
@@ -215,9 +225,9 @@ public class Summarizer {
if (result.getResultCode() == AbstractResult.ResultCode.PASS) {
if (mFileFilter.isFail(relativePath)) {
- mUnexpectedPasses.add(relativePath);
+ mUnexpectedPasses.add(result);
} else {
- mExpectedPasses.add(relativePath);
+ mExpectedPasses.add(result);
}
} else {
if (mFileFilter.isFail(relativePath)) {
@@ -382,6 +392,7 @@ public class Summarizer {
}
html.append("</h3>");
+ appendExpectedResultsSources(result, html);
html.append("<div class=\"diff\" style=\"display: none;\" id=\"" + id + "\">");
html.append(result.getDiffAsHtml());
@@ -397,21 +408,44 @@ public class Summarizer {
}
private void createResultsListNoDiff(StringBuilder html, String title,
- List<String> resultsList) {
+ List<AbstractResult> resultsList) {
Collections.sort(resultsList);
- html.append("<h2>" + title + "[" + resultsList.size() + "]</h2>");
- for (String result : resultsList) {
+ html.append("<h2>" + title + " [" + resultsList.size() + "]</h2>");
+ for (AbstractResult result : resultsList) {
html.append("<h3>");
- html.append("<a href=\"" + getViewSourceUrl(result).toString() + "\"");
+ html.append("<a href=\"" + getViewSourceUrl(result.getRelativePath()).toString() +
+ "\"");
html.append(" target=\"_blank\">");
html.append("<span class=\"sqr\">&#x25a0; </span>");
- html.append("<span class=\"path\">" + result + "</span>");
+ html.append("<span class=\"path\">" + result.getRelativePath() + "</span>");
html.append("</a>");
html.append("</h3>");
+ appendExpectedResultsSources(result, html);
html.append("<div class=\"space\"></div>");
}
}
+ private static final void appendExpectedResultsSources(AbstractResult result,
+ StringBuilder html) {
+ String textSource = result.getExpectedTextResultPath();
+ String imageSource = result.getExpectedImageResultPath();
+
+ if (textSource != null) {
+ html.append("<span class=\"source\">Expected textual result from: ");
+ html.append("<a href=\"" + ForwarderManager.getHostSchemePort(false) + "LayoutTests/" +
+ textSource + "\"");
+ html.append(" target=\"_blank\">");
+ html.append(textSource + "</a></span>");
+ }
+ if (imageSource != null) {
+ html.append("<span class=\"source\">Expected image result from: ");
+ html.append("<a href=\"" + ForwarderManager.getHostSchemePort(false) + "LayoutTests/" +
+ imageSource + "\"");
+ html.append(" target=\"_blank\">");
+ html.append(imageSource + "</a></span>");
+ }
+ }
+
private static final URL getViewSourceUrl(String relativePath) {
URL url = null;
try {
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java
index 0f864e5b2277..9664efe30115 100644
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java
+++ b/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java
@@ -36,6 +36,7 @@ public class TextResult extends AbstractResult {
private static final int MSG_DOCUMENT_AS_TEXT = 0;
private String mExpectedResult;
+ private String mExpectedResultPath;
private String mActualResult;
private String mRelativePath;
private ResultCode mResultCode;
@@ -69,6 +70,7 @@ public class TextResult extends AbstractResult {
*/
public TextResult(Bundle bundle) {
mExpectedResult = bundle.getString("expectedTextualResult");
+ mExpectedResultPath = bundle.getString("expectedTextualResultPath");
mActualResult = bundle.getString("actualTextualResult");
setAdditionalTextOutputString(bundle.getString("additionalTextOutputString"));
mRelativePath = bundle.getString("relativePath");
@@ -116,6 +118,27 @@ public class TextResult extends AbstractResult {
}
@Override
+ public void setExpectedImageResultPath(String relativePath) {
+ /** This method is not applicable to this type of result */
+ }
+
+ @Override
+ public String getExpectedImageResultPath() {
+ /** This method is not applicable to this type of result */
+ return null;
+ }
+
+ @Override
+ public void setExpectedTextResultPath(String relativePath) {
+ mExpectedResultPath = relativePath;
+ }
+
+ @Override
+ public String getExpectedTextResultPath() {
+ return mExpectedResultPath;
+ }
+
+ @Override
public void setExpectedTextResult(String expectedResult) {
mExpectedResult = expectedResult;
}
@@ -212,6 +235,7 @@ public class TextResult extends AbstractResult {
public Bundle getBundle() {
Bundle bundle = new Bundle();
bundle.putString("expectedTextualResult", mExpectedResult);
+ bundle.putString("expectedTextualResultPath", mExpectedResultPath);
bundle.putString("actualTextualResult", getActualTextResult());
bundle.putString("additionalTextOutputString", getAdditionalTextOutputString());
bundle.putString("relativePath", mRelativePath);