aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-09-12 18:15:46 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-09-12 18:15:46 +0000
commit058a8ceb7eaf0d7730a626421dd3254099a6d23e (patch)
tree7485a5a0d6a6aa88503c2c31e13d901e582ced85
parenta3460c66ceea00715c7c3ddef72c3f340b89961b (diff)
parentc967ab237b56f14a74fcbabcd07cce6b18605b94 (diff)
downloadtradefederation-058a8ceb7eaf0d7730a626421dd3254099a6d23e.tar.gz
release-request-dabd8cf7-7af2-48e9-a296-ccc6a71cc25d-for-git_oc-m2-release-4328410 snap-temp-L55300000101694322
Change-Id: If6b11110350a275e823804e470240df47f35bf2e
-rw-r--r--src/com/android/tradefed/testtype/suite/TfSuiteRunner.java4
-rw-r--r--tests/src/com/android/tradefed/testtype/suite/TfSuiteRunnerTest.java18
2 files changed, 15 insertions, 7 deletions
diff --git a/src/com/android/tradefed/testtype/suite/TfSuiteRunner.java b/src/com/android/tradefed/testtype/suite/TfSuiteRunner.java
index 219591266..eb556b9a2 100644
--- a/src/com/android/tradefed/testtype/suite/TfSuiteRunner.java
+++ b/src/com/android/tradefed/testtype/suite/TfSuiteRunner.java
@@ -34,6 +34,7 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
@@ -121,7 +122,8 @@ public class TfSuiteRunner extends ITestSuite {
ConfigurationUtil.getConfigNamesFromDirs(mSuitePrefix, extraTestCasesDirs));
}
}
-
+ // Sort configs to ensure they are always evaluated and added in the same order.
+ Collections.sort(configs);
for (String configName : configs) {
try {
IConfiguration testConfig =
diff --git a/tests/src/com/android/tradefed/testtype/suite/TfSuiteRunnerTest.java b/tests/src/com/android/tradefed/testtype/suite/TfSuiteRunnerTest.java
index 3f25572f2..b67d8789f 100644
--- a/tests/src/com/android/tradefed/testtype/suite/TfSuiteRunnerTest.java
+++ b/tests/src/com/android/tradefed/testtype/suite/TfSuiteRunnerTest.java
@@ -44,6 +44,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
+import java.util.List;
/**
* Unit tests for {@link TfSuiteRunner}.
@@ -205,9 +206,11 @@ public class TfSuiteRunnerTest {
File zipDir = FileUtil.getFileForPath(tmpDir, "suite");
FileUtil.mkdirsRWX(zipDir);
- // Create a test config inside a zip.
+ // Create 2 test configs inside a zip.
File testConfig = new File(zipDir, "test1.config");
FileUtil.writeToFile(TEST_CONFIG, testConfig);
+ File testConfig2 = new File(zipDir, "test2.config");
+ FileUtil.writeToFile(TEST_CONFIG, testConfig2);
additionalTestsZipFile = ZipUtil.createZip(zipDir);
OptionSetter setter = new OptionSetter(mRunner);
@@ -221,11 +224,14 @@ public class TfSuiteRunnerTest {
EasyMock.replay(deviceBuildInfo);
LinkedHashMap<String, IConfiguration> configMap = mRunner.loadTests();
- assertEquals(3, configMap.size());
- assertTrue(configMap.containsKey("suite/stub1"));
- assertTrue(configMap.containsKey("suite/stub2"));
- // test1 name was sanitized to look like the included configs.
- assertTrue(configMap.containsKey("suite/test1"));
+ assertEquals(4, configMap.size());
+ // The keySet should be stable and always ensure the same order of files.
+ List<String> keyList = new ArrayList<>(configMap.keySet());
+ // test1 and test2 name was sanitized to look like the included configs.
+ assertEquals("suite/test1", keyList.get(0));
+ assertEquals("suite/test2", keyList.get(1));
+ assertEquals("suite/stub1", keyList.get(2));
+ assertEquals("suite/stub2", keyList.get(3));
EasyMock.verify(deviceBuildInfo);
} finally {
FileUtil.recursiveDelete(deviceTestDir);