[Wine-devel] [Office] Советы по взамодействию в разработке Wine

Vitaly Lipatov =?iso-8859-1?q?lav_=CE=C1_etersoft=2Eru?=
Ср Апр 1 13:20:23 MSD 2009


В сообщении от 1 апреля 2009 Anatoly Lyutin написал(a):
> Vitaly Lipatov пишет:
> > Я всё же не могу считать патчи наподобие
> > http://www.winehq.org/pipermail/wine-patches/2008-December/066486.html
> > малопонятным хаком.
>
> Естественно это хороший образец патча, который тяжело "пропихнуть" в
> winehq, потому что:
Я ошибся ссылкой, последний вариант был такой:
http://www.winehq.org/pipermail/wine-patches/2009-January/067827.html


> 1. Нет тестов, даже самых простейших.
> 2. Отсутсвуют установки ошибок.
> 3. Не уверен, но disabled  пункт меню делается по-другому, несовсем
> понятно зачем автор пошёл по такому пути.
Иначе чем указанием MF_DISABLED ? :)

> 4. Надо доказать, что
>
> +        /* It destroys popup menu also */
> +        if (num)
> +            DeleteMenu(hMenu, uPos, MF_BYPOSITION);
>
> необходимо.
Кому доказать? Функция реализована именно так, как это нужно, по спецификации, 
и проверена в реальной работе. Я же исправление к LoadString присылаю.

> 5.  Нет проверок в
> popup = CreatePopupMenu();
> +            InsertMenuW(hMenu, uPos, MF_BYPOSITION|MF_POPUP|MF_STRING,
> (UINT_PTR)popup, menustr);
> +            uPos = -1;
> +            hMenu = popup;
>
> что меню создалось и в него что-то вставилось.

> 6. Не установлено, что делает WinAPI если lphMenu  будет равно NULL
Да, в этом старом варианте было мало проверок на невозможные ситуации.

> Это только те претензии, которые смог увидить я :))
> P.S: На такой большой участок кода нужно в два раза больше тестов.
А я думаю, что на новую реализованную функцию тесты вообще не нужны.

> P.P.S: Этот патч отходит от традиции :
> stub->tests->partly implemented->tests->full implemented->tests.
Сначала мы строим только фундамент, потом на нём живём, потом строим стены, в 
них живём. Если год протянем, делаем крышу.

Остаётся загадкой, где взять OLE-объект, с помощью которого можно тестировать 
эту функцию. Боюсь что его реализация в Wine займёт раз в 10 больше кода, чем 
эта функция :)

-- 
С уважением,
Виталий Липатов
Россия, Санкт-Петербург. www.etersoft.ru
GNU! ALT Linux Team! WINE! WIKI! LaTeX! LyX!


Подробная информация о списке рассылки Wine-devel