DF — тест нечеткого открытия и закрытия (надежность)
Этот тест выполняет тысячи последовательностей create-open-close и использует несколько разных способов открытия и закрытия экземпляров указанного устройства или устройств: базовые операции открытия, прямые операции открытия устройства и нагрузочный тест open и close.
Основные открытые операции
Во время базовых открытых операций тест fuzz неоднократно открывает (создает) экземпляры указанных устройств или устройств, экспортированных указанным драйвером с помощью различных методов и параметров.
Тест нечетких параметров всегда выполняет основные открытые операции. Их не нужно выбирать, и их нельзя исключить из тестового сеанса.
Тест fuzz выполняет все открытые операции в пользовательском режиме, вызывая системные службы (подпрограммы ZwXxx), соответствующие устройству. Если открытый вызов возвращает дескриптор устройству, тест Fuzz использует дескриптор для выполнения других тестов устройства, выбранных для тестового сеанса.
Существует пять типов базовых открытых операций:
Стандартное открытие: тест Fuzz открывает устройство асинхронно и задает только собственное имя устройства.
Открыть с добавлением обратной косой черты: тест fuzz выполняет открытый вызов имени устройства, за которым следует обратная косая черта (), например \device\cdrom\, как если бы вызов выполнялся для открытия корневого каталога на устройстве.
Эта операция определяет, как драйвер или файловая система управляет открытыми запросами в своем пространстве имен. В частности, если устройство не поддерживает открытые запросы в своем пространстве имен, драйвер должен предотвратить несанкционированный доступ либо путем сбоя запросов, либо путем задания характеристики устройства FILE_DEVICE_SECURE_OPEN при вызове IoCreateDevice или IoCreateDeviceSecure для создания объекта устройства.
Открыть как именованный канал: тест fuzz открывает устройство и устанавливает именованный канал к устройству. Параметр доступа (ShareAccess) изначально задан для чтения и записи, но корректируется в случае сбоя запроса. Если устройство не поддерживает именованные каналы, запрос должен завершиться ошибкой.
Открыть как почтовый слоник: тест Fuzz открывает устройство в виде почтового слоя. Если устройство не поддерживает этот тип подключения, запрос должен завершиться ошибкой.
Открыть как подключение в виде дерева. Тест "Нечеткое" открывает устройство в виде дерева подключения для использования при удаленном доступе к сети. Параметр доступа (ShareAccess) изначально задан для чтения и записи, но корректируется в случае сбоя запроса. Если устройство не поддерживает этот тип подключения, запрос должен завершиться ошибкой.
Параметры, используемые в открытых вызовах, зависят от характеристик устройства и делают вызовы успешными. Например, если обычная операция открытия завершается сбоем из-за того, что вызов не соответствует требованиям безопасности устройства, тест Fuzz повторяет операцию открытия с запросом на меньший доступ. Например, если операция открытия, запрашивающая доступ на запись, возвращает ошибку нарушения безопасности, открытие повторяется с запросом на доступ на чтение.
Операции открытия прямого устройства
Во время операций прямого открытия устройства тест fuzz открывает устройство напрямую, как устройство, а не как файл в файловой системе. Операции прямого открытия устройств всегда синхронны. Если вызов выполнен успешно, тест fuzz использует дескриптор, предоставленный для выполнения других выбранных тестов.
Открытие и закрытие теста
Во время теста Open и Close тест нечетких параметров создает несколько потоков, каждый из которых выполняет тысячи последовательностей создания, открытия и закрытия. Это проверяет способность водителя обрабатывать чрезвычайный объем простых и ожидаемых вызовов.
В тестах Open и Close используются те же параметры, что и в тестах "Обычная операция открытия" и "Открыть с добавленной обратной косой чертой", которые выполняются непосредственно перед этими тестами.
Двоичный файл теста: Devfund_FuzzTest.dll Метод теста: DoOpenCloseTest
Сведения о тесте
Характеристики |
|
Платформы |
|
Поддерживаемые выпуски |
|
Ожидаемое время выполнения (в минутах) | 15 |
Категория | Сценарий |
Время ожидания (в минутах) | 180 |
Требуется перезагрузка | false |
Требуется специальная конфигурация | Да |
Тип | automatic |
Дополнительная документация
Тесты в этой области функций могут содержать дополнительную документацию, включая предварительные требования, сведения о настройке и устранении неполадок, которые можно найти в следующих разделах:
Запуск теста
Перед запуском теста выполните настройку теста, как описано в разделе Требования к тестированию : Предварительные требования к тестированию надежности Device.Fundamentals.
Устранение неполадок
Общие сведения об устранении неполадок при тестировании HLK см. в статье Устранение неполадок тестов HLK в Windows.
Сведения об устранении неполадок, относящихся к тестам с основами устройств в HLK и WDK, см . в дополнительной документации по Device.DevFund.
Дополнительные сведения
Параметры
Имя параметра | Описание параметра |
---|---|
DQ | Запрос SDEL WDTF, используемый для идентификации целевых устройств. https://go.microsoft.com/fwlink/?LinkId=232678 |
Wpa2PskAesSsid | Требуется ТОЛЬКО в том случае, если DUT или одно из его дочерних устройств является адаптером Wi-Fi. Укажите SSID сети WIFi WPA2 AES, которую тест может использовать для тестирования адаптера Wi-Fi. Значение по умолчанию — kitstestssid. |
Wpa2PskPassword | Требуется ТОЛЬКО в том случае, если DUT или одно из его дочерних устройств является адаптером Wi-Fi. Укажите пароль сети Wi-Fi WPA2 AES, указанной с помощью параметра Wpa2PskAesSsid. Значение по умолчанию — password. |
ChangeBufferProtectionFlags | Верно или неверно. Изменяет флаги защиты памяти буферов, передаваемых на тестируемое устройство. Флаги защиты памяти чередуются между отсутствием доступа, только для чтения и только для чтения с помощью page guard. |
Impersonate | Верно или неверно. Запускает тест от имени пользователя без прав администратора. |
FillZeroPageWithNull | Верно или неверно. Сопоставляет нулевую страницу и заполняет ее значениями NULL. Этот тест определяет драйверы, которые не проверяют ссылку указателя перед разыменовкой указателя. |
DoPoolCheck | Верно или неверно. Отслеживает использование драйвером выгружаемых и несгружаемых пулов системной памяти с помощью тегов пулов и списков просмотра. Этот параметр также отслеживает изменения в количестве обрабатываемых исключений, которые могут указывать на ошибки в обработке исключений. |
DoSync | Верно или неверно. Также открывает дескриптор устройства в режиме синхронизации (FILE_SYNCHRONOUS_IO_ALERT). Случайные операции чтения и записи пропускаются. |
TestCycles | Количество циклов тестирования. |
DriverVerifierAdditionalDrivers | Дополнительные драйверы, для которых должен быть включен средство проверки драйверов |
DriverVerifierExcludedFlags | Заполнитель для флагов средства проверки драйверов, которые могут быть исключены вручную для тестового запуска |
WDKDeviceID | Идентификатор тестируемого устройства |
QueryHardwareID | Идентификатор оборудования тестируемого устройства |
WDTFREMOTESYSTEM | Требуется ТОЛЬКО в том случае, если DUT или одно из его дочерних устройств является проводной сетевой картой без адреса шлюза IPv6. Если это необходимо, укажите IPv6-адрес, по которому тестовый сетевой адаптер может проверить связь для тестирования сетевых операций ввода-вывода. Например: fe80::78b6:810:9c12:46cd |
DriverVerifierCustomizeConfiguration | Указывает, что для этого теста может потребоваться автоматическое обновление параметров средства проверки драйверов. |