Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01c1f9d9 authored by Maksymilian Osowski's avatar Maksymilian Osowski
Browse files

The results now show which expected result was used.

Bug: 2889857
Change-Id: If2b7e6e6a22ddb5db6c6a50a358e8f263914e6c0
parent f61f75eb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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.
+24 −0
Original line number Diff line number Diff line
@@ -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
+32 −3
Original line number Diff line number Diff line
@@ -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
+44 −10
Original line number Diff line number Diff line
@@ -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) {
        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 {
+24 −0
Original line number Diff line number Diff line
@@ -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");
@@ -115,6 +117,27 @@ public class TextResult extends AbstractResult {
        /** This method is not applicable to this type of result */
    }

    @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);