Author: rharabien Date: Thu Mar 15 21:28:56 2012 New Revision: 56161
URL: http://svn.reactos.org/svn/reactos?rev=56161&view=rev Log: [AVIFIL32_WINETEST] - Sync to Wine 1.3.37
Modified: trunk/rostests/winetests/avifil32/api.c
Modified: trunk/rostests/winetests/avifil32/api.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/avifil32/api.c?r... ============================================================================== --- trunk/rostests/winetests/avifil32/api.c [iso-8859-1] (original) +++ trunk/rostests/winetests/avifil32/api.c [iso-8859-1] Thu Mar 15 21:28:56 2012 @@ -194,11 +194,11 @@
SetLastError(0xdeadbeef); hres = EditStreamSetNameA(streams[0], winetest0); - todo_wine ok(hres == AVIERR_OK, "0: got 0x%x (expected AVIERR_OK)\n", hres); + ok(hres == AVIERR_OK, "0: got 0x%x (expected AVIERR_OK)\n", hres);
SetLastError(0xdeadbeef); hres = EditStreamSetNameA(streams[1], winetest1); - todo_wine ok(hres == AVIERR_OK, "1: got 0x%x (expected AVIERR_OK)\n", hres); + ok(hres == AVIERR_OK, "1: got 0x%x (expected AVIERR_OK)\n", hres);
if (winetest_interactive) { SetLastError(0xdeadbeef); @@ -222,6 +222,102 @@ }
/* ########################### */ + +static void test_EditStreamSetInfo(void) +{ + PAVISTREAM stream = NULL; + HRESULT hres; + AVISTREAMINFO info, info2; + + hres = CreateEditableStream(&stream, NULL); + ok(hres == AVIERR_OK, "got 0x%08X, expected AVIERR_OK\n", hres); + + /* Size parameter is somehow checked (notice the crash with size=-1 below) */ + hres = EditStreamSetInfo(stream, NULL, 0); + ok( hres == AVIERR_BADSIZE, "got 0x%08X, expected AVIERR_BADSIZE\n", hres); + + hres = EditStreamSetInfo(stream, NULL, sizeof(AVISTREAMINFO)-1 ); + ok( hres == AVIERR_BADSIZE, "got 0x%08X, expected AVIERR_BADSIZE\n", hres); + + if(0) + { + /* Crashing - first parameter not checked */ + EditStreamSetInfo(NULL, &info, sizeof(AVISTREAMINFO) ); + + /* Crashing - second parameter not checked */ + EditStreamSetInfo(stream, NULL, sizeof(AVISTREAMINFO) ); + + EditStreamSetInfo(stream, NULL, -1); + } + + hres = AVIStreamInfo(stream, &info, sizeof(AVISTREAMINFO) ); + ok( hres == 0, "got 0x%08X, expected 0\n", hres); + + /* Does the function check what's it's updating ? */ + +#define IS_INFO_UPDATED(m) do { \ + hres = EditStreamSetInfo(stream, &info, sizeof(AVISTREAMINFO) ); \ + ok( hres == 0, "got 0x%08X, expected 0\n", hres); \ + hres = AVIStreamInfo(stream, &info2, sizeof(AVISTREAMINFO) ); \ + ok( hres == 0, "got 0x%08X, expected 0\n", hres); \ + ok( info2.m == info.m, "EditStreamSetInfo did not update "#m" parameter\n" ); \ + } while(0) + + info.dwStart++; + IS_INFO_UPDATED(dwStart); + info.dwStart = 0; + IS_INFO_UPDATED(dwStart); + + info.wPriority++; + IS_INFO_UPDATED(wPriority); + info.wPriority = 0; + IS_INFO_UPDATED(wPriority); + + info.wLanguage++; + IS_INFO_UPDATED(wLanguage); + info.wLanguage = 0; + IS_INFO_UPDATED(wLanguage); + + info.dwScale++; + IS_INFO_UPDATED(dwScale); + info.dwScale = 0; + IS_INFO_UPDATED(dwScale); + + info.dwRate++; + IS_INFO_UPDATED(dwRate); + info.dwRate = 0; + IS_INFO_UPDATED(dwRate); + + info.dwQuality++; + IS_INFO_UPDATED(dwQuality); + info.dwQuality = 0; + IS_INFO_UPDATED(dwQuality); + info.dwQuality = -2; + IS_INFO_UPDATED(dwQuality); + info.dwQuality = ICQUALITY_HIGH+1; + IS_INFO_UPDATED(dwQuality); + + info.rcFrame.left = 0; + IS_INFO_UPDATED(rcFrame.left); + info.rcFrame.top = 0; + IS_INFO_UPDATED(rcFrame.top); + info.rcFrame.right = 0; + IS_INFO_UPDATED(rcFrame.right); + info.rcFrame.bottom = 0; + IS_INFO_UPDATED(rcFrame.bottom); + + info.rcFrame.left = -1; + IS_INFO_UPDATED(rcFrame.left); + info.rcFrame.top = -1; + IS_INFO_UPDATED(rcFrame.top); + info.rcFrame.right = -1; + IS_INFO_UPDATED(rcFrame.right); + info.rcFrame.bottom = -1; + IS_INFO_UPDATED(rcFrame.bottom); + AVIStreamRelease(stream); +#undef IS_INFO_UPDATED +} +
static void init_test_struct(COMMON_AVI_HEADERS *cah) { @@ -451,6 +547,7 @@ {
AVIFileInit(); + test_EditStreamSetInfo(); test_AVISaveOptions(); test_default_data(); test_amh_corruption();