Проверка Аудиоустройства Используя auval Инструмент
auval инструмент командной строки позволяет Вам протестировать соответствие аудиоустройства к поведению, ожидаемому приложениями то использование Audio Unit Services.
Использование
Можно работать auval инструмент из командной строки как показано в перечислении 1.
Перечисление 1 , Проверяющее аудиоустройство
[~] % auval -v TYPE SUBT MNFR |
В перечислении 1 TYPE, SUBT и MNFR представляют четыре кодов символов, однозначно определяющие аудиоустройство.
TYPE - Тип компонента, такой как
aufxSUBT - Подтип компонента, такой как
hpasMNFR - Код производителя, уникальный для компании. Например, код производителя для аудиоустройств Apple
appl
Для получения дополнительной информации об идентификации аудиоустройства см. Руководство по программированию Аудиоустройства.
Перечисление 2 показывает команду для получения списка всех аудиоустройств в системе, соответствующих данный тип компонента.
Перечисление 2 , Перечисляющее все аудиоустройства данного типа
[~] % auval -s TYPE |
Для получения списка всех установленных аудиоустройств введите команду, показанную в перечисление 3.
Перечисление 3 , Перечисляющее все установленные аудиоустройства
[~] % auval -a |
auval инструмент имеет встроенную справку в наличии. Вы получаете доступ к нему как показано в перечислении 4.
Перечисление 4 Получая auval справку
[~] % auval -h |
При выполнении, auval инструмент может указать один из двух возможных видов отказа.
ERROR - Указывает условие, которое должно быть фиксировано
WARNING - Указывает условие, которое должно быть фиксировано
Процесс проверки
Проверка аудиоустройства продолжается в многократных фазах с каждой фазой, данной a * *PASS или * *FAIL класс. Удовлетворительная отметка для фазы не указывает ошибок. После выполнения auval инструмент можно искать следующие строки в выводе:
ПРОВЕРКА АУДИОУСТРОЙСТВА
Тесты, соответствует ли тип компонента один из указанных типов аудиоустройства Apple.
Тесты, имеет ли код производителя компонента по крайней мере одну прописную букву, как требуется.
ТЕСТИРОВАНИЕ ОТКРЫТЫХ ВРЕМЕН
Тесты и холодное и теплое время для открытия аудиоустройства. Время открытия должно быть сведено к минимуму, потому что оно влияет на время запуска и, поэтому, удобство пользования хост-приложений.
ПРОВЕРКА ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ОПРЕДЕЛЯЕТ ОБЪЕМ ФОРМАТОВ
Проверяет экспортируемые форматы аудиоданных шин ввода и вывода. Формат по умолчанию для аудиоустройства должен иметь частоту дискретизации 44100 Гц и конфигурацию канала, которую фактически поддерживает аудиоустройство.
ПРОВЕРКА ТРЕБУЕМЫХ СВОЙСТВ
Проверяет, что аудиоустройство реализует все требуемые свойства, некоторые из которых могут варьироваться согласно типу аудиоустройства.
ПРОВЕРКА РЕКОМЕНДУЕМЫХ СВОЙСТВ
Предупреждает, если аудиоустройство не реализует свойство, рекомендующееся для того типа аудиоустройства.
ПРОВЕРКА ДОПОЛНИТЕЛЬНЫХ СВОЙСТВ
Проверяет дополнительные, определенные Apple свойства аудиоустройства, согласно его типу. Отчеты только относительно свойств, реализованных и проверяющих, что они реализованы правильно.
ПРОВЕРКА СПЕЦИАЛЬНЫХ СВОЙСТВ
Проверяет информацию о Классе (персистентность) свойство, проверяя, что аудиоустройство указывает надлежащий формат данных для персистентности.
Если аудиоустройство указывает, что имеет представление, проверяет, что представление может быть найдено и открыто.
Проверяет, что фабрику предварительные установки, если реализовано, обрабатывают и сообщают правильно.
ОПУБЛИКОВАННАЯ ИНФОРМАЦИЯ ПАРАМЕТРА
Проверяет любую информацию о параметре, экспортируемую аудиоустройством.
ТЕСТЫ ФОРМАТА
Проверяет, что аудиоустройство может быть установлено в конфигурации канала, оно указывает, что поддерживает.
Проверяет, что аудиоустройство не может быть установлено в конфигурации канала, которых оно не указывает поддержку.
ТЕСТЫ РЕНДЕРИНГА
Выполняет тесты рендеринга в различных числах максимальных кадров на часть. Это наборы тестов
MaxFramesPerSliceсвойство между рендерингом вызывает, чтобы проверить, что правильно отвечает аудиоустройство.Тестирует ответ аудиоустройства на
AudioUnitResetвызов функции и тесты семантика соединения аудиоустройства.Протестируйте установку и атомарного, и сползал параметры во время рендеринга.
Параметры отладки
Можно использовать auval инструмент для тестирования аудиоустройства на утечки памяти и потенциальные обжимные прессы памяти. Apple рекомендует три теста памяти. Каждый требует, чтобы Вы определили некоторые переменные окружения. Для получения дополнительной информации о переменных окружения Malloc см. Информацию о версии Переменных окружения Отладки Malloc.
Тестирование на утечки памяти
Аудиоустройства не должны пропускать память. В этом разделе описывается протестировать на утечки памяти.
Для тестирования на утечки памяти в аудиоустройстве установите следующую переменную окружения:
export MallocStackLogging=1Выполнитесь
auvalинструмент с помощьюwиqпереключатели.wпереключатель предотвращаетauvalот завершения.qпереключатель подавляет диагностический вывод. Вы будете видеть вывод, подобный показанному в перечислении 5.Перечисление 5 , Подготавливающее протестировать на утечки памяти
[~] % auval -v aufx bpas appl -w -q sh(6261) malloc: recording malloc stacks to disk using standard recorder sh(6261) malloc: stack logs being written into /tmp/stack-logs.6261.sh.8jZkMX arch(6262) malloc: recording malloc stacks to disk using standard recorder arch(6262) malloc: stack logs being written into /tmp/stack-logs.6262.arch.0SVUSw auvaltool(6262) malloc: recording malloc stacks to disk using standard recorder auvaltool(6262) malloc: stack logs deleted from /tmp/stack-logs.6262.arch.0SVUSw auvaltool(6262) malloc: stack logs being written into /tmp/stack-logs.6262.auvaltool.ahETKI * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AU Validation Tool Version: 1.2.1b3 Copyright 2003-2007, Apple, Inc. All Rights Reserved. Specify -h (-help) for command options * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -------------------------------------------------- VALIDATING AUDIO UNIT: 'aufx' - 'bpas' - 'appl' -------------------------------------------------- AU VALIDATION SUCCEEDED.С
-wпереключатель,auvalне завершается. В другой оболочке Вы тогда выполняетесьleaksкоманда (использующий изодромное с предварением (идентификатор процесса)auvalпроцесс Вы тестируете. В примере Вы видите в перечислении 6, изодромное с предварением13425.-qпереключатель подавляет распечатку отauval.Тестирование перечисления 6 на утечки памяти
[~] % leaks 13425 Process 13425: 2780 nodes malloced for 471 KB Process 13425: 0 leaks for 0 total leaked bytes.
Если Ваше аудиоустройство имеет утечки памяти,
leaksинструмент распечатывает журнал штабеля для каждой утечки, которую он обнаруживает.
Тестирование на обжимные прессы памяти: память тест Scribble
Аудиоустройства не должны пытаться использовать память, которая не их. Этот раздел и следующее описывают, как протестировать на за пределы использование памяти.
Для выполнения теста каракулей памяти на аудиоустройстве определите следующие две переменные окружения:
export MallocScribble=1export MallocGuardEdges=1Выполнитесь
auvalинструмент с помощьюqпереключатель. Вы будете видеть что-то как вывод, показанный в перечислении 7.Перечисление 7 , Выполняющее память, набрасывает тест
[~] % auval -v aufx bpas appl -q sh(1294) malloc: protecting edges sh(1294) malloc: enabling scribbling to detect mods to free blocks arch(1295) malloc: protecting edges arch(1295) malloc: enabling scribbling to detect mods to free blocks auvaltool(1295) malloc: protecting edges auvaltool(1295) malloc: enabling scribbling to detect mods to free blocks * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AU Validation Tool Version: 1.2.1b3 Copyright 2003-2007, Apple, Inc. All Rights Reserved. Specify -h (-help) for command options * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -------------------------------------------------- VALIDATING AUDIO UNIT: 'aufx' - 'bpas' - 'appl' -------------------------------------------------- AU VALIDATION SUCCEEDED.В этом случае мы не должны указывать
-wопция. Мы используем-qопция подавитьauvalпечать.Если Ваше аудиоустройство запишет в память вне его границ, то это откажет. Отслеживание стека катастрофического отказа будет расположено к позиции, где существует проблема. Цель здесь, конечно, не состоит в том, чтобы отказать!
Тестирование на обжимные прессы памяти: охраняйте тест Malloc
Для выполнения Защиты тест Malloc на аудиоустройстве определите следующие три переменные окружения:
export DYLD_FORCE_FLAT_NAMESPACE=1export DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylibexport MALLOC_VECTOR_SIZE=1Выполнитесь
auvalинструмент с помощьюqпереключатель. Вы будете видеть что-то как вывод, показанный в перечислении 8.Перечисление 8 , Выполняющее Защиту тест Malloc
[~] % auval -v aufx bpas appl -q GuardMalloc: Allocations will be placed on 16 byte boundaries. GuardMalloc: - Some buffer overruns may not be noticed. GuardMalloc: - Applications using vector instructions (e.g., SSE or Altivec) should work. GuardMalloc: GuardMalloc version 18 GuardMalloc: Allocations will be placed on 16 byte boundaries. GuardMalloc: - Some buffer overruns may not be noticed. GuardMalloc: - Applications using vector instructions (e.g., SSE or Altivec) should work. GuardMalloc: GuardMalloc version 18 GuardMalloc: Allocations will be placed on 16 byte boundaries. GuardMalloc: - Some buffer overruns may not be noticed. GuardMalloc: - Applications using vector instructions (e.g., SSE or Altivec) should work. GuardMalloc: GuardMalloc version 18 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AU Validation Tool Version: 1.2.1b3 Copyright 2003-2007, Apple, Inc. All Rights Reserved. Specify -h (-help) for command options * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -------------------------------------------------- VALIDATING AUDIO UNIT: 'aufx' - 'bpas' - 'appl' -------------------------------------------------- AU VALIDATION SUCCEEDED.Если Ваше аудиоустройство приведет Защиту к сбою тест Malloc, то это откажет. Отслеживание стека катастрофического отказа будет расположено к позиции, где существует проблема. Цель здесь, конечно, не состоит в том, чтобы отказать!
Подсказки
Для удобства можно определить эти наборы параметров отладки как псевдонимы для оболочки. Для стандартной оболочки Bash Mac OS X введите строки, показанные в перечисление 9 в
.profileфайл в Вашем корневом каталоге. Один раз в том файле, эти псевдонимы доступны каждому сеансу Bash, который Вы открываете.Перечисление 9 , Определяющее оболочку, искажает для тестов памяти
alias leaktest="export export MallocStackLogging=1" alias scribbletest="export MallocScribble=1; export MallocGuardEdges=1;" alias guardtest="export DYLD_FORCE_FLAT_NAMESPACE=1; export DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib;export MALLOC_VECTOR_SIZE=1;"
Вы тогда устанавливаете переменные окружения путем ввода имен псевдонима. Например, прежде, чем протестировать на утечки, Вы ввели бы следующую команду:
[~] % leaktest
Можно также выполнить эти тесты памяти в gdb сеансе. Чтобы сделать это, сначала запустите gdb. Тогда прежде, чем выполниться
auvalинструмент, на gdb командной строке определяют эти переменные окружения с помощью gdbset envкоманда, как показано в перечислении 10.Перечисление 10 Используя gdb для выполнения тестов памяти аудиоустройства
(gdb) set env MallocScribble 1 (gdb) r Starting program: /usr/bin/auval malloc[13448]: enabling scribbling to detect mods to free blocks Reading symbols for shared libraries +............... done malloc[13448]: enabling scribbling to detect mods to free blocks * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AU Validation Tool Version: 1.1.0b9 Copyright 2003-4, Apple Computer, Inc. Specify -h (-help) for command options * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Program exited normally. (gdb)
История версии документа
| Дата | Примечания |
|---|---|
| 08.09.2008 | |
| 21.08.2008 | Новый документ, которые тестируют соответствие аудиоустройств к Audio Unit Services. |