# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" "PO-Revision-Date: 2026-03-04 20:01+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: Title = #: documentation/content/en/books/developers-handbook/testing/_index.adoc:1 #: documentation/content/en/books/developers-handbook/testing/_index.adoc:15 #, no-wrap msgid "Regression and Performance Testing" msgstr "Регрессионное и нагрузочное тестирование" #. type: YAML Front Matter: title #: documentation/content/en/books/developers-handbook/testing/_index.adoc:1 #, no-wrap msgid "Chapter 6. Regression and Performance Testing" msgstr "Глава 6. Регрессионное и нагрузочное тестирование" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:53 msgid "" "Regression tests are used to exercise a particular bit of the system to " "check that it works as expected, and to make sure that old bugs are not " "reintroduced." msgstr "" "Регрессионные тесты используются для проверки определённой части системы, " "чтобы убедиться, что она работает как ожидается, и для предотвращения " "повторного появления старых ошибок." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:55 msgid "" "The FreeBSD regression testing tools can be found in the FreeBSD source tree " "in the directory [.filename]#src/tools/regression#." msgstr "" "Инструменты для регрессионного тестирования FreeBSD можно найти в дереве " "исходных кодов FreeBSD в каталоге [.filename]#src/tools/regression#." #. type: Title == #: documentation/content/en/books/developers-handbook/testing/_index.adoc:57 #, no-wrap msgid "Micro Benchmark Checklist" msgstr "Контрольный список для бенчмарка низкоуровневых операций" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:60 msgid "" "This section contains hints for doing proper micro-benchmarking on FreeBSD " "or of FreeBSD itself." msgstr "" "Этот раздел содержит рекомендации по проведению корректного бенчмарка " "низкоуровненых операций на FreeBSD или самой FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:62 msgid "" "It is not possible to use all of the suggestions below every single time, " "but the more used, the better the benchmark's ability to test small " "differences will be." msgstr "" "Невозможно использовать все приведённые ниже рекомендации каждый раз, но чем " "больше их применяется, тем лучше способность теста выявлять небольшие " "различия." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:64 msgid "Disable APM and any other kind of clock fiddling (ACPI ?)." msgstr "Отключить APM и любые другие манипуляции с часами (ACPI ?)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:65 msgid "" "Run in single user mode. E.g., man:cron[8], and other daemons only add " "noise. The man:sshd[8] daemon can also cause problems. If ssh access is " "required during testing either disable the SSHv1 key regeneration, or kill " "the parent `sshd` daemon during the tests." msgstr "" "Запускайте тесты в однопользовательском режиме. Например, man:cron[8] и " "другие демоны только добавляют шум. Демон man:sshd[8] также может вызвать " "проблемы. Если требуется доступ по SSH во время тестирования, либо отключите " "перегенерацию ключа SSHv1, либо завершите родительский демон `sshd` во время " "тестов." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:66 msgid "Do not run man:ntpd[8]." msgstr "Не запускайте man:ntpd[8]." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:67 msgid "" "If man:syslog[3] events are generated, run man:syslogd[8] with an empty " "[.filename]#/etc/syslogd.conf#, otherwise, do not run it." msgstr "" "Если события man:syslog[3] генерируются, запустите man:syslogd[8] с пустым [." "filename]#/etc/syslogd.conf#, в противном случае не запускайте его." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:68 msgid "Minimize disk-I/O, avoid it entirely if possible." msgstr "" "Минимизируйте дисковые операции ввода-вывода, по возможности избегайте их " "полностью." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:69 msgid "Do not mount file systems that are not needed." msgstr "Не монтируйте файловые системы, которые не требуются." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:70 msgid "" "Mount [.filename]#/#, [.filename]#/usr#, and any other file system as read-" "only if possible. This removes atime updates to disk (etc.) from the I/O " "picture." msgstr "" "Смонтируйте [.filename]#/#, [.filename]#/usr# и любые другие файловые " "системы в режиме только для чтения, если это возможно. Это исключает " "обновления atime на диске (и т.д.) из общей картины ввода-вывода." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:71 msgid "" "Reinitialize the read/write test file system with man:newfs[8] and populate " "it from a man:tar[1] or man:dump[8] file before every run. Unmount and mount " "it before starting the test. This results in a consistent file system " "layout. For a worldstone test this would apply to [.filename]#/usr/obj# " "(just reinitialize with `newfs` and mount). To get 100% reproducibility, " "populate the file system from a man:dd[1] file (i.e.: `dd if=myimage of=/dev/" "ad0s1h bs=1m`)" msgstr "" "Переинициализируйте тестовую файловую систему с возможностью чтения/записи с " "помощью man:newfs[8] и заполните её из файла man:tar[1] или man:dump[8] " "перед каждым запуском. Размонтируйте и смонтируйте её перед началом теста. " "Это обеспечит согласованную структуру файловой системы. Для теста worldstone " "это применимо к [.filename]#/usr/obj# (просто переинициализируйте с помощью " "`newfs` и смонтируйте). Для достижения 100% воспроизводимости заполните " "файловую систему из файла man:dd[1] (например: `dd if=myimage of=/dev/ad0s1h " "bs=1m`)" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:72 msgid "Use malloc backed or preloaded man:md[4] partitions." msgstr "Используйте разделы man:md[4] с поддержкой malloc или предзагруженные." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:73 msgid "" "Reboot between individual iterations of the test, this gives a more " "consistent state." msgstr "" "Перезагружайтесь между отдельными итерациями теста, это обеспечивает более " "согласованное состояние." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:74 msgid "" "Remove all non-essential device drivers from the kernel. For instance if USB " "is not needed for the test, do not put USB in the kernel. Drivers which " "attach often have timeouts ticking away." msgstr "" "Удалите все необязательные драйверы устройств из ядра. Например, если USB не " "нужен для теста, не включайте поддержку USB в ядре. Драйверы, которые " "подключаются, часто имеют работающие таймауты." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:75 msgid "" "Unconfigure hardware that are not in use. Detach disks with " "man:atacontrol[8] and man:camcontrol[8] if the disks are not used for the " "test." msgstr "" "Отключите неиспользуемое оборудование. Отсоедините диски с помощью " "man:atacontrol[8] и man:camcontrol[8], если диски не используются для " "тестирования." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:76 msgid "" "Do not configure the network unless it is being tested, or wait until after " "the test has been performed to ship the results off to another computer." msgstr "" "Не настраивайте сеть, если она не тестируется, или дождитесь завершения " "тестирования, чтобы отправить результаты на другой компьютер." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:78 msgid "" "Disable \"Turbo-modes\" because they make the clock frequency explicitly " "depend on the environment. This means that benchmark runs on 100% identical " "code, may depend on time of day, coffee vs. soda or even how many other " "people are in the office." msgstr "" "Отключите \"турбо-режимы\", так как они делают тактовую частоту явно " "зависимой от окружающей среды. Это означает, что результаты тестирования на " "100% идентичном коде могут зависеть от времени суток, употребления кофе или " "газировки или даже от количества людей в офисе." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:80 msgid "" "If the system must be connected to a public network, watch out for spikes of " "broadcast traffic. Even though it is hardly noticeable, it will take up CPU " "cycles. Multicast has similar caveats." msgstr "" "Если система должна быть подключена к общедоступной сети, следите за " "всплесками широковещательного трафика. Даже если они почти незаметны, они " "будут занимать циклы процессора. Многоадресная рассылка имеет аналогичные " "предостережения." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:81 msgid "" "Put each file system on its own disk. This minimizes jitter from head-seek " "optimizations." msgstr "" "Размещайте каждую файловую систему на отдельном диске. Это минимизирует " "задержки, вызванные оптимизацией перемещения головок диска." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:82 msgid "" "Minimize output to serial or VGA consoles. Running output into files gives " "less jitter. (Serial consoles easily become a bottleneck.) Do not touch " "keyboard while the test is running, even kbd:[space] or kbd:[back-space] " "shows up in the numbers." msgstr "" "Минимизируйте вывод на последовательные или VGA-консоли. Запись вывода в " "файлы снижает дрожание. (Консоли на последовательном порту легко становятся " "узким местом.) Не касайтесь клавиатуры во время выполнения теста, даже " "нажатия kbd:[пробел] или kbd:[back-space] отражаются в числах." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:83 msgid "" "Make sure the test is long enough, but not too long. If the test is too " "short, timestamping is a problem. If it is too long temperature changes and " "drift will affect the frequency of the quartz crystals in the computer. Rule " "of thumb: more than a minute, less than an hour." msgstr "" "Убедитесь, что тест достаточно длинный, но не слишком. Если тест слишком " "короткий, возникают проблемы с временными метками. Если он слишком длинный, " "изменения температуры и дрейф повлияют на частоту кварцевых кристаллов в " "компьютере. Эмпирическое правило: больше минуты, меньше часа." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:84 msgid "" "Try to keep the temperature as stable as possible around the machine. This " "affects both quartz crystals and disk drive algorithms. To get real stable " "clock, consider stabilized clock injection. E.g., get a OCXO + PLL, inject " "output into clock circuits instead of motherboard xtal. Contact {phk} for " "more information about this." msgstr "" "Попытайтесь поддерживать температуру вокруг машины как можно более " "стабильной. Это влияет как на кварцевые резонаторы, так и на алгоритмы " "работы дисковых накопителей. Для получения действительно стабильных часов " "рассмотрите возможность использования стабилизированного тактового сигнала. " "Например, используйте OCXO + PLL и подавайте выходной сигнал в тактовые " "схемы вместо кварцевого резонатора на материнской плате. Для получения " "дополнительной информации по этому вопросу свяжитесь с {phk}." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:85 msgid "" "Run the test at least 3 times but it is better to run more than 20 times " "both for \"before\" and \"after\" code. Try to interleave if possible (i.e.: " "do not run 20 times before then 20 times after), this makes it possible to " "spot environmental effects. Do not interleave 1:1, but 3:3, this makes it " "possible to spot interaction effects." msgstr "" "Выполните тест как минимум 3 раза, но лучше запустить более 20 раз как для " "кода \"до\", так и для кода \"после\". По возможности чередуйте запуски (" "т.е. не следует запускать 20 раз \"до\", а затем 20 раз \"после\"), это " "поможет выявить влияние окружения. Не чередуйте строго 1:1, а лучше 3:3, " "чтобы можно было обнаружить эффекты взаимодействия." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:88 msgid "" "A good pattern is: `bababa{bbbaaa}*`. This gives hint after the first 1+1 " "runs (so it is possible to stop the test if it goes entirely the wrong way), " "a standard deviation after the first 3+3 (gives a good indication if it is " "going to be worth a long run) and trending and interaction numbers later on." msgstr "" "Хороший шаблон: `bababa{bbbaaa}*`. Это даёт подсказку после первых 1+1 " "прогонов (так что можно остановить тест, если всё идёт совсем не так), " "стандартное отклонение после первых 3+3 (дает хорошее представление, стоит " "ли проводить длительный прогон), а также тренды и показатели взаимодействия " "позже." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:89 msgid "" "Use man:ministat[1] to see if the numbers are significant. Consider buying " "\"Cartoon guide to statistics\" ISBN: 0062731025, highly recommended, if you " "have forgotten or never learned about standard deviation and Student's T." msgstr "" "Используйте man:ministat[1], чтобы определить, являются ли числа значимыми. " "Рекомендуется приобрести книгу \"Cartoon guide to statistics\" ISBN: " "0062731025, особенно если вы забыли или никогда не изучали стандартное " "отклонение и t-критерий Стьюдента." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:90 msgid "" "Do not use background man:fsck[8] unless the test is a benchmark of " "background `fsck`. Also, disable `background_fsck` in [.filename]#/etc/" "rc.conf# unless the benchmark is not started at least 60+\"``fsck`` " "runtime\" seconds after the boot, as man:rc[8] wakes up and checks if `fsck` " "needs to run on any file systems when background `fsck` is enabled. " "Likewise, make sure there are no snapshots lying around unless the benchmark " "is a test with snapshots." msgstr "" "Не используйте фоновый man:fsck[8], если тест не является бенчмарком " "фонового `fsck`. Также отключите `background_fsck` в [.filename]#/etc/rc." "conf#, если бенчмарк не запускается как минимум через 60+«время работы " "``fsck``» секунд после загрузки, так как man:rc[8] пробуждается и проверяет, " "нужно ли запускать `fsck` для каких-либо файловых систем, когда включен " "фоновый `fsck`. Аналогично, убедитесь, что нет оставшихся снимков, если " "только бенчмарк не является тестом со снимками." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:91 msgid "" "If the benchmark show unexpected bad performance, check for things like high " "interrupt volume from an unexpected source. Some versions of ACPI have been " "reported to \"misbehave\" and generate excess interrupts. To help diagnose " "odd test results, take a few snapshots of `vmstat -i` and look for anything " "unusual." msgstr "" "Если тесты производительности показывают неожиданно низкие результаты, " "проверьте такие факторы, как высокий объём прерываний из неожиданного " "источника. Сообщалось, что некоторые версии ACPI могут \"вести себя " "неправильно\" и генерировать избыточные прерывания. Для диагностики " "необычных результатов тестов сделайте несколько снимков `vmstat -i` и " "поищите что-то необычное." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:92 msgid "" "Make sure to be careful about optimization parameters for kernel and " "userspace, likewise debugging. It is easy to let something slip through and " "realize later the test was not comparing the same thing." msgstr "" "Будьте внимательны к параметрам оптимизации для ядра и пользовательского " "пространства, а также отладки. Легко упустить что-то и позже понять, что " "тест сравнивал не одно и то же." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:93 msgid "" "Do not ever benchmark with the `WITNESS` and `INVARIANTS` kernel options " "enabled unless the test is interested to benchmarking those features. " "`WITNESS` can cause 400%+ drops in performance. Likewise, userspace " "man:malloc[3] parameters default differently in -CURRENT from the way they " "ship in production releases." msgstr "" "Никогда не проводите тестирование производительности с включёнными " "параметрами ядра `WITNESS` и `INVARIANTS`, если тест не направлен на оценку " "производительности именно этих функций. `WITNESS` может привести к снижению " "производительности на 400% и более. Аналогично, параметры userspace " "man:malloc[3] по умолчанию отличаются в -CURRENT от тех, что поставляются в " "релизах." #. type: Title == #: documentation/content/en/books/developers-handbook/testing/_index.adoc:95 #, no-wrap msgid "The FreeBSD Source Tinderbox" msgstr "Tinderbox для исходного текста FreeBSD" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:98 msgid "The source Tinderbox consists of:" msgstr "Исходный Tinderbox состоит из:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:100 msgid "" "A build script, [.filename]#tinderbox#, that automates checking out a " "specific version of the FreeBSD source tree and building it." msgstr "" "Скрипта сборки [.filename]#tinderbox#, который автоматизирует выгрузку " "определённой версии исходного кода FreeBSD и её сборку." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:101 msgid "" "A supervisor script, [.filename]#tbmaster#, that monitors individual " "Tinderbox instances, logs their output, and emails failure notices." msgstr "" "Скрипта-супервизора [.filename]#tbmaster#, который отслеживает отдельные " "экземпляры Tinderbox, записывает их вывод и отправляет уведомления о сбоях " "по электронной почте." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:102 msgid "" "A CGI script named [.filename]#index.cgi# that reads a set of tbmaster logs " "and presents an easy-to-read HTML summary of them." msgstr "" "Скрипта CGI с именем [.filename]#index.cgi#, который читает набор журналов " "tbmaster и представляет их в виде удобочитаемой HTML-сводки." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:103 msgid "" "A set of build servers that continually test the tip of the most important " "FreeBSD code branches." msgstr "" "Набора серверов сборки, которые постоянно тестируют последние изменения " "наиболее важных веток кода FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:104 msgid "" "A webserver that keeps a complete set of Tinderbox logs and displays an up-" "to-date summary." msgstr "" "Веб-сервера, хранящего полный набор журналов Tinderbox и отображающий " "актуальную сводку." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:107 msgid "" "The scripts are maintained and were developed by {des}, and are now written " "in Perl, a move on from their original incarnation as shell scripts. All " "scripts and configuration files are kept in https://www.freebsd.org/cgi/" "cvsweb.cgi/projects/tinderbox/[/projects/tinderbox/]." msgstr "" "Скрипты поддерживаются и были разработаны {des}, и сейчас написаны на Perl, " "что стало шагом вперёд по сравнению с их первоначальной версией в виде shell-" "скриптов. Все скрипты и конфигурационные файлы хранятся в https://www.freebsd" ".org/cgi/cvsweb.cgi/projects/tinderbox/[/projects/tinderbox/]." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:109 msgid "" "For more information about the tinderbox and tbmaster scripts at this stage, " "see their respective man pages: tinderbox(1) and tbmaster(1)." msgstr "" "Для получения дополнительной информации о скриптах tinderbox и tbmaster на " "данном этапе обратитесь к соответствующим руководствам: tinderbox(1) и " "tbmaster(1)." #. type: Title == #: documentation/content/en/books/developers-handbook/testing/_index.adoc:110 #, no-wrap msgid "The index.cgi Script" msgstr "Скрипт index.cgi" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:117 msgid "" "The [.filename]#index.cgi# script generates the HTML summary of tinderbox " "and tbmaster logs. Although originally intended to be used as a CGI script, " "as indicated by its name, this script can also be run from the command line " "or from a man:cron[8] job, in which case it will look for logs in the " "directory where the script is located. It will automatically detect " "context, generating HTTP headers when it is run as a CGI script. It " "conforms to XHTML standards and is styled using CSS." msgstr "" "Скрипт [.filename]#index.cgi# генерирует HTML-сводку журналов tinderbox и " "tbmaster. Хотя изначально он предназначался для использования в качестве CGI-" "скрипта, как следует из его названия, этот скрипт также может быть запущен " "из командной строки или из задачи man:cron[8], в таком случае он будет " "искать логи в каталоге, где расположен сам скрипт. Он автоматически " "определяет контекст, генерируя HTTP-заголовки при запуске в качестве CGI-" "скрипта. Он соответствует стандартам XHTML и использует CSS для стилизации." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:120 msgid "" "The script starts in the `main()` block by attempting to verify that it is " "running on the official Tinderbox website. If it is not, a page indicating " "it is not an official website is produced, and a URL to the official site is " "provided." msgstr "" "Скрипт начинает работу в блоке `main()`, пытаясь проверить, что он " "выполняется на официальном сайте Tinderbox. Если это не так, создается " "страница с указанием, что это не официальный сайт, и предоставляется URL " "официального сайта." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:123 msgid "" "Next, it scans the log directory to get an inventory of configurations, " "branches and architectures for which log files exist, to avoid hard-coding a " "list into the script and potentially ending up with blank rows or columns. " "This information is derived from the names of the log files matching the " "following pattern:" msgstr "" "Далее выполняется сканирование каталога журналов для получения перечня " "конфигураций, веток и архитектур, для которых существуют файлы журналов, " "чтобы избежать жёсткого задания списка в скрипте и потенциального появления " "пустых строк или столбцов. Эта информация извлекается из имён файлов " "журналов, соответствующих следующему шаблону:" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/testing/_index.adoc:127 #, no-wrap msgid "tinderbox-$config-$branch-$arch-$machine.{brief,full}\n" msgstr "tinderbox-$config-$branch-$arch-$machine.{brief,full}\n" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:131 msgid "" "The configurations used on the official Tinderbox build servers are named " "for the branches they build. For example, the `releng_8` configuration is " "used to build `RELENG_8` as well as all still-supported release branches." msgstr "" "Конфигурации, используемые на официальных серверах сборки Tinderbox, названы " "в соответствии с ветками, которые они собирают. Например, конфигурация " "`releng_8` используется для сборки `RELENG_8`, а также всех поддерживаемых " "веток выпусков." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:133 msgid "" "Once all of this startup procedure has been successfully completed, " "`do_config()` is called for each configuration." msgstr "" "После успешного завершения всей процедуры запуска для каждой конфигурации " "вызывается `do_config()`." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:135 msgid "" "The `do_config()` function generates HTML for a single Tinderbox " "configuration." msgstr "" "Функция `do_config()` генерирует HTML для отдельной конфигурации Tinderbox." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:138 msgid "" "It works by first generating a header row, then iterating over each branch " "build with the specified configuration, producing a single row of results " "for each in the following manner:" msgstr "" "Он работает, сначала создавая строку заголовка, затем перебирая каждую " "сборку ветки с указанной конфигурацией, формируя одну строку результатов для " "каждой следующим образом:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:140 msgid "For each item:" msgstr "Для каждого элемента:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:142 msgid "For each machine within that architecture:" msgstr "Для каждой машины в рамках этой архитектуры:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:144 msgid "If a brief log file exists, then:" msgstr "Если существует краткий файл журнала, то:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:146 msgid "Call `success()` to determine the outcome of the build." msgstr "Вызвать `success()`, чтобы определить результат сборки." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:147 msgid "Output the modification size." msgstr "Вывести размер изменения." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:148 msgid "" "Output the size of the brief log file with a link to the log file itself." msgstr "Вывести размер краткого файла журнала со ссылкой на сам файл журнала." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:149 msgid "If a full log file also exists, then:" msgstr "Если также существует полный файл журнала, то:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:151 msgid "" "Output the size of the full log file with a link to the log file itself." msgstr "Вывести размер полного файла журнала со ссылкой на сам файл журнала." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:153 msgid "Otherwise:" msgstr "В противном случае:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:155 msgid "No output." msgstr "Нечего не выводить." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:157 msgid "" "The `success()` function mentioned above scans a brief log file for the " "string \"tinderbox run completed\" in order to determine whether the build " "was successful." msgstr "" "Упомянутая выше функция `success()` проверяет краткий лог-файл на наличие " "строки \"tinderbox run completed\", чтобы определить, был ли сборка успешной." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:160 msgid "" "Configurations and branches are sorted according to their branch rank. This " "is computed as follows:" msgstr "" "Конфигурации и ветви сортируются в соответствии с их рангом. Это вычисляется " "следующим образом:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:162 msgid "`HEAD` and `CURRENT` have rank 9999." msgstr "`HEAD` и `CURRENT` имеют ранг 9999." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:163 msgid "`RELENG_x` has rank __``xx``__99." msgstr "`RELENG_x` имеет ранг __``xx``__99." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:164 msgid "`RELENG_x_y` has rank _xxyy_." msgstr "`RELENG_x_y` имеет ранг _xxyy_." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:167 msgid "" "This means that `HEAD` always ranks highest, and `RELENG` branches are " "ranked in numerical order, with each `STABLE` branch ranking higher than the " "release branches forked off of it. For instance, for FreeBSD 8, the order " "from highest to lowest would be:" msgstr "" "Это означает, что `HEAD` всегда имеет наивысший приоритет, а ветви `RELENG` " "ранжируются в числовом порядке, причём каждая ветвь `STABLE` имеет более " "высокий приоритет, чем ветви выпусков, ответвлённые от неё. Например, для " "FreeBSD 8 порядок от наивысшего к низшему будет следующим:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:169 msgid "`RELENG_8` (branch rank 899)." msgstr "`RELENG_8` (ранг ветки 899)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:170 msgid "`RELENG_8_3` (branch rank 803)." msgstr "`RELENG_8_3` (ранг ветки 803)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:171 msgid "`RELENG_8_2` (branch rank 802)." msgstr "`RELENG_8_2` (ранг ветки 802)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:172 msgid "`RELENG_8_1` (branch rank 801)." msgstr "`RELENG_8_1` (ранг ветки 801)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:173 msgid "`RELENG_8_0` (branch rank 800)." msgstr "`RELENG_8_0` (ранг ветки 800)." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:177 msgid "" "The colors that Tinderbox uses for each cell in the table are defined by " "CSS. Successful builds are displayed with green text; unsuccessful builds " "are displayed with red text. The color fades as time passes since the " "corresponding build, with every half an hour bringing the color closer to " "grey." msgstr "" "Цвета, которые Tinderbox использует для каждой ячейки в таблице, " "определяются CSS. Успешные сборки отображаются зелёным текстом; неудачные " "сборки отображаются красным текстом. Цвет блекнет со временем с момента " "соответствующей сборки, приближаясь к серому каждые полчаса." #. type: Title == #: documentation/content/en/books/developers-handbook/testing/_index.adoc:178 #, no-wrap msgid "Official Build Servers" msgstr "Официальные серверы сборки" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:181 msgid "" "The official Tinderbox build servers are hosted by http://" "www.sentex.ca[Sentex Data Communications], who also host the FreeBSD Netperf " "Cluster." msgstr "" "Официальные серверы сборки Tinderbox размещены на площадке http://www.sentex." "ca[Sentex Data Communications], которая также предоставляет хостинг для " "кластера Netperf FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:183 msgid "Three build servers currently exist:" msgstr "В настоящее время работают три сервера сборки:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:185 msgid "_freebsd-current.sentex.ca_ builds:" msgstr "_freebsd-current.sentex.ca_ собирает:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:187 msgid "" "`HEAD` for amd64, arm, i386, i386/pc98, ia64, mips, powerpc, powerpc64, and " "sparc64." msgstr "" "`HEAD` для amd64, arm, i386, i386/pc98, ia64, mips, powerpc, powerpc64 и " "sparc64." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:188 msgid "" "`RELENG_9` and supported 9._X_ branches for amd64, arm, i386, i386/pc98, " "ia64, mips, powerpc, powerpc64, and sparc64." msgstr "" "`RELENG_9` и поддерживаемые ветки 9._X_ для amd64, arm, i386, i386/pc98, " "ia64, mips, powerpc, powerpc64 и sparc64." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:190 msgid "_freebsd-stable.sentex.ca_ builds:" msgstr "_freebsd-stable.sentex.ca_ собирает:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:192 msgid "" "`RELENG_8` and supported 8._X_ branches for amd64, i386, i386/pc98, ia64, " "mips, powerpc and sparc64." msgstr "" "`RELENG_8` и поддерживаемые ветки 8._X_ для amd64, i386, i386/pc98, ia64, " "mips, powerpc и sparc64." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:194 msgid "_freebsd-legacy.sentex.ca_ builds:" msgstr "_freebsd-legacy.sentex.ca_ собирает:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:196 msgid "" "`RELENG_7` and supported 7._X_ branches for amd64, i386, i386/pc98, ia64, " "powerpc, and sparc64." msgstr "" "`RELENG_7` и поддерживаемые ветки 7._X_ для amd64, i386, i386/pc98, ia64, " "powerpc и sparc64." #. type: Title == #: documentation/content/en/books/developers-handbook/testing/_index.adoc:197 #, no-wrap msgid "Official Summary Site" msgstr "Официальный сайт со сводками" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:200 msgid "" "Summaries and logs from the official build servers are available online at " "http://tinderbox.FreeBSD.org[http://tinderbox.FreeBSD.org], hosted by {des} " "and set up as follows:" msgstr "" "Сводки и журналы с официальных серверов сборки доступны в сети по адресу " "http://tinderbox.FreeBSD.org[http://tinderbox.FreeBSD.org], размещены на " "{des} и настроены следующим образом:" #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:202 msgid "" "A man:cron[8] job checks the build servers at regular intervals and " "downloads any new log files using man:rsync[1]." msgstr "" "Задание man:cron[8] проверяет серверы сборки через регулярные интервалы и " "загружает все новые файлы журналов с помощью man:rsync[1]." #. type: Plain text #: documentation/content/en/books/developers-handbook/testing/_index.adoc:202 msgid "Apache is set up to use [.filename]#index.cgi# as `DirectoryIndex`." msgstr "" "Apache настроен на использование [.filename]#index.cgi# в качестве " "`DirectoryIndex`."