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?rev=56161&r1=56160&r2=56161&view=diff
==============================================================================
--- 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();


Reply via email to