1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-testfwk_xdevice

 / Детали:

[Ошибка]: Разработчик обнаружил ошибку при выполнении функции охвата тестов в рамках тестового...

Предстоит сделать
Владелец
Создано  
22.04.2025

фреймворка при выполнении теста FUZZ.

Что произошло?

При запуске распределенного тестового фреймворка OpenHarmony для выполнения тестовых сценариев фаззинга для модуля SoftBusAesCrypto, я столкнулся с проблемой получения отчета о покрытии кода.

Я выполнял тестовый сценарий SoftBusAesCryptoFuzzTest (путь к исходному коду: /OpenHarmony/foundation/communication/dsoftbus/tests/adapter/fuzztest/softbusaescrypto_fuzzer) и хотел получить данные о покрытии кода.

В соответствии с руководством по покрытию кода в документации для разработчиков (https://gitee.com/openharmony/testfwk_developer_test), я добавил соответствующие флаги для поддержки покрытия кода в файле BUILD.gn для тестового сценария:

cflags = [
  "-g",
  "-O0",
  "-Wno-unused-variable",
  "-fno-omit-frame-pointer",
  "-fstack-protector-strong",
  "--coverage",   # Добавление флага для поддержки покрытия кода
]

cflags_cc = [
  "--coverage",  # Флаг для поддержки покрытия кода для C++ файлов
]

ldflags = [
  "--coverage",  # Флаг для поддержки покрытия кода для линковщика
]

Затем я скомпилировал этот тестовый сценарий, используя следующую команду:

./build.sh --product-name rk3568 --build-target SoftBusAesCryptoFuzzTest --no-prebuilt-sdk

и сборка прошла успешно.Далее я перешел в директорию с тестовым фреймворком для разработчиков, запустил тестовый фреймворк и выполнил тестовый сценарий с параметрами для покрытия кода:

run -t FUZZ -ts SoftBusAesCryptoFuzzTest -cov coverage

После выполнения были получены следующие ошибки:

Ошибка: часть не найдена в all_subsystem_config.json
dos2unix: Преобразование файла /home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/llvm-gcov.sh в Unix-формат...
Ошибка конфигурации подсистемы.
829980 829979
/home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/coverage_rc/lcovrc_cov_0
/home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/coverage_rc/lcovrc_cov_0@@@@@@@@@@@@@@@@@@@yes
Ошибка конфигурации подсистемы.
Ошибка: не удалось получить список подсистем, невозможно сгенерировать информацию о трассировке
Ошибка конфигурации подсистемы.
Ошибка: путь к информации о единичном тесте /home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/results/coverage/reports/cxx/single_test не существует
Объединение всех файлов трассировки подсистем
Ошибка: директория отчета /home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/results/coverage/reports/cxx не существует!
Создание HTML-отчета
Ошибка: файл трассировки /home/ycy/OpenHarmony/test/testfwk/developer_test/local_coverage/code_coverage/results/coverage/reports/cxx/ohos_codeCoverage.info не существует!

Основная ошибка связана с конфигурационным файлом подсистемы, что привело к невозможности сгенерировать информацию о трассировке и отчеты.### Ожидаемое поведениеОжидается, что система корректно обрабатывает запросы на сбор данных о покрытии и генерирует доступные отчеты о покрытии. Конкретные ожидания:

  • Система должна корректно распознавать и обрабатывать флаги покрытия, добавленные в файл BUILD.gn.
  • Выполнение команд тестирования с параметром -cov не должно приводить к ошибкам, связанным с конфигурацией подсистем.
  • Успешное создание отчетов о покрытии и сохранение их по следующим путям (в соответствии с документацией):

Отчеты о покрытии кода: /test/testfwk/developer_test/localCoverage/codeCoverage/results/coverage/reports/cxx/html
Отчеты о покрытии интерфейсов: /test/testfwk/developer_test/localCoverage/interfaceCoverage/results/coverage/interface_kits/html

Как воспроизвести эту ошибку1. Клонируйте исходный код OpenHarmony и выполните скрипт установки инструментария в корневой директории:

./build/prebuilts_download.sh 

Убедитесь, что на вашем Linux-устройстве установлен HDC и что устройство RK3568 доступно для подключения.
Установите необходимые зависимости, как описано в документации для разработчиков:

Установка lcov: sudo apt install lcov
Установка dos2unix: sudo apt install dos2unix
Установка lxml: pip install lxml
Установка selectolax: pip install selectolax
Установка CppHeaderParser: pip install CppHeaderParser
  1. В файле BUILD.gn для тестового примера (SoftBusAesCryptoFuzzTest) (путь: OpenHarmony/foundation/communication/dsoftbus/tests/adapter/fuzztest/softbusaescrypto_fuzzer/BUILD.gn) добавьте флаги поддержки покрытия:
cflags = [
  "-g",
  "-O0",
  "-Wno-unused-variable",
  "-fno-omit-frame-pointer",
  "-fstack-protector-strong",
  "--coverage",  # Добавление флага поддержки покрытия
]
```cflags_cc = [
  "--coverage",  # Флаг поддержки покрытия для C++ файлов
]

ldflags = [
  "--coverage",  # Флаг поддержки покрытия для линковщика
]
  1. Скомпилируйте тестовый пример SoftBusAesCryptoFuzzTest: выполните команду в корневой директории исходного кода:
./build.sh --product-name rk3568 --build-target SoftBusAesCryptoFuzzTest --no-prebuilt-sdk
  1. После завершения компиляции перейдите в директорию тестового фреймворка разработчика и выполните команду ./start.sh для запуска фреймворка. Выберите устройство RK3568 и выполните команду запуска теста:
run -t FUZZ -ts SoftBusAesCryptoFuzzTest -cov coverage

Подождите некоторое время, пока тест не завершится. В случае ошибки, система выдаст сообщение об ошибке.

Дополнительная информация

Информация о версии или ветке

  • master
  • 5.0-Beta1
  • Release 4.1
  • Release 4.0
  • Release 3.2

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
bug
label.
GitLife Service Account добавлено
 
waiting_for_assign
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/openharmony-testfwk_xdevice.git
git@api.gitlife.ru:oschina-mirror/openharmony-testfwk_xdevice.git
oschina-mirror
openharmony-testfwk_xdevice
openharmony-testfwk_xdevice