On 09/11/2018 03:26 PM, Zhiyi Zhang wrote:
+/* Text field conversion test behavior flags. */ +enum test_conversion_flags +{ + CONVERT_SEND = 0x01, + NOT_CONVERT_SEND = 0x02, + CONVERT_RECEIVE = 0x04, + NOT_CONVERT_RECEIVE = 0x08, + NULL_SEND_EMPTY = 0x10, + NOT_NULL_SEND_EMPTY = 0x20 +}; I think those should be called DONT_*, or changed to SEND_NOT_CONVERTED, or DONT_CONVERT_ON_SEND. or similar. And null case something like SEND_EMPTY_IF_NULL, otherwise it's hard to understand without looking at what it does. By the way, why is it necessary to have both flags in tests and not in implementation?
+/* Send notify to test text field conversion. In parent proc notify_generic_text_handler() handles these messages */ +static void test_notify_generic_text_helper(HWND pager, void *ptr, size_t size, UINT *mask, UINT required_mask, + WCHAR **text, INT *text_max, UINT code_unicode, UINT code_ansi, DWORD flags) +{ + const struct notify_test_send_data *send_datas; + const struct notify_test_receive_data *receive_datas; I don't think 'datas' is the word, you can drop _data from structure names, and use send_data for variable.
+static void _send_notify(HWND pager, UINT unicode, UINT ansi, LPARAM lParam, BOOL code_change) +{ + NMHDR *hdr = (NMHDR *)lParam; + + notify_test_info.unicode = unicode; + notify_test_info.id_from = 1; + notify_test_info.hwnd_from = child1_wnd; + notify_test_info.ansi = ansi; + notify_test_info.received = FALSE; + + hdr->code = unicode; + hdr->idFrom = 1; + hdr->hwndFrom = child1_wnd; + + SendMessageW(pager, WM_NOTIFY, hdr->idFrom, lParam); + ok(notify_test_info.received, "Expect notification received\n"); + ok(hdr->code == code_change ? ansi : unicode, "Expect 0x%08x, got 0x%08x\n", hdr->code, + code_change ? ansi : unicode); +} + +#define send_notify(a, b, c, d) _send_notify(pager, a, b, c, d)
Saving one argument is not worth it, it's usually done like that if you want to pass line number to ok_(), otherwise I don't see a point.
+ for (i = 0; i < ARRAY_SIZE(paras); i++) + { + const struct generic_text_helper_para *p = paras + i; + test_notify_generic_text_helper(pager, p->ptr, p->size, p->mask, p->required_mask, p->text, p->text_max, + p->code_unicode, p->code_ansi, p->flags); + } Is it possible to pass structure pointer here?