Техническое примечание TN2204

Проверка Аудиоустройства Используя auval Инструмент

auval инструмент командной строки позволяет Вам протестировать соответствие аудиоустройства к поведению, ожидаемому приложениями то использование Audio Unit Services.

Использование
Процесс проверки
Параметры отладки
Подсказки
История версии документа

Использование

Можно работать auval инструмент из командной строки как показано в перечислении 1.

Перечисление 1  , Проверяющее аудиоустройство

 [~] % auval -v TYPE SUBT MNFR

В перечислении 1 TYPE, SUBT и MNFR представляют четыре кодов символов, однозначно определяющие аудиоустройство.

Для получения дополнительной информации об идентификации аудиоустройства см. Руководство по программированию Аудиоустройства.

Перечисление 2 показывает команду для получения списка всех аудиоустройств в системе, соответствующих данный тип компонента.

Перечисление 2  , Перечисляющее все аудиоустройства данного типа

 [~] % auval -s TYPE

Для получения списка всех установленных аудиоустройств введите команду, показанную в перечисление 3.

Перечисление 3  , Перечисляющее все установленные аудиоустройства

 [~] % auval -a

auval инструмент имеет встроенную справку в наличии. Вы получаете доступ к нему как показано в перечислении 4.

Перечисление 4  Получая auval справку

 [~] % auval -h

При выполнении, auval инструмент может указать один из двух возможных видов отказа.

Процесс проверки

Проверка аудиоустройства продолжается в многократных фазах с каждой фазой, данной a * *PASS или * *FAIL класс. Удовлетворительная отметка для фазы не указывает ошибок. После выполнения auval инструмент можно искать следующие строки в выводе:

  1. ПРОВЕРКА АУДИОУСТРОЙСТВА

    • Тесты, соответствует ли тип компонента один из указанных типов аудиоустройства Apple.

    • Тесты, имеет ли код производителя компонента по крайней мере одну прописную букву, как требуется.

  2. ТЕСТИРОВАНИЕ ОТКРЫТЫХ ВРЕМЕН

    • Тесты и холодное и теплое время для открытия аудиоустройства. Время открытия должно быть сведено к минимуму, потому что оно влияет на время запуска и, поэтому, удобство пользования хост-приложений.

  3. ПРОВЕРКА ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ ОПРЕДЕЛЯЕТ ОБЪЕМ ФОРМАТОВ

    • Проверяет экспортируемые форматы аудиоданных шин ввода и вывода. Формат по умолчанию для аудиоустройства должен иметь частоту дискретизации 44100 Гц и конфигурацию канала, которую фактически поддерживает аудиоустройство.

  4. ПРОВЕРКА ТРЕБУЕМЫХ СВОЙСТВ

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

  5. ПРОВЕРКА РЕКОМЕНДУЕМЫХ СВОЙСТВ

    • Предупреждает, если аудиоустройство не реализует свойство, рекомендующееся для того типа аудиоустройства.

  6. ПРОВЕРКА ДОПОЛНИТЕЛЬНЫХ СВОЙСТВ

    • Проверяет дополнительные, определенные Apple свойства аудиоустройства, согласно его типу. Отчеты только относительно свойств, реализованных и проверяющих, что они реализованы правильно.

  7. ПРОВЕРКА СПЕЦИАЛЬНЫХ СВОЙСТВ

    • Проверяет информацию о Классе (персистентность) свойство, проверяя, что аудиоустройство указывает надлежащий формат данных для персистентности.

    • Если аудиоустройство указывает, что имеет представление, проверяет, что представление может быть найдено и открыто.

    • Проверяет, что фабрику предварительные установки, если реализовано, обрабатывают и сообщают правильно.

  8. ОПУБЛИКОВАННАЯ ИНФОРМАЦИЯ ПАРАМЕТРА

    • Проверяет любую информацию о параметре, экспортируемую аудиоустройством.

  9. ТЕСТЫ ФОРМАТА

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

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

  10. ТЕСТЫ РЕНДЕРИНГА

    • Выполняет тесты рендеринга в различных числах максимальных кадров на часть. Это наборы тестов MaxFramesPerSlice свойство между рендерингом вызывает, чтобы проверить, что правильно отвечает аудиоустройство.

    • Тестирует ответ аудиоустройства на AudioUnitReset вызов функции и тесты семантика соединения аудиоустройства.

    • Протестируйте установку и атомарного, и сползал параметры во время рендеринга.

Параметры отладки

Можно использовать auval инструмент для тестирования аудиоустройства на утечки памяти и потенциальные обжимные прессы памяти. Apple рекомендует три теста памяти. Каждый требует, чтобы Вы определили некоторые переменные окружения. Для получения дополнительной информации о переменных окружения Malloc см. Информацию о версии Переменных окружения Отладки Malloc.

Тестирование на утечки памяти

Аудиоустройства не должны пропускать память. В этом разделе описывается протестировать на утечки памяти.

  1. Для тестирования на утечки памяти в аудиоустройстве установите следующую переменную окружения:

    export MallocStackLogging=1

  2. Выполнитесь 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.
  3. С -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.
  4. Если Ваше аудиоустройство имеет утечки памяти, leaks инструмент распечатывает журнал штабеля для каждой утечки, которую он обнаруживает.

Тестирование на обжимные прессы памяти: память тест Scribble

Аудиоустройства не должны пытаться использовать память, которая не их. Этот раздел и следующее описывают, как протестировать на за пределы использование памяти.

  1. Для выполнения теста каракулей памяти на аудиоустройстве определите следующие две переменные окружения:

    export MallocScribble=1

    export MallocGuardEdges=1

  2. Выполнитесь 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 печать.

  3. Если Ваше аудиоустройство запишет в память вне его границ, то это откажет. Отслеживание стека катастрофического отказа будет расположено к позиции, где существует проблема. Цель здесь, конечно, не состоит в том, чтобы отказать!

Тестирование на обжимные прессы памяти: охраняйте тест Malloc

  1. Для выполнения Защиты тест Malloc на аудиоустройстве определите следующие три переменные окружения:

    export DYLD_FORCE_FLAT_NAMESPACE=1

    export DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib

    export MALLOC_VECTOR_SIZE=1

  2. Выполнитесь 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.
  3. Если Ваше аудиоустройство приведет Защиту к сбою тест Malloc, то это откажет. Отслеживание стека катастрофического отказа будет расположено к позиции, где существует проблема. Цель здесь, конечно, не состоит в том, чтобы отказать!

Подсказки

  1. Для удобства можно определить эти наборы параметров отладки как псевдонимы для оболочки. Для стандартной оболочки 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
  2. Можно также выполнить эти тесты памяти в gdb сеансе. Чтобы сделать это, сначала запустите gdb. Тогда прежде, чем выполниться auval инструмент, на gdb командной строке определяют эти переменные окружения с помощью gdb set 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.