[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