.\" Automatically generated by Podwrapper::Man 1.44.2 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "virt-v2v-test-harness 1" .TH virt-v2v-test-harness 1 "2021-11-24" "virt-v2v-1.44.2" "Virtualization Support" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "НАЗВА" .IX Header "НАЗВА" virt\-v2v\-test\-harness — використовується для тестування virt\-v2v на прикладах з реального життя .SH "КОРОТКИЙ ОПИС" .IX Header "КОРОТКИЙ ОПИС" .Vb 1 \& open V2v_test_harness \& \& let test = "rhel_45_i386_fv" \& let test_plan = { \& default_plan with \& boot_plan = Boot_to_screenshot (test ^ "\-login.ppm") \& } \& \& let () = run ~test ~test_plan () .Ve .SH "ОПИС" .IX Header "ОПИС" \&\fBvirt\-v2v\fR\|(1) перетворює фізичні машини зі сторонніх гіпервізорів для запуску під керуванням libvirt, OpenStack, oVirt, Red Hat Virtualisation (\s-1RHV\s0) або одним із інших призначень. .PP Virt\-v2v\-test\-harness — невеличка бібліотека (назва модуля: \&\f(CW\*(C`V2v_test_harness\*(C'\fR), яка використовується virt\-v2v для обробки набору тестів, які містять справжні віртуальні машини. .PP Це працює як комплекс тестування: вибирається тест, запускається virt\-v2v для нього (у недеструктивний спосіб), потім виконується тестове завантаження результату. Програма переконується, що тест було успішно перетворено, він успішно завантажується і досягає у роботі певного етапу (такого як на еталонному знімку). Програма також може перевірити, чи було під час перетворення створено, змінено або вилучено очікувані файли у гостьовій системі. .SS "ОТРИМАННЯ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" .IX Subsection "ОТРИМАННЯ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" Оскільки тести є насправді віртуальними машинами, ми поділили їх на дві групи: тести, які поширюються вільно, і тести, які є пропрієтарними. Перші є образами, подібними до образів Fedora або CentOS, які є вільним програмним забезпеченням. Другі — образи, які подібні до образів Windows або Red Hat Enterprise Linux. .PP Вільно доступні і поширювати тести можна отримати тут: http://git.annexia.org/?p=virt\-v2v\-test\-cases\-free.git \fI\f(BIще не є доступними\fI\fR .PP Пропрієтарні тести можна отримати зі сторінки http://git.annexia.org/?p=virt\-v2v\-test\-cases\-nonfree.git У тестах \fIне\fR міститься самих образів пропрієтарних систем, які з причин ліцензування не є загальнодоступними. .PP Тести є образами дисків із дуже великими розмірами — від 250 МБ до десятків гігабайт \fIкожен\fR. Це означає, що поширення тестів може бути дуже тривалим і вимогливим до ресурсів завданням. Ми використовуємо для поширення образів тестів \fBgit\-annex\fR\|(1). .SS "ВИМОГИ" .IX Subsection "ВИМОГИ" Для тестування рекомендуємо використовувати бездіяльну машину. Для виконання тестів вам знадобиться доволі \fBбагато вільного місця на диску\fR, більше 100 ГБ. Крім того, на тестовій машині має бути багато оперативної пам'яті, принаймні 16 ГБ. .SS "ОТРИМАННЯ КОМПЛЕКСУ ДЛЯ ТЕСТУВАННЯ" .IX Subsection "ОТРИМАННЯ КОМПЛЕКСУ ДЛЯ ТЕСТУВАННЯ" Для запуску тестів вам знадобиться комплекс тестів virt\-v2v. .PP Модуль OCaml називається \f(CW\*(C`V2v_test_harness\*(C'\fR. .PP The easiest way is to compile libguestfs from source (\fInote\fR do not install it). The test harness will be in \f(CW\*(C`virt\-v2v.git/test\-harness\*(C'\fR .PP Крім того, комплекс тестів можна встановити як модуль OCaml. .SS "ВИКОНАННЯ ТЕСТУВАННЯ" .IX Subsection "ВИКОНАННЯ ТЕСТУВАННЯ" Щойно ви отримаєте вільно розповсюджувані тести зі сховища, віддайте такі команди: .PP .Vb 3 \& ./configure [\-\-with\-test\-harness=/path/to/virt\-v2v/test\-harness] \& make \& make check \-k .Ve .PP Рекомендуємо скористатися параметром \fI\-k\fR, щоб тестування не зупинялося після першої ж помилки. .SS "ПАРАЛЕЛЬНЕ ТЕСТУВАННЯ" .IX Subsection "ПАРАЛЕЛЬНЕ ТЕСТУВАННЯ" Запустити тести паралельно можна за допомогою такої команди: .PP .Vb 1 \& make check \-k \-j .Ve .PP (наприклад \fI\-j2\fR, щоб запустити 2 тести паралельно). Будьте обережні із паралельним запуском надто великої кількості тестів — це може спричинити помилки, які не пов'язано із помилковою роботою бібліотеки. .SS "ТЕСТУВАННЯ ОСНОВНОЇ ГІЛКИ РОЗРОБКИ \s-1VIRT\-V2V\s0" .IX Subsection "ТЕСТУВАННЯ ОСНОВНОЇ ГІЛКИ РОЗРОБКИ VIRT-V2V" Використання \f(CW\*(C`make check\*(C'\fR призведе до використання виконуваного файла \&\f(CW\*(C`virt\-v2v\*(C'\fR, який зберігається у одному з каталогів зі змінної середовища \&\f(CW$PATH\fR. .PP Якщо вами було зібрано libguestfs з початкових кодів і ви хочете перевірити зібрану версію virt\-v2v, скористайтеся скриптом libguestfs \f(CW\*(C`run\*(C'\fR (зберігається у каталозі збирання верхнього рівня у каталозі із початковими кодами libguestfs). Приклад: .PP .Vb 1 \& ../libguestfs/run make check \-k .Ve .SH "НАПИСАННЯ НОВИХ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" .IX Header "НАПИСАННЯ НОВИХ ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" Якщо ви цікавитеся написанням тестів, пропонуємо вам розпочати із отримання вільно розповсюджуваних тестів або, принаймні, ознайомлення з ними у мережі. .PP Крім того, у вас має бути комплекс для тестування virt\-v2v — див. \*(L"ОТРИМАННЯ КОМПЛЕКСУ ДЛЯ ТЕСТУВАННЯ\*(R" вище. .SS "ФАЙЛИ КОЖНОГО З ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" .IX Subsection "ФАЙЛИ КОЖНОГО З ПРИКЛАДІВ ДЛЯ ТЕСТУВАННЯ" Кожен із прикладів для тестування складається з таких компонентів: .IP "\fIтест\fR.img.xz" 4 .IX Item "тест.img.xz" Образ диска віртуальної машини до перетворення. Зазвичай, його має бути перетворено у простий формат (raw) і стиснуто за допомогою xz. .IP "\fIтест\fR.ova" 4 .IX Item "тест.ova" Крім того, можна скористатися \s-1OVA,\s0 експортованим з VMware. .IP "\fItest\fR.xml" 4 .IX Item "test.xml" \&\s-1XML\s0 libvirt, який використовується як вхідні дані virt\-v2v. Див. обговорення щодо \fI\-i libvirtxml\fR на сторінці підручника щодо \fBvirt\-v2v\fR\|(1). .IP "\fItest\fR.ppm" 4 .IX Item "test.ppm" Необов'язковий знімок екрана або знімки екрана. .Sp Ви можете не надавати «відомі правильні» знімки екрана, надати один або декілька таких знімків, які відповідають проміжним крокам завантаження гостьової системи. Корисно робити такі знімки на етапах, коли гостьова система виконує якісь тривалі дії. Це надасть комплексу тестування дані, за допомогою яких він зможе визначити, чи слід дозволяти гостьовій системі продовжувати завантаження. .Sp Ви можете не вказувати «остаточний» знімок екрана або вказати один такий знімок. Це часто знімок вікна входу до системи, який вказує на те, що гостьову систему було успішно завантажено. .Sp Знімки вікон створюються за допомогою \fBvirsh\fR\|(1). Порівняння знімків вікон із еталонними знімками виконується за допомогою програми \fBcompare\fR\|(1) з комплекту ImageMagick. .IP "\fItest\fR.ml" 4 .IX Item "test.ml" Сам приклад для тестування — див. нижче. .SS "НАПИСАННЯ ТЕСТУ" .IX Subsection "НАПИСАННЯ ТЕСТУ" Файл тестування (\fI*.ml\fR) використовується для керування комплексом тестування. Його мінімальна версія виглядає десь так: .PP .Vb 1 \& open V2v_test_harness \& \& let test = "short_name" \& \& let () = run ~test () .Ve .PP Це має проінструктувати комплекс тестування про те, що слід: .IP "\(bu" 4 Розпакувати \fI\fIshort_name\fI.img.xz\fR .IP "\(bu" 4 Запустити \f(CW\*(C`virt\-v2v \-i libvirtxml \f(CIshort_name\f(CW.xml [...]\*(C'\fR .IP "\(bu" 4 Завантажити отриману гостьову систему і перевірити, чи виконує вона запис на свій диск і чи стає після цього диск бездіяльним. .PP Вище наведено надто спрощене тестування. Реалістичнішим варіантом був ви варіант із перевіркою того, чи гостьова система досягла остаточного етапу завантаження (за знімком), наприклад сторінки входу до системи. Для реалізації такої перевірки вам слід вказати параметр \f(CW\*(C`~test_plan\*(C'\fR: .PP .Vb 1 \& open V2v_test_harness \& \& let test = "short_name" \& let test_plan = { \& default_plan with \& boot_plan = Boot_to_screenshot (test ^ ".ppm") \& } \& \& let () = run ~test ~test_plan () .Ve .PP Ще надійніший варіант тестування можна створити, якщо виконуватиметься тестування після перетворення і після завантаження із перевіркою образу диска (за допомогою libguestfs) з метою переконатися, що у образі диска у очікуваний спосіб створюються, змінюються та вилучаються файли. Щоб дізнатися більше про те, як цього досягти, ознайомтеся із вмістом файла \&\fIV2v_test_harness.mli\fR. .SS "ФАЙЛИ, ЯКІ СТВОРЮЮТЬСЯ ПІД ЧАС ВИКОНАННЯ ТЕСТУВАННЯ" .IX Subsection "ФАЙЛИ, ЯКІ СТВОРЮЮТЬСЯ ПІД ЧАС ВИКОНАННЯ ТЕСТУВАННЯ" Під час виконання тестування може бути створено такі файли: .IP "\fItest\fR\-\fIyyyymmdd-hhmmss\fR.scrn" 4 .IX Item "test-yyyymmdd-hhmmss.scrn" Знімки графічної консолі гостьової операційної системи. Такі знімки корисні для написання тестів або діагностики помилок під час тестування. .Sp Форматом знімків екрана є Portable Pixmap (\s-1PPM\s0). .IP "\fItest\fR.img" 4 .IX Item "test.img" Нестиснений початковий образ диска (до перетворення). .IP "\fItest\fR\-converted\-sda" 4 .IX Item "test-converted-sda" .PD 0 .IP "\fItest\fR\-converted.xml" 4 .IX Item "test-converted.xml" .PD Результат перетворення, тобто стан після виконання virt\-v2v, але перед тестовим завантаженням гостьової системи. Див. сторінку підручника щодо \&\fBvirt\-v2v\fR\|(1), щоб ознайомитися із описом параметра \fI\-o local\fR. .Sp Формат образу диска — qcow2. .IP "\fItest\fR\-booted\-sda" 4 .IX Item "test-booted-sda" Образ диска після тестового завантаження. Це файл qcow2, у якому з метою заощадження місця на диску використовується як диск резервної пам'яті файл \&\fItest\fR\-converted\-sda. .SH "ФАЙЛИ" .IX Header "ФАЙЛИ" .IP "\fI\f(CI$ocamllibdir\fI/v2v_test_harness/v2v_test_harness.mli\fR" 4 .IX Item "$ocamllibdir/v2v_test_harness/v2v_test_harness.mli" Інтерфейс тестування бібліотеки. Ознайомтеся, що дізнатися більше про можливості програмування. .ie n .IP """$ocamllibdir/v2v_test_harness/META""" 4 .el .IP "\f(CW$ocamllibdir/v2v_test_harness/META\fR" 4 .IX Item "$ocamllibdir/v2v_test_harness/META" Файл \s-1META\s0 findlib, який надає вам змогу користуватися бібліотекою з \&\fBocamlfind\fR\|(1). .PP Зауваження: щоб визначити поточне значення \f(CW$ocamllibdir\fR, віддайте команду \&\f(CW\*(C`ocamlc \-where\*(C'\fR .SH "ТАКОЖ ПЕРЕГЛЯНЬТЕ" .IX Header "ТАКОЖ ПЕРЕГЛЯНЬТЕ" \&\fBvirt\-v2v\fR\|(1), \fBvirt\-p2v\fR\|(1), \fBguestfs\fR\|(3), \fBvirsh\fR\|(1), \fBcompare\fR\|(1), \&\fBgit\-annex\fR\|(1), http://libguestfs.org/. .SH "АВТОРИ" .IX Header "АВТОРИ" Richard W.M. Jones http://people.redhat.com/~rjones/ .SH "АВТОРСЬКІ ПРАВА" .IX Header "АВТОРСЬКІ ПРАВА" Copyright (C) 2014\-2020 Red Hat Inc. .SH "LICENSE" .IX Header "LICENSE" .SH "BUGS" .IX Header "BUGS" To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools .PP To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools .PP When reporting a bug, please supply: .IP "\(bu" 4 The version of libguestfs. .IP "\(bu" 4 Where you got libguestfs (eg. which Linux distro, compiled from source, etc) .IP "\(bu" 4 Describe the bug accurately and give a way to reproduce it. .IP "\(bu" 4 Run \fBlibguestfs\-test\-tool\fR\|(1) and paste the \fBcomplete, unedited\fR output into the bug report.