Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/ru/books/developers-handbook/testing/_index.po
18099 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# Vladlen Popolitov <[email protected]>, 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-04-05 04:45+0000\n"
"Last-Translator: Vladlen Popolitov <[email protected]>\n"
"Language-Team: Russian <https://translate-dev.freebsd.org/projects/"
"documentation/booksdevelopers-handbooktesting_index/ru/>\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`."