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

Commit f072bced authored by Maksymilian Osowski's avatar Maksymilian Osowski Committed by Android (Google) Code Review
Browse files

Merge "Updated Summarizer to report tests under all 4 possible categories now."

parents 15116bcc 6ae5ce4b
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -49,11 +49,11 @@ public class FileFilter {
    private static final String SSL_PATH = "ssl/";

    private static final String TOKEN_SKIP = "SKIP";
    private static final String TOKEN_IGNORE_RESULT = "IGNORE_RESULT";
    private static final String TOKEN_FAIL = "FAIL";
    private static final String TOKEN_SLOW = "SLOW";

    private final Set<String> mSkipList = new HashSet<String>();
    private final Set<String> mIgnoreResultList = new HashSet<String>();
    private final Set<String> mFailList = new HashSet<String>();
    private final Set<String> mSlowList = new HashSet<String>();

    private final String mRootDirPath;
@@ -91,7 +91,6 @@ public class FileFilter {
                String[] parts;
                String path;
                Set<String> tokens;
                Boolean skipped;
                while (true) {
                    line = bufferedReader.readLine();
                    if (line == null) {
@@ -122,21 +121,16 @@ public class FileFilter {
                    tokens = new HashSet<String>(Arrays.asList(parts[1].split("\\s", 0)));

                    /** Chose the right collections to add to */
                    skipped = false;
                    if (tokens.contains(TOKEN_SKIP)) {
                        mSkipList.add(path);
                        skipped = true;
                    }

                        /** If test is on skip list we ignore any further options */
                    if (skipped) {
                        continue;
                    }

                    if (tokens.contains(TOKEN_IGNORE_RESULT)) {
                        mIgnoreResultList.add(path);
                    if (tokens.contains(TOKEN_FAIL)) {
                        mFailList.add(path);
                    }

                    if (tokens.contains(TOKEN_SLOW)) {
                        mSlowList.add(path);
                    }
@@ -177,18 +171,18 @@ public class FileFilter {
    }

    /**
     * Checks if test result is supposed to be ignored.
     * Checks if test result is supposed to be "failed".
     *
     * <p>
     * Path given should relative within LayoutTests folder, e.g. fast/dom/foo.html
     *
     * @param testPath
     *            - a relative path within LayoutTests folder
     * @return if the test result is supposed to be ignored
     * @return if the test result is supposed to be "failed"
     */
    public boolean isIgnoreRes(String testPath) {
    public boolean isFail(String testPath) {
        for (String prefix : getPrefixes(testPath)) {
            if (mIgnoreResultList.contains(prefix)) {
            if (mFailList.contains(prefix)) {
                return true;
            }
        }
+56 −50
Original line number Diff line number Diff line
@@ -183,9 +183,10 @@ public class Summarizer {
    private static final String TXT_SUMMARY_RELATIVE_PATH = "summary.txt";

    private int mCrashedTestsCount = 0;
    private List<AbstractResult> mFailedNotIgnoredTests = new ArrayList<AbstractResult>();
    private List<AbstractResult> mIgnoredTests = new ArrayList<AbstractResult>();
    private List<String> mPassedNotIgnoredTests = new ArrayList<String>();
    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 FileFilter mFileFilter;
    private String mResultsRootDirPath;
@@ -206,12 +207,18 @@ public class Summarizer {
            mCrashedTestsCount++;
        }

        if (mFileFilter.isIgnoreRes(relativePath)) {
            mIgnoredTests.add(result);
        } else if (result.getResultCode() == AbstractResult.ResultCode.PASS) {
            mPassedNotIgnoredTests.add(relativePath);
        if (result.getResultCode() == AbstractResult.ResultCode.PASS) {
            if (mFileFilter.isFail(relativePath)) {
                mUnexpectedPasses.add(relativePath);
            } else {
            mFailedNotIgnoredTests.add(result);
                mExpectedPasses.add(relativePath);
            }
        } else {
            if (mFileFilter.isFail(relativePath)) {
                mExpectedFailures.add(result);
            } else {
                mUnexpectedFailures.add(result);
            }
        }
    }

@@ -226,9 +233,9 @@ public class Summarizer {

    public void reset() {
        mCrashedTestsCount = 0;
        mFailedNotIgnoredTests.clear();
        mIgnoredTests.clear();
        mPassedNotIgnoredTests.clear();
        mUnexpectedFailures.clear();
        mExpectedFailures.clear();
        mExpectedPasses.clear();
        mDate = new Date();
    }

@@ -246,9 +253,10 @@ public class Summarizer {
            txt.append("CRASHED (total among all tests): " + mCrashedTestsCount + "\n");
            txt.append("-------------");
        }
        txt.append("FAILED:  " + mFailedNotIgnoredTests.size() + "\n");
        txt.append("IGNORED: " + mIgnoredTests.size() + "\n");
        txt.append("PASSED:  " + mPassedNotIgnoredTests.size() + "\n");
        txt.append("UNEXPECTED FAILURES: " + mUnexpectedFailures.size() + "\n");
        txt.append("UNEXPECTED PASSES:   " + mUnexpectedPasses.size() + "\n");
        txt.append("EXPECTED FAILURES:   " + mExpectedFailures.size() + "\n");
        txt.append("EXPECTED PASSES:     " + mExpectedPasses.size() + "\n");

        FsUtils.writeDataToStorage(new File(mResultsRootDirPath, TXT_SUMMARY_RELATIVE_PATH),
                txt.toString().getBytes(), false);
@@ -264,11 +272,13 @@ public class Summarizer {

        createTopSummaryTable(html);

        createResultsListWithDiff(html, "Failed", mFailedNotIgnoredTests);
        createResultsListWithDiff(html, "Unexpected failures", mUnexpectedFailures);

        createResultsListNoDiff(html, "Unexpected passes", mUnexpectedPasses);

        createResultsListWithDiff(html, "Ignored", mIgnoredTests);
        createResultsListWithDiff(html, "Expected failures", mExpectedFailures);

        createResultsListNoDiff(html, "Passed", mPassedNotIgnoredTests);
        createResultsListNoDiff(html, "Expected passes", mExpectedPasses);

        html.append("</body></html>");

@@ -277,9 +287,10 @@ public class Summarizer {
    }

    private int getTotalTestCount() {
        return mFailedNotIgnoredTests.size() +
                mPassedNotIgnoredTests.size() +
                mIgnoredTests.size();
        return mUnexpectedFailures.size() +
                mUnexpectedPasses.size() +
                mExpectedPasses.size() +
                mExpectedFailures.size();
    }

    private String getWebKitVersionFromUserAgentString() {
@@ -305,9 +316,10 @@ public class Summarizer {
        html.append("<table class=\"summary\">");
        createSummaryTableRow(html, "TOTAL", getTotalTestCount());
        createSummaryTableRow(html, "CRASHED", mCrashedTestsCount);
        createSummaryTableRow(html, "FAILED", mFailedNotIgnoredTests.size());
        createSummaryTableRow(html, "IGNORED", mIgnoredTests.size());
        createSummaryTableRow(html, "PASSED", mPassedNotIgnoredTests.size());
        createSummaryTableRow(html, "UNEXPECTED FAILURES", mUnexpectedFailures.size());
        createSummaryTableRow(html, "UNEXPECTED PASSES", mUnexpectedPasses.size());
        createSummaryTableRow(html, "EXPECTED FAILURES", mExpectedFailures.size());
        createSummaryTableRow(html, "EXPECTED PASSES", mExpectedPasses.size());
        html.append("</table>");
    }

@@ -329,13 +341,10 @@ public class Summarizer {
        for (AbstractResult result : resultsList) {
            relativePath = result.getRelativePath();
            resultCode = result.getResultCode();
            assert resultCode != AbstractResult.ResultCode.PASS : "resultCode=" + resultCode;

            html.append("<h3>");

            if (resultCode == AbstractResult.ResultCode.PASS) {
                html.append("<span class=\"sqr\">&#x25a0; </span>");
                html.append("<span class=\"path\">" + relativePath + "</span>");
            } else {
            /**
             * Technically, two different paths could end up being the same, because
             * ':' is a valid  character in a path. However, it is probably not going
@@ -347,7 +356,6 @@ public class Summarizer {
            html.append("<span class=\"tri\" id=\"tri." + id + "\">&#x25b6; </span>");
            html.append("<span class=\"path\">" + relativePath + "</span>");
            html.append("</a>");
            }

            html.append(" <span class=\"listItem " + resultCode.name() + "\">");
            html.append(resultCode.toString());
@@ -369,7 +377,6 @@ public class Summarizer {

            html.append("</h3>");

            if (resultCode != AbstractResult.ResultCode.PASS) {
            html.append("<div class=\"diff\" style=\"display: none;\" id=\"" + id + "\">");
            html.append(result.getDiffAsHtml());
            html.append("<a href=\"#\" onClick=\"toggleDisplay('" + id + "');");
@@ -378,7 +385,6 @@ public class Summarizer {
            html.append("<a href=\"" + getViewSourceUrl(relativePath).toString() + "\"");
            html.append(" target=\"_blank\">Show source</a>");
            html.append("</div>");
            }

            html.append("<div class=\"space\"></div>");
        }
@@ -387,7 +393,7 @@ public class Summarizer {
    private void createResultsListNoDiff(StringBuilder html, String title,
            List<String> resultsList) {
        Collections.sort(resultsList);
        html.append("<h2>Passed [" + resultsList.size() + "]</h2>");
        html.append("<h2>" + title + "[" + resultsList.size() + "]</h2>");
        for (String result : resultsList) {
            html.append("<h3>");
            html.append("<a href=\"" + getViewSourceUrl(result).toString() + "\"");