<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - WINE/WritingTests</title>
<link>http://freesource.info/wiki/WINE/WritingTests</link>
<description>History/revisions of FreeSource/WINE/WritingTests</description>
<language>en-us</language>
<item>
<title>2008-07-17 11:33:34</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-07-17+11%3A33%3A34</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".wine.writingtests" href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-07-17+11%3A33%3A34">2008-07-17 11:33:34&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests">2008-10-17 19:45:22&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Описание создания тестов из&amp;nbsp;оригинальной документации:&lt;br />
&lt;a href="http://www.winehq.org/site/docs/winedev-guide/testing" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.winehq.org/site/docs/winedev-guide/testing&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-25 11:54:06</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-06-25+11%3A54%3A06</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A54%3A06">2008-06-25 11:54:06&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-07-17+11%3A33%3A34">2008-07-17 11:33:34&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">- модификация trace(). Самая главная функция, без&amp;nbsp;неё тест &amp;ndash; не&amp;nbsp;тест, а&amp;nbsp;вся соль в&amp;nbsp;первом параметре.  Туда передаётся логическое условие, если это&amp;nbsp;условие TRUE, то&amp;nbsp;функция ничего не&amp;nbsp;выводит и&amp;nbsp;счётчик УСПЕШНО пройденных тестов инкрементируется. Если FALSE, то&amp;nbsp;функция дальше работает как&amp;nbsp;trace(), просто выводит всё что&amp;nbsp;ей&amp;nbsp;запихнули, но&amp;nbsp;самое главное &amp;ndash; предваряет вывод строчки отображением ругательства &amp;laquo;test failed: ваша строка&amp;raquo; &amp;ndash; данная строчка &amp;ndash; это&amp;nbsp;заклинание, которое позволяет находить среди горы информации, переданной в&amp;nbsp;поток вывода, тесты, которые упали. Счётчик ПРОВАЛЕННЫХ тестов также плюсуется.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">- модификация trace(). Самая главная функция, без&amp;nbsp;неё тест &amp;ndash; не&amp;nbsp;тест, а&amp;nbsp;вся соль в&amp;nbsp;первом параметре.  Туда передаётся логическое условие, если это&amp;nbsp;условие TRUE, то&amp;nbsp;функция ничего не&amp;nbsp;выводит и&amp;nbsp;счётчик УСПЕШНО пройденных тестов инкрементируется. Если FALSE, то&amp;nbsp;функция дальше работает как&amp;nbsp;trace(), просто выводит всё что&amp;nbsp;ей&amp;nbsp;запихнули, но&amp;nbsp;сапое главное &amp;ndash; предваряет вывод строчки отображением ругательства &amp;laquo;test failed: ваша строка&amp;raquo; &amp;ndash; данная строчка &amp;ndash; это&amp;nbsp;заклинание, которое позволяет находить среди горы информации, переданной в&amp;nbsp;поток вывода, тесты, которые упали. Счётчик ПРОВАЛЕННЫХ тестов также плюсуется.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-25 11:51:13</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-06-25+11%3A51%3A13</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A51%3A13">2008-06-25 11:51:13&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A54%3A06">2008-06-25 11:54:06&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">3. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, а&amp;nbsp;затем следующим письмом исправление, основанное на&amp;nbsp;этом тесте, то&amp;nbsp;в исправлении должны быть строчки, убирающие  todo_wine из&amp;nbsp;теста, либо выставляющие FALSE флагу функции ok_sequence(...).&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">3. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, а&amp;nbsp;затем следующим письмом исправление, основанное на&amp;nbsp;этом тесте. То&amp;nbsp;в исправлении должны быть строчки, убирающие  todo_wine из&amp;nbsp;теста, либо выставляющие FALSE флагу функции ok_sequence(...).&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-25 11:49:55</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-06-25+11%3A49%3A55</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A49%3A55">2008-06-25 11:49:55&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A51%3A13">2008-06-25 11:51:13&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;em>Исключение правда составляют тесты на&amp;nbsp;последовательность (функция  ok_sequence(...)), где&amp;nbsp;последний параметр-флаг должен быть выставлен как&amp;nbsp;FALSE, что&amp;nbsp;говорит о&amp;nbsp;том, что&amp;nbsp;тестируемое поведение не&amp;nbsp;требует доработки и&amp;nbsp;соответствует поведению эталона&lt;/em>&lt;br />
2. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, то&amp;nbsp;он оформляется в&amp;nbsp;соответствии с&amp;nbsp;правилами.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;em>Исключение правда составляют тесты на&amp;nbsp;последовательность (функция  ok_sequence(...)), где&amp;nbsp;последний параметр-флаг должен быть выставлен как&amp;nbsp;FALSE, что&amp;nbsp;говорит о&amp;nbsp;том, что&amp;nbsp;тестируемое поведени не&amp;nbsp;требует доработке и&amp;nbsp;соответсвует поведению эталона&lt;/em>&lt;br />
2. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, то&amp;nbsp;он оформляется в&amp;nbsp;соответсвии с&amp;nbsp;правилами.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-24 18:03:13</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-06-24+18%3A03%3A13</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-24+18%3A03%3A13">2008-06-24 18:03:13&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-25+11%3A49%3A55">2008-06-25 11:49:55&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Глобально в&amp;nbsp;Wine тесты делятся на&amp;nbsp;два вила:&lt;br />
1. Тест успешно проходит в&amp;nbsp;Windows и&amp;nbsp;в Wine.&lt;br />
2. Тест успешно проходит в&amp;nbsp;Windows, но&amp;nbsp;проваливается в&amp;nbsp;Wine.&lt;br />
Все&amp;nbsp;остальные тесты считаются по-умолчанию неверными.&lt;br />
Тесты из&amp;nbsp;первой группы являются регресс-тестами, либо тестами-пояснениями. Никакого особого оформления к&amp;nbsp;ним не&amp;nbsp;требуется. &lt;br />
&lt;em>Исключение правда составляют тесты на&amp;nbsp;последовательность (функция  ok_sequence(...)), где&amp;nbsp;последний параметр-флаг должен быть выставлен как&amp;nbsp;FALSE, что&amp;nbsp;говорит о&amp;nbsp;том, что&amp;nbsp;тестируемое поведени не&amp;nbsp;требует доработке и&amp;nbsp;соответсвует поведению эталона&lt;/em>&lt;br />
Для&amp;nbsp;оформления тестов второй группы существует несколько несложных правил:&lt;br />
1. Если для&amp;nbsp;тестирования используется функция ok(...), то&amp;nbsp;перед её вызовом необходимо поставить оператор todo_wine{ }, это&amp;nbsp;будет символизировать то, что&amp;nbsp;функционирование Wine, при&amp;nbsp;данных условиях, отличается от&amp;nbsp;работы Windows и&amp;nbsp;Wine следует доработать.&lt;br />
2. Если для&amp;nbsp;тестирования используется функция  ok_sequence(...), то&amp;nbsp;последний параметр-флаг должен быть выставлен как&amp;nbsp;TRUE, по&amp;nbsp;тем же&amp;nbsp;причинам, что&amp;nbsp;и&amp;nbsp;в пункте 1.&lt;br />
Несколько правил об&amp;nbsp;отправке тестов в&amp;nbsp;рассылку:&lt;br />
1. Если отправляется тест из&amp;nbsp;второй группы вместе с&amp;nbsp;исправлением неправильной работы Wine одним патчем, то&amp;nbsp;todo_wine или&amp;nbsp;TRUE в&amp;nbsp;ok_sequence(...) выставлять не&amp;nbsp;следует, но&amp;nbsp;стоит описать в&amp;nbsp;теле письма, то&amp;nbsp;что добавляется тест и&amp;nbsp;сразу исправление кода.&lt;br />
2. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, то&amp;nbsp;он оформляется в&amp;nbsp;соответсвии с&amp;nbsp;правилами.&lt;br />
3. Если отправляется  только тест из&amp;nbsp;второй группы отдельным письмом, а&amp;nbsp;затем следующим письмом исправление, основанное на&amp;nbsp;этом тесте. То&amp;nbsp;в исправлении должны быть строчки, убирающие  todo_wine из&amp;nbsp;теста, либо выставляющие FALSE флагу функции ok_sequence(...).&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-24 17:49:28</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2008-06-24+17%3A49%3A28</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-24+17%3A49%3A28">2008-06-24 17:49:28&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-24+18%3A03%3A13">2008-06-24 18:03:13&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Часто, после написания теста, есть смысл поделиться им&amp;nbsp;с сообществом разработчиков wine. Несколько слов об&amp;nbsp;оформлении тестов для&amp;nbsp;отправки их&amp;nbsp;в рассылку.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-10-13 13:59:20</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2007-10-13+13%3A59%3A20</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2007-10-13+13%3A59%3A20">2007-10-13 13:59:20&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2008-06-24+17%3A49%3A28">2008-06-24 17:49:28&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8076-1">&lt;/a>&lt;h3>Share your ideas&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2007-09-20 17:41:42</title>
<link>http://freesource.info/wiki/WINE/WritingTests/show?time=2007-09-20+17%3A41%3A42</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/WINE/WritingTests&amp;" class="">/WINE&amp;nbsp;/&amp;nbsp;Writing&amp;nbsp;Tests&lt;/a> за &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2007-09-20+17%3A41%3A42">2007-09-20 17:41:42&lt;/a> и &lt;a href="http://freesource.info/wiki/WINE/WritingTests?time=2007-10-13+13%3A59%3A20">2007-10-13 13:59:20&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Сперва стоит уточнить, что&amp;nbsp;мы&amp;nbsp;занимаемся разработкой, доработкой и&amp;nbsp;поддержкой нашего продукта WINE@Etersoft, который базируется на&amp;nbsp;свободном проекте Wine.&lt;br />
Но&amp;nbsp;80% работы &amp;ndash; это&amp;nbsp;системная отладка: поиск и&amp;nbsp;безжалостное уничтожение ошибок, бесконечная шлифовка кода Wine, высшая форма которой является признание получившегося патча сообществом Wine и&amp;nbsp;включение его&amp;nbsp;в&amp;nbsp;cvs.  Поэтому тесты необходимы. На&amp;nbsp;нынешнем этапе развития Wine уже&amp;nbsp;реализовано порядка 20 000 функций &lt;span class="missingpage">Win&amp;nbsp;API&lt;/span>&lt;a href="http://freesource.info/wiki/WinAPI/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> и&amp;nbsp;невозможно прикладывать отдельно каждый патч и&amp;nbsp;проверять &amp;ndash; вносит ли&amp;nbsp;он полезные изменения и&amp;nbsp;что более важно &amp;ndash; не&amp;nbsp;ломает ли&amp;nbsp;он уже&amp;nbsp;работающее? Сегодня практически стало стандартом, когда вместе с&amp;nbsp;отправкой патча высылается тест, наглядно демонстрирующий изменения, вносимые исправлением. Но&amp;nbsp;в ряде случаев очень приветствуется и&amp;nbsp;простое написание тестов, демонстрирующие ошибки или&amp;nbsp;различия реализации &lt;span class="missingpage">Win&amp;nbsp;API&lt;/span>&lt;a href="http://freesource.info/wiki/WinAPI/edit?add=1&amp;" title="Создать эту страницу">?&lt;/a> в&amp;nbsp;ОС разных версий, так&amp;nbsp;как это&amp;nbsp;позволяет &amp;laquo;задокументировать&amp;raquo; проблему и&amp;nbsp;иметь надёжный способ её повторить ( ведь не&amp;nbsp;всем же&amp;nbsp;нравится читать описание на&amp;nbsp;пол экрана как&amp;nbsp;проявляется бага, а&amp;nbsp;затем ещё пол&amp;nbsp;часа тыкать мышкой :) ).&lt;br />
Хорошо написанный тест чётко показывает различие в&amp;nbsp;реализации API&amp;nbsp;в&amp;nbsp;Wine и&amp;nbsp;Windows, он&amp;nbsp;может прогоняться автоматически, т.к. должен быть интегрирован в&amp;nbsp;систему тестирования Wine. &amp;laquo;Наша&amp;raquo; ситуация &amp;ndash; это&amp;nbsp;тест ИДЕАЛЬНО проходит в&amp;nbsp;Windows, но&amp;nbsp;однозначно и&amp;nbsp;постоянно падает в&amp;nbsp;одном и&amp;nbsp;том же&amp;nbsp;месте, будучи запущенным в&amp;nbsp;Wine, только после этого можно приступать к&amp;nbsp;исправлению ошибки. Кстати, грамотно написанный тест автоматически убавляет 50% работы, потому что&amp;nbsp;часто не&amp;nbsp;сложно исправить ошибку, но&amp;nbsp;очень трудно локализовать её.&lt;br />
И&amp;nbsp;ещё одно:  существующий тест &amp;ndash; это&amp;nbsp;весьма весомый аргумент при&amp;nbsp;принятии исправлений, который позволяет на&amp;nbsp;тратить много слов на&amp;nbsp;объяснения вида &amp;laquo;Но как&amp;nbsp;это работает, и&amp;nbsp;почему в&amp;nbsp;Windows это&amp;nbsp;устроено так&amp;nbsp;неординарно (глупо) ?!". Плюс, если кто-то поломает что-то в&amp;nbsp;том же&amp;nbsp;модуле, в&amp;nbsp;котором Вы&amp;nbsp;вносили исправления, то&amp;nbsp;тест лишает Вас&amp;nbsp;головной боли вида: &amp;laquo;От чего отлаженный механизм перестал работать?&amp;raquo;, &amp;ndash; и&amp;nbsp;позволяет быстро найти вредителя, откладывая патчи и&amp;nbsp;прогоняя тест. Поверьте &amp;ndash; хороший тест сэкономит Вам&amp;nbsp;кучу времени и&amp;nbsp;нервов, а&amp;nbsp;это очень дорогие вещи сейчас.&lt;br />
&lt;ol type="2">&lt;li> Найти функцию, куда следует добавить наши 2 &amp;ndash; 3 строчки, если же&amp;nbsp;такой функции нет, то&amp;nbsp;дополнительное задание &amp;ndash; придумать ей&amp;nbsp;имя и&amp;nbsp;её создать. В&amp;nbsp;нашем случае это&amp;nbsp;будет функция &lt;span class="cite">static void test_listbox_height(void)&lt;/span>.&lt;/li>&lt;/ol>
Ремарка: Если же&amp;nbsp;пришлось создавать свою функцию, то&amp;nbsp;чтобы она&amp;nbsp;запустилась при&amp;nbsp;прогоне теста, следует в&amp;nbsp;самом конце модуля внутри функции  START_TEST(имя тестового модуля)  добавить вызов своей функции:&lt;br />
&lt;!--notypo-->{{backlinks}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Сперва стоит уточнить, что&amp;nbsp;мы&amp;nbsp;занимается разработкой, доработкой и&amp;nbsp;поддержкой нашего продукта Wine@Etersoft, который базируется на&amp;nbsp;Open Source проекте Wine.&lt;br />
Но&amp;nbsp;80% работы &amp;ndash; это&amp;nbsp;системная отладка &amp;ndash; поиск и&amp;nbsp;безжалостное уничтожение ошибок, бесконечная шлифовка кода Wine, высшая форма которой является признание получившегося патча сообществом wine и&amp;nbsp;включение его&amp;nbsp;в&amp;nbsp;cvs.  Поэтому тесты необходимы. На&amp;nbsp;нынешнем этапе развития Wine уже&amp;nbsp;реализовано порядка 20 000 Win&amp;nbsp;Api функций и&amp;nbsp;невозможно прикладывать отдельно каждый патч и&amp;nbsp;проверять &amp;ndash; вносит ли&amp;nbsp;он полезные изменения и&amp;nbsp;что более важно &amp;ndash; не&amp;nbsp;ломает ли&amp;nbsp;он уже&amp;nbsp;работающее? Сегодня практически стало стандартом, когда вместе с&amp;nbsp;отправкой патча высылается тест, наглядно демонстрирующий изменения, вносимые исправлением. Но&amp;nbsp;в ряде случаев очень приветствуется и&amp;nbsp;простое написание тестов, демонстрирующие ошибки или&amp;nbsp;различия реализации Win&amp;nbsp;Api в&amp;nbsp;ОС разных версий, так&amp;nbsp;как это&amp;nbsp;позволяет &amp;laquo;задокументировать&amp;raquo; проблему и&amp;nbsp;иметь надёжный способ её повторить ( ведь не&amp;nbsp;всем же&amp;nbsp;нравится читать описание на&amp;nbsp;пол экрана как&amp;nbsp;проявляется бага, а&amp;nbsp;затем ещё пол&amp;nbsp;часа тыкать мышкой :) ).&lt;br />
Хорошо написанный тест чётко показывает различие в&amp;nbsp;реализации api&amp;nbsp;в&amp;nbsp;Wine и&amp;nbsp;Windows, он&amp;nbsp;может прогоняться автоматически, т.к. должен быть интегрирован в&amp;nbsp;систему тестирования Wine. &amp;laquo;Наша&amp;raquo; ситуация &amp;ndash; это&amp;nbsp;тест ИДЕАЛЬНО проходит в&amp;nbsp;Windows, но&amp;nbsp;однозначно и&amp;nbsp;постоянно падает в&amp;nbsp;одном и&amp;nbsp;том же&amp;nbsp;месте, только после этого можно приступать к&amp;nbsp;исправлению ошибки. Кстати, грамотно написанный тест автоматически убавляет 50% работы, потому что&amp;nbsp;часто не&amp;nbsp;сложно исправить ошибку, но&amp;nbsp;очень трудно локализовать её.&lt;br />
И&amp;nbsp;ещё одно:  существующий тест &amp;ndash; это&amp;nbsp;весьма весомый аргумент при&amp;nbsp;принятии исправлений, который позволяет на&amp;nbsp;тратить много слов на&amp;nbsp;объяснения вида &amp;laquo;Но как&amp;nbsp;это работает, и&amp;nbsp;почему в&amp;nbsp;Windows это&amp;nbsp;устроено так&amp;nbsp;неординально (глупо) ?!". Плюс, если кто-то поломает что-то в&amp;nbsp;том же&amp;nbsp;модуле, в&amp;nbsp;котором Вы&amp;nbsp;вносили исправления, то&amp;nbsp;тест лишает Вас&amp;nbsp;головной боли вида: &amp;laquo;От чего отлаженный механизм перестал работать?&amp;raquo;,- и&amp;nbsp;позволяет быстро найти вредителя, откладывая патчи и&amp;nbsp;прогоняя тест. Поверьте &amp;ndash; хороший тест сэкономит Вам&amp;nbsp;кучу времени и&amp;nbsp;нервов, а&amp;nbsp;это очень дорогие вещи сейчас.&lt;br />
&lt;ol type="2">&lt;li> Найти функцию, куда следует дабавить наши 2 &amp;ndash; 3 строчки, если же&amp;nbsp;такой функции нет, то&amp;nbsp;дополнительное задание &amp;ndash; придумать ей&amp;nbsp;имя и&amp;nbsp;её создать. В&amp;nbsp;нашем случае это&amp;nbsp;будет функция &lt;span class="cite">static void test_listbox_height(void)&lt;/span>.&lt;/li>&lt;/ol>
Ремарка: Если же&amp;nbsp;пришлось создавать свою функцию, то&amp;nbsp;чтобы она&amp;nbsp;запустилась при&amp;nbsp;прогоне теста, следует в&amp;nbsp;самом конце модуля внутри функции  START_TEST(имя тестового модуля)  добавить вызов своей фунцкии:&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
