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

Commit bba9d9a1 authored by Peng Xu's avatar Peng Xu
Browse files

Added sensor target VTS test

Initial submission of Sensor VTS test, including the following
test cases:

 * SensorListValid
 * NormalAccelerometerStreamingOperation
 * NormalGyroscopeStreamingOperation
 * AccelerometerSamplingPeriodHotSwitchOperation
 * AccelerometerBatchingOperation

One thing to note is that runtime has to be stopped to prevent
sensor service from stealing samples (which causes test failure).

Test: m vts -j32 &&
      adb shell stop &&
      vts-tradefed run commandAndExit vts \
          --skip-all-system-status-check \
          --primary-abi-only \
          --skip-preconditions \
          --module SensorsHidlTargetTest
      vts-tradefed run commandAndExit vts \
          --skip-all-system-status-check \
          --primary-abi-only \
          --skip-preconditions \
          --module SensorsHidlTest
      adb shell start

Test: # alternative, faster way to run target test only
      m sensors_hidl_hal_test -j32  &&
      TOUT=$T/out/target/product/${TARGET_PRODUCT}
      TEST=data/nativetest/sensors_hidl_hal_test/sensors_hidl_hal_test
      adb push ${TOUT}/${TEST} /${TEST} && \
      adb shell ${TEST}

Change-Id: I3e26aa550f4cdec2cebb847f47d63ed33a527210
parent 35e2aac5
Loading
Loading
Loading
Loading
+83 −0
Original line number Diff line number Diff line
#
# Copyright (C) 2016 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)

# build VTS driver for Sensors v1.0.
include $(CLEAR_VARS)

LOCAL_MODULE := libvts_driver_hidl_sensors@1.0

LOCAL_SRC_FILES := \
  Sensors.vts \
  types.vts \

LOCAL_SHARED_LIBRARIES += \
  android.hardware.sensors@1.0 \
  libbase \
  libutils \
  libcutils \
  liblog \
  libhidlbase \
  libhidltransport \
  libhwbinder \
  libprotobuf-cpp-full \
  libvts_common \
  libvts_datatype \
  libvts_measurement \
  libvts_multidevice_proto \

LOCAL_PROTOC_OPTIMIZE_TYPE := full

LOCAL_MULTILIB := both

include $(BUILD_SHARED_LIBRARY)

# build profiler for sensors.
include $(CLEAR_VARS)

LOCAL_MODULE := libvts_profiler_hidl_sensors@1.0

LOCAL_SRC_FILES := \
  Sensors.vts \
  types.vts \

LOCAL_C_INCLUDES += \
  test/vts/drivers/libprofiling \

LOCAL_VTS_MODE := PROFILER

LOCAL_SHARED_LIBRARIES := \
   android.hardware.sensors@1.0 \
   libbase \
   libutils \
   libcutils \
   liblog \
   libhidlbase \
   libhidltransport \
   libhwbinder \
   libprotobuf-cpp-full \
   libvts_common \
   libvts_multidevice_proto \
   libvts_profiling \

LOCAL_PROTOC_OPTIMIZE_TYPE := full

include $(BUILD_SHARED_LIBRARY)

# include hidl test makefiles
include $(LOCAL_PATH)/functional/vts/testcases/hal/sensors/hidl/Android.mk
+139 −0
Original line number Diff line number Diff line
component_class: HAL_HIDL
component_type_version: 1.0
component_name: "ISensors"

package: "android.hardware.sensors"

import: "android.hardware.sensors@1.0::types"

interface: {
    api: {
        name: "getSensorsList"
        return_type_hidl: {
            type: TYPE_VECTOR
            vector_value: {
                type: TYPE_STRUCT
                predefined_type: "::android::hardware::sensors::V1_0::SensorInfo"
            }
        }
    }

    api: {
        name: "setOperationMode"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::OperationMode"
        }
    }

    api: {
        name: "activate"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "bool_t"
        }
    }

    api: {
        name: "setDelay"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int64_t"
        }
    }

    api: {
        name: "poll"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        return_type_hidl: {
            type: TYPE_VECTOR
            vector_value: {
                type: TYPE_STRUCT
                predefined_type: "::android::hardware::sensors::V1_0::Event"
            }
        }
        return_type_hidl: {
            type: TYPE_VECTOR
            vector_value: {
                type: TYPE_STRUCT
                predefined_type: "::android::hardware::sensors::V1_0::SensorInfo"
            }
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
    }

    api: {
        name: "batch"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int64_t"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int64_t"
        }
    }

    api: {
        name: "flush"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_SCALAR
            scalar_type: "int32_t"
        }
    }

    api: {
        name: "injectSensorData"
        return_type_hidl: {
            type: TYPE_ENUM
            predefined_type: "::android::hardware::sensors::V1_0::Result"
        }
        arg: {
            type: TYPE_STRUCT
            predefined_type: "::android::hardware::sensors::V1_0::Event"
        }
    }

}
+33 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2016 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: "sensors_hidl_hal_test",
    gtest: true,
    srcs: ["sensors_hidl_hal_test.cpp"],
    shared_libs: [
        "liblog",
        "libhidlbase",
        "libutils",
        "android.hardware.sensors@1.0",
    ],
    static_libs: ["libgtest"],
    cflags: [
        "-O0",
        "-g",
    ],
}
+692 −0

File added.

Preview size limit exceeded, changes collapsed.

+0 −0

Empty file added.

Loading