Esempio n. 1
0
    def CreateTestCases(self):
        """See base class."""
        hal_package = self.hal_hidl_package_name
        hal_name, hal_version = vts_spec_utils.HalPackageToNameAndVersion(
            hal_package)
        self._PushVtsResources(hal_name, hal_version)
        vts_spec_names = self._vts_spec_parser.VtsSpecNames(
            hal_name, hal_version)
        registered_interfaces = self._RegisteredInterfaces(
            self.hal_hidl_package_name)

        test_cases = []
        for iface in registered_interfaces:
            additional_params = {
                'vts_spec_dir': self._VTS_SPEC_DIR_TARGET,
                'vts_exec_size': 128,
                'vts_target_iface': iface,
            }
            libfuzzer_params = {
                'max_len': 65536,
                'max_total_time': 1,
            }
            bin_host_path = os.path.join(self.data_file_path, 'DATA', 'bin',
                                         'vts_proto_fuzzer')
            test_case = libfuzzer_test_case.LibFuzzerTestCase(
                bin_host_path, libfuzzer_params, additional_params)
            test_case.test_name = iface
            test_cases.append(test_case)

        return test_cases
Esempio n. 2
0
    def CreateTestCases(self):
        """See base class."""
        hal_package = self.hal_hidl_package_name
        hal_name, hal_version = vts_spec_utils.HalPackageToNameAndVersion(
            hal_package)

        imported_hals = self._vts_spec_parser.IndirectImportedHals(
            hal_name, hal_version)
        self._PushVtsResources(hal_name, hal_version)
        for name, version in imported_hals:
            self._PushVtsResources(name, version)

        registered_interfaces = self._RegisteredInterfaces(hal_package)
        spec_dirs = ':'.join(self._VtsSpecDirsTarget(hal_name, hal_version))

        test_cases = []
        for iface in registered_interfaces:
            additional_params = {
                'vts_spec_dir': spec_dirs,
                'vts_exec_size': 16,
                'vts_target_iface': iface,
            }
            libfuzzer_params = config.FUZZER_DEFAULT_PARAMS.copy()
            libfuzzer_params.update({
                'max_len': 16777216,
                'max_total_time': 600,
            })
            bin_host_path = os.path.join(self.data_file_path, 'DATA', 'bin',
                                         'vts_proto_fuzzer')
            test_case = libfuzzer_test_case.LibFuzzerTestCase(
                bin_host_path, libfuzzer_params, additional_params)
            test_case.test_name = iface
            test_cases.append(test_case)

        return test_cases
    def _CreateTestCasesFromSpec(self, hal_package, vts_spec_name,
                                 vts_spec_proto):
        """Creates LibFuzzerTestCases.

        Args:
            hal_package: string, name of hal package,
                e.g. [email protected]
            vts_spec_name: string, e.g. 'Nfc.vts'.

        Returns:
            LibFuzzerTestCase list, one per function of interface corresponding
                to vts_spec_name.
        """
        test_cases = []
        for api in vts_spec_proto.interface.api:
            additional_params = {'vts_target_func': api.name}
            libfuzzer_params = config.FUZZER_DEFAULT_PARAMS
            bin_host_path = self._FuzzerBinHostPath(hal_package, vts_spec_name)
            test_case = libfuzzer_test_case.LibFuzzerTestCase(
                bin_host_path, libfuzzer_params, additional_params)
            test_case.test_name = api.name
            test_cases.append(test_case)
        return test_cases