Robert Shearman : oleaut: Add some more VarFormat tests and fix the VarMod decimal test.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Mar 6 04:50:45 CST 2006


Module: wine
Branch: refs/heads/master
Commit: e5b2c146657c9e0f1b2489feb9da8b0bcdc17858
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=e5b2c146657c9e0f1b2489feb9da8b0bcdc17858

Author: Robert Shearman <rob at codeweavers.com>
Date:   Sun Mar  5 13:36:39 2006 +0000

oleaut: Add some more VarFormat tests and fix the VarMod decimal test.

---

 dlls/oleaut32/tests/vartest.c |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c
index 65c5cfd..2da6371 100644
--- a/dlls/oleaut32/tests/vartest.c
+++ b/dlls/oleaut32/tests/vartest.c
@@ -1731,6 +1731,9 @@ static void test_VarFormat(void)
   VARFMT(VT_I4,V_I4,1,"000###",S_OK,"000001");
   VARFMT(VT_I4,V_I4,1,"#00##00#0",S_OK,"00000001");
   VARFMT(VT_I4,V_I4,1,"1#####0000",S_OK,"10001");
+  todo_wine {
+  VARFMT(VT_I4,V_I4,100000,"#,###,###,###",S_OK,"100,000");
+  }
   VARFMT(VT_R8,V_R8,1.23456789,"0#.0#0#0#0#0",S_OK,"01.234567890");
   VARFMT(VT_R8,V_R8,1.2,"0#.0#0#0#0#0",S_OK,"01.200000000");
   VARFMT(VT_R8,V_R8,9.87654321,"#0.#0#0#0#0#",S_OK,"9.87654321");
@@ -1779,6 +1782,14 @@ static void test_VarFormat(void)
   pVarFormat(&in,NULL,fd,fw,flags,&out); /* Would crash if out is cleared */
   out = NULL;
 
+  /* VT_NULL */
+  V_VT(&in) = VT_NULL;
+  hres = pVarFormat(&in,NULL,fd,fw,0,&out);
+  todo_wine {
+  ok(hres == S_OK, "VarFormat failed with 0x%08lx\n", hres);
+  ok(out == NULL, "expected NULL formatted string\n");
+  }
+
   /* Invalid args */
   hres = pVarFormat(&in,NULL,fd,fw,flags,NULL);
   ok(hres == E_INVALIDARG, "Null out: expected E_INVALIDARG, got 0x%08lx\n", hres);
@@ -2450,6 +2461,25 @@ static void test_VarMod(void)
   ok(hres == S_OK && V_VT(&vDst) == VT_I4 && V_I4(&vDst) == 0,
      "VarMod: expected 0x%lx,%d,%d, got 0x%lX,%d,%ld\n", S_OK, VT_I4, 0, hres, V_VT(&vDst), V_I4(&vDst));
 
+  /* some decimals */
+  todo_wine {
+  V_VT(&v1) = VT_DECIMAL;
+  V_VT(&v2) = VT_DECIMAL;
+  VarDecFromI4(100, &V_DECIMAL(&v1));
+  VarDecFromI4(10, &V_DECIMAL(&v2));
+  hres = pVarMod(&v1,&v2,&vDst);
+  ok(hres == S_OK && V_VT(&vDst) == VT_I4 && V_I4(&vDst) == 0,
+     "VarMod: expected 0x%lx,%d,%d, got 0x%lX,%d,%ld\n", S_OK, VT_I4, 0, hres, V_VT(&vDst), V_I4(&vDst));
+
+  V_VT(&v1) = VT_I4;
+  V_VT(&v2) = VT_DECIMAL;
+  V_I4(&v1) = 100;
+  VarDecFromI4(10, &V_DECIMAL(&v2));
+  hres = pVarMod(&v1,&v2,&vDst);
+  ok(hres == S_OK && V_VT(&vDst) == VT_I4 && V_I4(&vDst) == 0,
+     "VarMod: expected 0x%lx,%d,%d, got 0x%lX,%d,%ld\n", S_OK, VT_I4, 0, hres, V_VT(&vDst), V_I4(&vDst));
+  }
+
   VARMOD2(UINT,I4,100,10,I4,0,S_OK);
 
   /* test that an error results in the type of the result changing but not its value */
@@ -2473,7 +2503,6 @@ static void test_VarMod(void)
   VARMOD2(ERROR,I4,100,10,EMPTY,0,DISP_E_TYPEMISMATCH);
   VARMOD2(VARIANT,I4,100,10,EMPTY,0,DISP_E_TYPEMISMATCH);
   VARMOD2(UNKNOWN,I4,100,10,EMPTY,0,DISP_E_TYPEMISMATCH);
-  VARMOD2(DECIMAL,I4,100,10,EMPTY,0,DISP_E_OVERFLOW);
   VARMOD2(VOID,I4,100,10,EMPTY,0,DISP_E_BADVARTYPE);
   VARMOD2(HRESULT,I4,100,10,EMPTY,0,DISP_E_BADVARTYPE);
   VARMOD2(PTR,I4,100,10,EMPTY,0,DISP_E_BADVARTYPE);




More information about the wine-cvs mailing list