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

Commit bfa521cb authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix the vts error" into qt-dev am: 07b0f138 am: 652c97a2"

parents d9723146 aea059a6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ cc_test {
    ],
    shared_libs: [
        "liblog",
        "libbase",
    ],
    cflags: [
        "-Wall",
+39 −4
Original line number Diff line number Diff line
@@ -16,13 +16,48 @@

#include "utility/ValidateXml.h"

TEST(CheckConfig, mediaDefaultPermissions) {
#include <dirent.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>

#include <string>

#include <android-base/strings.h>

static std::vector<std::string> get_files_in_dirs(const char* dir_path) {
    std::vector<std::string> files;
    std::unique_ptr<DIR, decltype(&closedir)> d(opendir(dir_path), closedir);

    if (d == nullptr) {
        return files;
    }

    struct dirent* de;
    while ((de = readdir(d.get()))) {
        if (de->d_type != DT_REG) {
            continue;
        }
        if (android::base::EndsWith(de->d_name, ".xml")) {
            files.push_back(de->d_name);
        }
    }
    return files;
}

TEST(CheckConfig, defaultPermissions) {
    RecordProperty("description",
                   "Verify that the default-permissions file "
                   "is valid according to the schema");

    const char* location = "/vendor/etc/default-permissions";
    std::vector<const char*> locations = {"/vendor/etc/default-permissions",
                                          "/odm/etc/default-permissions"};

    EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS("default-permissions.xml", {location},
    for (const char* dir_path : locations) {
        std::vector<std::string> files = get_files_in_dirs(dir_path);
        for (auto& file_name : files) {
            EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(file_name.c_str(), {dir_path},
                                                    "/data/local/tmp/default-permissions.xsd");
        }
    }
}