From 5e91b63810c24d5b4562ab78bd6355d2b495fb02 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Fri, 5 Jan 2024 13:45:04 -0600 Subject: [PATCH] CLDR-7646 Prepare to use TestCache in VettingViewer - CheckCoverage: improve accept() call - DataPage / STFactory: use all tests (.*), but filter out Coverage before sending to client --- .../java/org/unicode/cldr/web/DataPage.java | 35 ++++++++----------- .../java/org/unicode/cldr/web/STFactory.java | 4 --- .../org/unicode/cldr/test/CheckCoverage.java | 4 +-- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/DataPage.java b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/DataPage.java index 75d55b6c3ba..c8eb55b86fc 100644 --- a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/DataPage.java +++ b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/DataPage.java @@ -21,6 +21,7 @@ import org.unicode.cldr.icu.LDMLConstants; import org.unicode.cldr.test.*; import org.unicode.cldr.test.CheckCLDR.CheckStatus; +import org.unicode.cldr.test.CheckCLDR.CheckStatus.Subtype; import org.unicode.cldr.test.CheckCLDR.InputMethod; import org.unicode.cldr.test.CheckCLDR.Options; import org.unicode.cldr.test.CheckCLDR.StatusAction; @@ -307,30 +308,22 @@ public String getPClass() { */ private boolean setTests(List testList) { tests = ImmutableList.copyOf(testList); - // only consider non-example tests as notable. + // remove coverage level errors from payload + tests.removeIf((status) -> status.getSubtype() == Subtype.coverageLevel); + boolean weHaveTests = false; int errorCount = 0; int warningCount = 0; - for (CheckStatus status : tests) { - if (!status.getType().equals(CheckStatus.exampleType)) { - // skip codefallback exemplar complaints (i.e. 'JPY' - // isn't in exemplars).. they'll show up in missing - if (DEBUG) - System.err.println( - "err: " - + status.getMessage() - + ", test: " - + status.getClass() - + ", cause: " - + status.getCause() - + " on " - + xpath); - weHaveTests = true; - if (status.getType().equals(CheckStatus.errorType)) { - errorCount++; - } else if (status.getType().equals(CheckStatus.warningType)) { - warningCount++; - } + for (final CheckStatus status : tests) { + logger.finest(() -> status + " on " + xpath); + if (status.getType() == CheckStatus.exampleType) { + continue; // does not count as an error or warning but included in payload + } + weHaveTests = true; + if (status.getType().equals(CheckStatus.errorType)) { + errorCount++; + } else if (status.getType().equals(CheckStatus.warningType)) { + warningCount++; } } if (weHaveTests) { diff --git a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/STFactory.java b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/STFactory.java index dd9ec4a76f8..c9b4fc7cab2 100644 --- a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/STFactory.java +++ b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/STFactory.java @@ -1253,10 +1253,6 @@ public STFactory(SurveyMain sm) { throw new NullPointerException("getSupplementalDirectory() == null!"); } - progress.update("setup test cache"); - getTestCache().setNameMatcher("(?!.*(CheckCoverage).*).*"); - progress.update("setup disk test cache"); - sm.getDiskFactory().getTestCache().setNameMatcher("(?!.*(CheckCoverage).*).*"); progress.update("reload all users"); sm.reg.getVoterInfoList(); progress.update("setup pathheader factory"); diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java index a85603abd54..cae7bba61a2 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckCoverage.java @@ -53,8 +53,6 @@ public CheckCoverage(Factory factory) { public CheckCLDR handleCheck( String path, String fullPath, String value, Options options, List result) { - if (!accept(result)) return this; - CLDRFile resolvedCldrFileToCheck = getResolvedCldrFileToCheck(); // skip if we are not the winning path @@ -62,6 +60,8 @@ public CheckCLDR handleCheck( return this; } + if (!accept(result)) return this; + Status status = new Status(); /*