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

Commit 8998d095 authored by zhidou's avatar zhidou
Browse files

refactor

Move StorageFileProvider from the read api folder to the file folder.

optimize AconfigPackageImpl.

Test: atest aconfig_storage_package aconfig_storage_file.test.java
Bug: 367765164
Flag: EXEMPT refactor
Change-Id: I7a700016e1ae4297a3250a97eb54e805363501bc
parent 38b5f7ba
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
@@ -50,14 +51,6 @@ public class StorageFileProvider {
        mBootPath = bootPath;
    }

    /** @hide */
    public boolean containerFileExists(String container) {
        if (container == null) {
            return Files.exists(Paths.get(mMapPath));
        }
        return Files.exists(Paths.get(mMapPath, container + PMAP_FILE_EXT));
    }

    /** @hide */
    public List<Path> listPackageMapFiles() {
        List<Path> result = new ArrayList<>();
@@ -66,8 +59,9 @@ public class StorageFileProvider {
                    Files.newDirectoryStream(Paths.get(mMapPath), "*" + PMAP_FILE_EXT);
            for (Path entry : stream) {
                result.add(entry);
                // sb.append(entry. toString());
            }
        } catch (NoSuchFileException e) {
            return result;
        } catch (Exception e) {
            throw new AconfigStorageException(
                    String.format("Fail to list map files in path %s", mMapPath), e);
+9 −8
Original line number Diff line number Diff line
@@ -21,14 +21,15 @@
    </target_preparer>
    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
        <option name="cleanup" value="true" />
        <option name="push" value="package_v1.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/package_v1.map" />
        <option name="push" value="flag_v1.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v1.map" />
        <option name="push" value="flag_v1.val->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v1.val" />
        <option name="push" value="flag_v1.info->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v1.info" />
        <option name="push" value="package_v2.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/package_v2.map" />
        <option name="push" value="flag_v2.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v2.map" />
        <option name="push" value="flag_v2.val->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v2.val" />
        <option name="push" value="flag_v2.info->/data/local/tmp/aconfig_storage_file_test_java/testdata/flag_v2.info" />
        <option name="push" value="package_v1.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v1.package.map" />
        <option name="push" value="flag_v1.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v1.flag.map" />
        <option name="push" value="flag_v1.val->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v1.val" />
        <option name="push" value="flag_v1.info->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v1.info" />
        <option name="push" value="package_v2.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v2.package.map" />
        <option name="push" value="flag_v2.map->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v2.flag.map" />
        <option name="push" value="flag_v2.val->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v2.val" />
        <option name="push" value="flag_v2.info->/data/local/tmp/aconfig_storage_file_test_java/testdata/mock.v2.info" />
        <option name="post-push" value="chmod +r /data/local/tmp/aconfig_storage_file_test_java/testdata/" />
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="android.aconfig.storage.test" />
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ rule android.aconfig.storage.SipHasher13 android.aconfig.storage.test.SipHasher1
rule android.aconfig.storage.FileType android.aconfig.storage.test.FileType
rule android.aconfig.storage.FlagValueList android.aconfig.storage.test.FlagValueList
rule android.aconfig.storage.TableUtils android.aconfig.storage.test.TableUtils
rule android.aconfig.storage.AconfigPackageImpl android.aconfig.storage.test.AconfigPackageImpl
rule android.aconfig.storage.StorageFileProvider android.aconfig.storage.test.StorageFileProvider


rule android.aconfig.storage.FlagTable$* android.aconfig.storage.test.FlagTable$@1
+9 −22
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package android.aconfig.storage.test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

@@ -37,44 +36,32 @@ import java.util.List;
@RunWith(JUnit4.class)
public class StorageFileProviderTest {

    @Test
    public void testContainerFileExists() throws Exception {
        StorageFileProvider p =
                new StorageFileProvider(TestDataUtils.TESTDATA_PATH, TestDataUtils.TESTDATA_PATH);
        assertTrue(p.containerFileExists(null));
        assertTrue(p.containerFileExists("mockup"));
        assertFalse(p.containerFileExists("fake"));
    }

    @Test
    public void testListpackageMapFiles() throws Exception {
        StorageFileProvider p =
                new StorageFileProvider(TestDataUtils.TESTDATA_PATH, TestDataUtils.TESTDATA_PATH);
        // throw new Exception(Environment.getExternalStorageDirectory().getAbsolutePath());
        List<Path> file = p.listPackageMapFiles();
        assertEquals(1, file.size());
        assertTrue(
                file.get(0)
                        .equals(
                                Paths.get(
                                        TestDataUtils.TESTDATA_PATH,
                                        TestDataUtils.TEST_PACKAGE_MAP_PATH)));
        assertEquals(2, file.size());

        p = new StorageFileProvider("fake/path/", "fake/path/");
        file = p.listPackageMapFiles();
        assertTrue(file.isEmpty());
    }

    @Test
    public void testLoadFiles() throws Exception {
        StorageFileProvider p =
                new StorageFileProvider(TestDataUtils.TESTDATA_PATH, TestDataUtils.TESTDATA_PATH);
        PackageTable pt = p.getPackageTable("mockup");
        PackageTable pt = p.getPackageTable("mock.v1");
        assertNotNull(pt);
        pt =
                StorageFileProvider.getPackageTable(
                        Paths.get(
                                TestDataUtils.TESTDATA_PATH, TestDataUtils.TEST_PACKAGE_MAP_PATH));
                                TestDataUtils.TESTDATA_PATH, "mock.v1.package.map"));
        assertNotNull(pt);
        FlagTable f = p.getFlagTable("mockup");
        FlagTable f = p.getFlagTable("mock.v1");
        assertNotNull(f);
        FlagValueList v = p.getFlagValueList("mockup");
        FlagValueList v = p.getFlagValueList("mock.v1");
        assertNotNull(v);
    }
}
+5 −6
Original line number Diff line number Diff line
@@ -21,13 +21,12 @@ import java.io.InputStream;
import java.nio.ByteBuffer;

public final class TestDataUtils {
    private static final String TEST_PACKAGE_MAP_PATH = "package_v%d.map";
    private static final String TEST_FLAG_MAP_PATH = "flag_v%d.map";
    private static final String TEST_FLAG_VAL_PATH = "flag_v%d.val";
    private static final String TEST_FLAG_INFO_PATH = "flag_v%d.info";
    private static final String TEST_PACKAGE_MAP_PATH = "mock.v%d.package.map";
    private static final String TEST_FLAG_MAP_PATH = "mock.v%d.flag.map";
    private static final String TEST_FLAG_VAL_PATH = "mock.v%d.val";
    private static final String TEST_FLAG_INFO_PATH = "mock.v%d.info";

    private static final String TESTDATA_PATH =
            "/data/local/tmp/aconfig_storage_file_test_java/testdata/";
    public static final String TESTDATA_PATH = "/data/local/tmp/aconfig_storage_file_test_java/testdata/";

    public static ByteBuffer getTestPackageMapByteBuffer(int version) throws Exception {
        return readFile(TESTDATA_PATH + String.format(TEST_PACKAGE_MAP_PATH, version));
Loading