aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2022-04-20 16:27:45 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-20 16:27:45 +0000
commit7e97deb1b6e94e0c2a634cc812f6303f23737af2 (patch)
tree74e54202b20114ddf260e2fe8c3515667eb96c1f
parent97f64d942cc633f41faa687306ec5d4a78191985 (diff)
parent97bb2c51d78e87e33a78289758cbb634216eb3fc (diff)
downloadjunit-params-7e97deb1b6e94e0c2a634cc812f6303f23737af2.tar.gz
Allow @TestCaseName to be for names that are compatible with CTS/AJUR am: deb706635e am: a4ec4e26a9 am: 97bb2c51d7t_frc_odp_330442040t_frc_odp_330442000t_frc_ase_330444010android13-frc-odp-releaseandroid13-dev
Original change: https://android-review.googlesource.com/c/platform/external/junit-params/+/2059654 Change-Id: I7733f3057f5c44430e166e75263a213af4d069b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--README.google3
-rw-r--r--src/main/java/junitparams/naming/MacroSubstitutionNamingStrategy.java20
2 files changed, 17 insertions, 6 deletions
diff --git a/README.google b/README.google
index 47541ba..a1ef97e 100644
--- a/README.google
+++ b/README.google
@@ -18,3 +18,6 @@ Local Modifications:
and prevent use of @TestCaseName.
Ignore tests broken by the above change.
38419944 - Fix sharding on CTS.
+ 36541809 - Partially revert 36541809 to allow @TestCaseName to be
+ used as long as it generates a name that is compatible
+ with CTS and AJUR.
diff --git a/src/main/java/junitparams/naming/MacroSubstitutionNamingStrategy.java b/src/main/java/junitparams/naming/MacroSubstitutionNamingStrategy.java
index 1bdcafb..3386e51 100644
--- a/src/main/java/junitparams/naming/MacroSubstitutionNamingStrategy.java
+++ b/src/main/java/junitparams/naming/MacroSubstitutionNamingStrategy.java
@@ -23,6 +23,9 @@ public class MacroSubstitutionNamingStrategy implements TestCaseNamingStrategy {
this.method = testMethod;
}
+ // Android-added: allowable test names
+ private static final Pattern ALLOWABLE_TEST_NAMES = Pattern.compile("\\w+(\\[\\d+])?");
+
@Override
public String getTestCaseName(int parametersIndex, Object parameters) {
TestCaseName testCaseName = method.getAnnotation(TestCaseName.class);
@@ -30,6 +33,16 @@ public class MacroSubstitutionNamingStrategy implements TestCaseNamingStrategy {
String template = getTemplate(testCaseName);
String builtName = buildNameByTemplate(template, parametersIndex, parameters);
+ // Android-changed: CTS and AndroidJUnitRunner rely on specific format to test names,
+ // changing them will prevent CTS and AndroidJUnitRunner from working properly;
+ // see b/36541809
+ if (!ALLOWABLE_TEST_NAMES.matcher(builtName).matches()) {
+ throw new IllegalStateException(String.format(
+ "@TestCaseName(\"%s\") not currently supported as it generated a test name of"
+ + " \"%s\" which will not work properly in CTS, must match \"%s\"",
+ template, builtName, ALLOWABLE_TEST_NAMES));
+ }
+
if (builtName.trim().isEmpty()) {
return buildNameByTemplate(DEFAULT_TEMPLATE, parametersIndex, parameters);
} else {
@@ -39,12 +52,7 @@ public class MacroSubstitutionNamingStrategy implements TestCaseNamingStrategy {
private String getTemplate(TestCaseName testCaseName) {
if (testCaseName != null) {
- // Android-changed: CTS and AndroidJUnitRunner rely on specific format to test names,
- // changing them will prevent CTS and AndroidJUnitRunner from working properly;
- // see b/36541809
- throw new IllegalStateException(
- "@TestCaseName not currently supported as it breaks running tests in CTS");
- // return testCaseName.value();
+ return testCaseName.value();
}
return DEFAULT_TEMPLATE;