Re: [PATCH 10/10] add tests for SHOpenRegStream2A and SHCreateMemStream
Peter Oberndorfer <kumbayo84(a)arcor.de> writes:
+#define test_streamsize(stream, size) \ +{ \ + STATSTG stat; \ + HRESULT result; \ + result = IStream_Stat(stream, &stat, STATFLAG_NONAME); \ + ok(result == S_OK, "IStream::Stat failed %08x\n", result); \ + ok(stat.cbSize.QuadPart == size, "Stat size wrong\n"); \ +} + +#define test_value_type(name, wantedtype) \ +{ \ + LONG retval; \ + DWORD type; \ + retval = RegQueryValueExA(hBaseKey, name, NULL, &type, NULL, NULL); \ + ok(retval == ERROR_SUCCESS, "RegQueryValueExA should succeed, error %d\n", retval); \ + ok(type == wantedtype, "type of key wrong. wanted %d, got %d\n", wantedtype, type); \ +} + +#define test_value_not_exist(name) \ +{ \ + LONG retval; \ + retval = RegQueryValueExA(hBaseKey, name, NULL, NULL, NULL, NULL); \ + ok(retval == ERROR_FILE_NOT_FOUND, "RegQueryValueExA returned wrong error %d\n", retval); \ +} + +/* older versions (Win98) seem broken, they do not delete the key on close when it is empty */ +#define test_value_type_broken(name, wantedtype) \ +{ \ + LONG retval; \ + DWORD type; \ + retval = RegQueryValueExA(hBaseKey, name, NULL, &type, NULL, NULL); \ + ok(retval == ERROR_SUCCESS, "RegQueryValueExA should succeed, error %d\n", retval); \ + ok(type == wantedtype || broken(type != wantedtype), "type of key wrong. wanted %d, got %d\n", wantedtype, type); \ +} + +#define test_value_not_exist_broken(name) \ +{ \ + LONG retval; \ + retval = RegQueryValueExA(hBaseKey, name, NULL, NULL, NULL, NULL); \ + ok((retval == ERROR_FILE_NOT_FOUND) || broken(retval == ERROR_SUCCESS), \ + "RegQueryValueExA returned wrong error %d\n", retval); \ +}
Please avoid hiding the code inside macros. When you have only a couple of lines just spell things out explicitly. For larger things write an inline function. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard