Выполнение тестов

Тесты sysFund на основе данных и файл конфигурации

Тесты SysFund, управляемые данными, можно найти в <распаковке корневого каталога> EWDK\Program Files\Windows Kits\10\Testing\Test\Additional Test\x64\DevFund\DataDriven. Набор тестов на основе данных состоит из следующих файлов:

  • Пять тестовых библиотек DLL, использующих XML-файл конфигурации WDTFTest.xml:
    • Sysfund_Device_IO_DataDriven.dll
    • Sysfund_PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven.dll
    • Sysfund_PNP_RemoveAndRestartDevice_DataDriven.dll
    • Sysfund_RebootRestart_With_IO_During_DataDriven.dll
    • Sysfund_Sleep_With_IO_BeforeAndAfter_DataDriven.dll
  • Две служебные библиотеки DLL, использующие XML-файл конфигурации WDTFTest.xml:
    • Utility_DeviceStatusCheck_DataDriven.dll
    • Utility_EnableDisableDriverVerifier_DataDriven.dll
  • XML-файл конфигурации:
    • WDTFTest.xml

Система — тест ввода-вывода устройства

  • Двоичный файл: Sysfund_Device_IO_DataDriven.dll
  • Этот тест отправляет ввод-вывод на все устройства в системе

Система — PnP (отключение и включение) с использованием операций ввода-вывода до и после (надежность)

Система — Тест удаления устройства PNP (Надежность)

Система — перезагрузка перезагрузки с помощью операций ввода-вывода во время (надежность)

Система — спящий режим с операцией ввода-вывода до и после (надежность SysFund)

Проверка состояния устройства

  • Бинарный: Utility_DeviceStatusCheck_DataDriven.dll
  • Эта библиотека DLL проверяет, что коды проблемы целевых устройств равны 0 (работают правильно). Обычно он используется перед запуском тестов SysFund для проверки правильности работы целевых устройств.

Включение и отключение средства проверки драйверов

  • Двоичный: Utility_EnableDisableDriverVerifier_DataDriven.dll
  • Эта программа включает или отключает средство проверки драйверов для драйверов, связанных с целевыми устройствами.

Файл конфигурации тестов на основе данных

  • Файл: WDTFTest.xml
  • Этот файл содержит все сведения о конфигурации для управляемых данными тестов SysFund и связанных служебных программ.

Настройка тестов

Файл конфигурации на основе данных (WDTFTest.xml) содержит несколько элементов, определяющих параметры, передаваемые тестам и служебным программам. Все тесты, управляемые данными, и служебные программы используют один и тот же файл конфигурации (WDTFTest.xml). По умолчанию файл конфигурации настраивает тесты и служебные программы для целей всех устройств в системе, но это можно легко настроить в соответствии с требованиями тестового прохождения.

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

Тесты и служебные программы будут использовать только необходимые элементы и будут игнорировать все остальные элементы.

WDTFTest.xml описание параметров и их использование

Настройка запроса SDEL

Язык SDEL используется для создания запроса, возвращающего устройства, предназначенные для тестов и служебных программ. Объедините следующие параметры, относящиеся к SDEL, с помощью операторов AND, чтобы создать полный запрос.

SDEL: значение IsDevice указывает полный набор устройств в системе. Как правило, этот параметр не редактируется, если только вы не хотите тестировать определенный драйвер или устройство. Следующие параметры, связанные с SDEL, будут создавать подмножество устройств из этого супермножества путем указания драйверов или устройств, которые должны быть исключены из тестирования, поэтому этот параметр может оставаться неизменным.

    <Parameter Name="SDEL">IsDevice</Parameter>

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

    <Parameter Name="SdelExcludeVMDevnode">(DisplayName!='Microsoft Hyper-V Virtual Machine Bus')</Parameter>

SdelExcludeDrivers: рекомендуется использовать SDEL для исключения драйверов и/или устройств. Например, это можно использовать для исключения драйверов с известными ошибками или сузить область тестирования. Выполнение команды (DriverBinaryNames!='') по умолчанию применяется ко всем драйверам всех устройств в системе (за исключением узла устройства Microsoft Hyper-V виртуальной машины, как указано выше).

    <Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!='')</Parameter>

Общие параметры конфигурации теста

TestCycles: указывает, сколько итераций должно выполняться тест.

    <Parameter Name="TestCycles">1</Parameter>

IoPeriod Указывает, сколько минут должен выполняться ввода-вывода.

    <Parameter Name="IOPeriod">1</Parameter>

ResumeDelay: указывает количество секунд ожидания перед отправкой ввода-вывода после возобновления спящего режима.

    <Parameter Name="ResumeDelay">10</Parameter>

Wpa2PskAesSsid: указывает имя тестовой точки доступа Wi-Fi.

    <Parameter Name="Wpa2PskAesSsid">WiFiRouterName</Parameter>

Wpa2PskPassword: указывает пароль тестовой точки доступа WiFi.

    <Parameter Name="Wpa2PskPassword">WiFiRouterPassword</Parameter>

Параметры, применяемые только к utility_enabledisabledriververifier_datadriven.dll

DriverVerifierLevel: значение по умолчанию 0x209BB равно "стандартным флагам" для средства проверки драйверов.

    <Parameter Name="DriverVerifierLevel">0x209BB</Parameter>

AddOnly: указывает, что полученные результаты запроса SDEL должны добавлять драйверы в средство проверки драйверов без удаления. Это полезно, если средство проверки драйверов уже включено в наборе драйверов, которые должны быть добавлены, а не заменены.

    <Parameter Name="AddOnly">false</Parameter>

NoReboot: указывает, что компьютер не должен автоматически перезагружаться, чтобы включить параметры средства проверки драйверов. Если для параметра NoReboot задано значение true, параметры расширенного средства проверки драйверов не вступают в силу, пока компьютер не перезагрузится вручную.

    <Parameter Name="NoReboot">false</Parameter>

Включение средства проверки драйверов

Чтобы включить средство проверки драйверов, выполните следующую команду:

    te.exe utility_enabledisabledriververifier_datadriven.dll /name:Utility_DriverVerifier#0::EnableDriverVerifier /rebootstatefile=state.xml

В некоторых случаях компьютер может не перезагружаться. Это известное техническое ограничение платформы тестирования. Если компьютер не начинает перезагрузку в течение 30 секунд после изменения параметров средства проверки драйверов с помощью этой служебной программы, необходимо вручную перезагрузить компьютер, чтобы обновленные параметры проверки драйверов вступили в силу.

После перезагрузки откройте командную строку и запустите средства проверки /querysettings , чтобы убедиться, что средство проверки драйверов было включено.

Проверка работы устройств

Тесты SysFund, управляемые данными, ожидают, что все устройства, предназначенные для тестов, имеют код проблемы 0 (правильно работает). Чтобы убедиться, что все устройства работают правильно, используйте служебную программу DeviceStatusCheck:

    te.exe Utility_DeviceStatusCheck_DataDriven.dll

Эта программа использует запросы SDEL, определенные в WDTFTest.xml, чтобы найти набор устройств, тестируемых и убедиться, что все они имеют код проблемы 0. Результат "Передан" означает, что набор устройств, запрашиваемых, работает правильно. Просмотрите TestTextLog.log , чтобы изучить ошибки. Описание кодов проблем диспетчера устройств см. в разделе "Сообщения об ошибках диспетчера устройств".

Запуск теста

Чтобы запустить любой из тестов sysFund на основе данных, используйте следующие команды:

    te.exe Sysfund_PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven.dll

    te.exe Sysfund_Sleep_With_IO_BeforeAndAfter_DataDriven.dll

Уточнение файла конфигурации

Перед внесением изменений необходимо создать резервную копию исходной копии WDTFTest.xml.

Файл конфигурации теста (WDTFTest.xml) можно уточнить на основе результатов тестов sysFund на основе данных. Например, если тест SysFund, основанный на данных, изначально запускается для всех устройств в системе, и одно конкретное устройство или драйвер не проходит тест, файл конфигурации теста можно обновить, чтобы исключить это устройство из тестирования на время исследования ошибки. Это позволяет параллельно выполнять тестирование во время исследования ошибок.

Чтобы отфильтровать определенное устройство, измените элемент SdelExcludeDrivers в WDTFTest.xml. Следующий код фильтрует mydriver.sys, например:

<Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!=’mydriver.sys’)</Parameter>

Аналогичным образом, следующий код фильтрует устройство на основе пути экземпляра устройства:

<Parameter Name="SdelExcludeDrivers">(DeviceId!=’my\device\id’)</Parameter>

Вы можете создать сложные запросы SDEL для фильтрации нескольких устройств:

<Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!=’mydriver1.sys’ AND DriverBinaryNames!=’mydriver2.sys’)</Parameter>

После исправления ошибок в mydriver1.sys и mydriver2.sysможно сбросить элемент SdelExcludeDrivers в WDTFTest.xml значение по умолчанию, чтобы включить эти драйверы и связанные устройства в качестве целевых объектов:

    <Parameter Name="SdelExcludeDrivers">(DriverBinaryNames!='')</Parameter>

Устранение неполадок

Неправильный запрос SDEL в файле конфигурации

Следующее сообщение об ошибке указывает на плохо сформированный запрос SDEL, содержащийся в файле конфигурации WDTFTest.xml:

    Error: Verify: SUCCEEDED(m_pDeviceDepot->Query(CComBSTR(DQ), &m_pTestTargets)) - Value (0x80070057) [File: onecore\base\tools\wdtf\tests\devfund\datadriven\sysfund_pnp_disableenable_with_io_beforeandafter_datadriven\test.cpp, Function: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test, Line: 231]
    EndGroup: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test#0 [Failed]

HrESULT "0x80070057" означает "E_INVALIDARG: один или несколько аргументов недопустимы". Внимательно проверьте файл конфигурации WDTFTest.xml в документации по SDEL и найдите неправильный запрос, который может вызвать эту ошибку.

Проверка заблокирована, так как она может перезагрузить компьютер

Некоторые тесты SysFund могут перезагрузить компьютер во время тестирования. Чтобы запустить тест, который может перезагрузить компьютер, необходимо использовать параметр /rebootstatefile:

    te.exe <testname> /rebootstatefile=state.xml

Если параметр /rebootstatefile не передается тесту, отобразится следующее сообщение, и тест будет заблокирован:

    TestBlocked: TAEF: This test cannot be run as it might reboot the machine.
    EndGroup: Sysfund_RebootRestart_With_IO_During::Sysfund_RebootRestart_With_IO_During_DataDriven_Test#0 [Blocked]

Проверка заблокирована, так как запрос SDEL содержит символы '&'

При определении запроса SDEL, который предназначен для устройства на основе значения пути экземпляра устройства, символы '&' в пути должны быть заменены на "&amp;". Следующее сообщение свидетельствует о файле конфигурации WDTFTest.xml, который содержит символы "&" в пути экземпляра устройства:

    TestBlocked: TAEF: [HRESULT: 0xC00CEE22] Error while getting value for 'SDEL' in table 'DataDrivenSysfundTable' in DataSource 'WDTFTest.xml' on line 24.
    EndGroup: PNP_DisableEnable_With_IO_BeforeAndAfter::PNP_DisableEnable_With_IO_BeforeAndAfter_DataDriven_Test#error [Blocked]

Это XML-файл из файла конфигурации WDTFTest.xml, который создал сообщение об ошибке выше:

    <Parameter Name="SDEL">IsDevice AND deviceid='PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0003&REV_00\4&91A2562&0&00E8'</Parameter>

Это хорошо сформированное значение для deviceid, которое исправляет ошибку:

    <Parameter Name="SDEL">IsDevice AND deviceid='PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0003&REV_00\4&91A2562&0&00E8'</Parameter>

Другие проблемы

Дополнительные сведения об устранении неполадок, не перечисленных здесь, см. в дополнительной документации по Device.DevFund.