Add Vts test for xsd_config
The vts_permission_validate_test and
vts_defaultPermissions_validate_test are added for checking xsd schema
validation.
Bug: 127435354
Test: vts-tradefed run vts -m VtsValidatePermission
Test: vts-tradefed run vts -m VtsValidateDefaultPermissions
Merged-In: Ib73dcbe4f9c20e0a957be4325d5cfc2b27c64b67
Change-Id: Ib73dcbe4f9c20e0a957be4325d5cfc2b27c64b67
(cherry picked from commit dc15dc8cc0)
This commit is contained in:
34
core/xsd/vts/Android.bp
Normal file
34
core/xsd/vts/Android.bp
Normal file
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// Copyright (C) 2019 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.
|
||||
//
|
||||
|
||||
cc_test {
|
||||
name: "vts_permission_validate_test",
|
||||
srcs: [
|
||||
"ValidatePermission.cpp"
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.audio.common.test.utility",
|
||||
"libxml2",
|
||||
],
|
||||
shared_libs: [
|
||||
"liblog",
|
||||
"libbase",
|
||||
],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
],
|
||||
}
|
||||
22
core/xsd/vts/Android.mk
Normal file
22
core/xsd/vts/Android.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
#
|
||||
# Copyright (C) 2019 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.
|
||||
#
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := VtsValidatePermission
|
||||
include test/vts/tools/build/Android.host_config.mk
|
||||
30
core/xsd/vts/AndroidTest.xml
Normal file
30
core/xsd/vts/AndroidTest.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2019 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.
|
||||
-->
|
||||
<configuration description="Config for VTS VtsValidatePermission.">
|
||||
<option name="config-descriptor:metadata" key="plan" value="vts-treble" />
|
||||
<target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
|
||||
<option name="abort-on-push-failure" value="false"/>
|
||||
<option name="push-group" value="HostDrivenTest.push"/>
|
||||
<option name="push" value="DATA/etc/permission.xsd->/data/local/tmp/permission.xsd"/>
|
||||
</target_preparer>
|
||||
<test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
|
||||
<option name="test-module-name" value="VtsValidatePermission"/>
|
||||
<option name="binary-test-source" value="_32bit::DATA/nativetest/vts_permission_validate_test/vts_permission_validate_test" />
|
||||
<option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_permission_validate_test/vts_permission_validate_test" />
|
||||
<option name="binary-test-type" value="gtest"/>
|
||||
<option name="test-timeout" value="30s"/>
|
||||
</test>
|
||||
</configuration>
|
||||
62
core/xsd/vts/ValidatePermission.cpp
Normal file
62
core/xsd/vts/ValidatePermission.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.
|
||||
*/
|
||||
|
||||
#include <dirent.h>
|
||||
#include <regex>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <string>
|
||||
|
||||
#include "android-base/logging.h"
|
||||
#include "utility/ValidateXml.h"
|
||||
|
||||
static void get_files_in_dirs(const char* dir_path, std::vector<std::string>& files) {
|
||||
DIR* d;
|
||||
struct dirent* de;
|
||||
|
||||
d = opendir(dir_path);
|
||||
if (d == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
while ((de = readdir(d))) {
|
||||
if (de->d_type != DT_REG) {
|
||||
continue;
|
||||
}
|
||||
if (std::regex_match(de->d_name, std::regex("(.*)(.xml)"))) {
|
||||
files.push_back(de->d_name);
|
||||
}
|
||||
}
|
||||
closedir(d);
|
||||
}
|
||||
|
||||
TEST(CheckConfig, permission) {
|
||||
RecordProperty("description",
|
||||
"Verify that the permission file "
|
||||
"is valid according to the schema");
|
||||
|
||||
const char* location = "/vendor/etc/permissions";
|
||||
|
||||
std::vector<std::string> files;
|
||||
get_files_in_dirs(location, files);
|
||||
|
||||
for (std::string file_name : files) {
|
||||
EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(file_name.c_str(), {location},
|
||||
"/data/local/tmp/permission.xsd");
|
||||
}
|
||||
}
|
||||
33
services/core/xsd/vts/Android.bp
Normal file
33
services/core/xsd/vts/Android.bp
Normal file
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// Copyright (C) 2019 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.
|
||||
//
|
||||
|
||||
cc_test {
|
||||
name: "vts_defaultPermissions_validate_test",
|
||||
srcs: [
|
||||
"ValidateDefaultPermissions.cpp"
|
||||
],
|
||||
static_libs: [
|
||||
"android.hardware.audio.common.test.utility",
|
||||
"libxml2",
|
||||
],
|
||||
shared_libs: [
|
||||
"liblog",
|
||||
],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
],
|
||||
}
|
||||
22
services/core/xsd/vts/Android.mk
Normal file
22
services/core/xsd/vts/Android.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
#
|
||||
# Copyright (C) 2019 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.
|
||||
#
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := VtsValidateDefaultPermissions
|
||||
include test/vts/tools/build/Android.host_config.mk
|
||||
30
services/core/xsd/vts/AndroidTest.xml
Normal file
30
services/core/xsd/vts/AndroidTest.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2019 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.
|
||||
-->
|
||||
<configuration description="Config for VTS VtsValidateDefaultPermissions.">
|
||||
<option name="config-descriptor:metadata" key="plan" value="vts-treble" />
|
||||
<target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
|
||||
<option name="abort-on-push-failure" value="false"/>
|
||||
<option name="push-group" value="HostDrivenTest.push"/>
|
||||
<option name="push" value="DATA/etc/default-permissions.xsd->/data/local/tmp/default-permissions.xsd"/>
|
||||
</target_preparer>
|
||||
<test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
|
||||
<option name="test-module-name" value="VtsValidateDefaultPermissions"/>
|
||||
<option name="binary-test-source" value="_32bit::DATA/nativetest/vts_defaultPermissions_validate_test/vts_defaultPermissions_validate_test" />
|
||||
<option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_defaultPermissions_validate_test/vts_defaultPermissions_validate_test" />
|
||||
<option name="binary-test-type" value="gtest"/>
|
||||
<option name="test-timeout" value="30s"/>
|
||||
</test>
|
||||
</configuration>
|
||||
28
services/core/xsd/vts/ValidateDefaultPermissions.cpp
Normal file
28
services/core/xsd/vts/ValidateDefaultPermissions.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.
|
||||
*/
|
||||
|
||||
#include "utility/ValidateXml.h"
|
||||
|
||||
TEST(CheckConfig, mediaDefaultPermissions) {
|
||||
RecordProperty("description",
|
||||
"Verify that the default-permissions file "
|
||||
"is valid according to the schema");
|
||||
|
||||
const char* location = "/vendor/etc/default-permissions";
|
||||
|
||||
EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS("default-permissions.xml", {location},
|
||||
"/data/local/tmp/default-permissions.xsd");
|
||||
}
|
||||
Reference in New Issue
Block a user