aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Giorgi <jgiorgi@google.com>2017-05-30 15:30:56 -0700
committerJulien Desprez <jdesprez@google.com>2017-06-16 21:25:43 +0000
commita15da12f24a7526a0b343f73fcddd584102dd24f (patch)
treeb53eba2afb2203b34777641e868927c55a912d44
parentc87467bf1b7be7cd0e796412c8c06fa08f3ef779 (diff)
downloadtradefederation-a15da12f24a7526a0b343f73fcddd584102dd24f.tar.gz
Added getFiles method to DeviceFolderBuildInfo
Base BuildInfo class is missing device images. Test: Unit test on new method. Bug: b/62223650, b/30815281 Change-Id: Ib63affc488f7c3f231083470da33ff9f25abb998 (cherry picked from commit 8f92eff05258604b253719aa7892079911261890)
-rw-r--r--src/com/android/tradefed/build/DeviceFolderBuildInfo.java14
-rw-r--r--tests/src/com/android/tradefed/UnitTests.java2
-rw-r--r--tests/src/com/android/tradefed/build/DeviceFolderBuildInfoTest.java93
3 files changed, 108 insertions, 1 deletions
diff --git a/src/com/android/tradefed/build/DeviceFolderBuildInfo.java b/src/com/android/tradefed/build/DeviceFolderBuildInfo.java
index 5c7befe69..0fa4abb30 100644
--- a/src/com/android/tradefed/build/DeviceFolderBuildInfo.java
+++ b/src/com/android/tradefed/build/DeviceFolderBuildInfo.java
@@ -16,6 +16,9 @@
package com.android.tradefed.build;
import java.io.File;
+import java.util.Collection;
+import java.util.ArrayList;
+import java.util.List;
/**
* A {@link IDeviceBuildInfo} that also contains other build artifacts contained in a directory on
@@ -247,7 +250,16 @@ public class DeviceFolderBuildInfo extends BuildInfo implements IDeviceBuildInfo
mDeviceBuild.setRamdiskFile(ramdisk, version);
}
-
+ /** {@inheritDoc} */
+ @Override
+ public Collection<VersionedFile> getFiles() {
+ Collection<VersionedFile> rootFiles = super.getFiles();
+ Collection<VersionedFile> deviceFiles = mDeviceBuild.getFiles();
+ List<VersionedFile> combinedFiles = new ArrayList<VersionedFile>();
+ combinedFiles.addAll(rootFiles);
+ combinedFiles.addAll(deviceFiles);
+ return combinedFiles;
+ }
/**
* {@inheritDoc}
diff --git a/tests/src/com/android/tradefed/UnitTests.java b/tests/src/com/android/tradefed/UnitTests.java
index 20026fb2d..8f064a311 100644
--- a/tests/src/com/android/tradefed/UnitTests.java
+++ b/tests/src/com/android/tradefed/UnitTests.java
@@ -18,6 +18,7 @@ package com.android.tradefed;
import com.android.tradefed.build.BuildInfoTest;
import com.android.tradefed.build.DeviceBuildDescriptorTest;
import com.android.tradefed.build.DeviceBuildInfoTest;
+import com.android.tradefed.build.DeviceFolderBuildInfoTest;
import com.android.tradefed.build.FileDownloadCacheTest;
import com.android.tradefed.build.KernelBuildInfoTest;
import com.android.tradefed.build.KernelDeviceBuildInfoTest;
@@ -227,6 +228,7 @@ import org.junit.runners.Suite.SuiteClasses;
BuildInfoTest.class,
DeviceBuildInfoTest.class,
DeviceBuildDescriptorTest.class,
+ DeviceFolderBuildInfoTest.class,
FileDownloadCacheTest.class,
KernelBuildInfoTest.class,
KernelDeviceBuildInfoTest.class,
diff --git a/tests/src/com/android/tradefed/build/DeviceFolderBuildInfoTest.java b/tests/src/com/android/tradefed/build/DeviceFolderBuildInfoTest.java
new file mode 100644
index 000000000..b21d261ad
--- /dev/null
+++ b/tests/src/com/android/tradefed/build/DeviceFolderBuildInfoTest.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.tradefed.build;
+
+import static org.junit.Assert.*;
+
+import com.android.tradefed.util.FileUtil;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.io.File;
+import java.util.Collection;
+
+/** Unit tests for {@link BuildInfo}. */
+@RunWith(JUnit4.class)
+public class DeviceFolderBuildInfoTest {
+ private DeviceFolderBuildInfo mDeviceFolderBuildInfo;
+ private File mFile;
+
+ @Before
+ public void setUp() throws Exception {
+ mDeviceFolderBuildInfo = new DeviceFolderBuildInfo("1", "target");
+ mDeviceFolderBuildInfo.setFolderBuild(new FolderBuildInfo("1", "target"));
+ mDeviceFolderBuildInfo.setDeviceBuild(new DeviceBuildInfo());
+ mFile = FileUtil.createTempFile("image", "tmp");
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ FileUtil.deleteFile(mFile);
+ }
+
+ /** Return bool collection contains VersionedFile with specified version." */
+ boolean hasFile(Collection<VersionedFile> files, String version) {
+ for (VersionedFile candidate : files) {
+ if (candidate.getVersion().equals(version)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Test {@link DeviceFolderBuildInfo#getFiles()}. Verify files added to root and nested
+ * DeviceBuildInfo are in result.
+ */
+ @Test
+ public void testGetFiles_both() {
+ mDeviceFolderBuildInfo.setFile("foo", mFile, "foo-version");
+ mDeviceFolderBuildInfo.setDeviceImageFile(mFile, "img-version");
+ Collection<VersionedFile> files = mDeviceFolderBuildInfo.getFiles();
+
+ assertEquals(2, files.size());
+ assertTrue(hasFile(files, "foo-version"));
+ assertTrue(hasFile(files, "img-version"));
+ }
+
+ /**
+ * Test {@link DeviceFolderBuildInfo#getFiles()}. Verify empty result when no files are present.
+ */
+ @Test
+ public void testGetFiles_none() {
+ Collection<VersionedFile> files = mDeviceFolderBuildInfo.getFiles();
+ assertEquals(0, files.size());
+ }
+
+ /** Test {@link DeviceFolderBuildInfo#getFiles()}. Verify device image in result. */
+ @Test
+ public void testGetFiles_deviceImages() {
+ mDeviceFolderBuildInfo.setDeviceImageFile(mFile, "img-version");
+ Collection<VersionedFile> files = mDeviceFolderBuildInfo.getFiles();
+
+ assertEquals(1, files.size());
+ assertTrue(hasFile(files, "img-version"));
+ }
+}