YongHao Hu : msvcp90/tests: Add istream::operator>>(float) and double test.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Oct 17 05:00:40 CDT 2014


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

Author: YongHao Hu <christopherwuy at gmail.com>
Date:   Tue Oct 14 18:05:01 2014 +0800

msvcp90/tests: Add istream::operator>>(float) and double test.

---

 dlls/msvcp90/tests/ios.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/dlls/msvcp90/tests/ios.c b/dlls/msvcp90/tests/ios.c
index 470dc37..fd27ce5 100644
--- a/dlls/msvcp90/tests/ios.c
+++ b/dlls/msvcp90/tests/ios.c
@@ -442,6 +442,7 @@ static void (*__thiscall p_basic_fstream_wchar_vbase_dtor)(basic_fstream_wchar*)
 
 /* istream */
 static basic_istream_char* (*__thiscall p_basic_istream_char_read_uint64)(basic_istream_char*, unsigned __int64*);
+static basic_istream_char* (*__thiscall p_basic_istream_char_read_float)(basic_istream_char*, float*);
 static basic_istream_char* (*__thiscall p_basic_istream_char_read_double)(basic_istream_char*, double*);
 static int                 (*__thiscall p_basic_istream_char_get)(basic_istream_char*);
 static MSVCP_bool          (*__thiscall p_basic_istream_char_ipfx)(basic_istream_char*, MSVCP_bool);
@@ -648,6 +649,8 @@ static BOOL init(void)
 
         SET(p_basic_istream_char_read_uint64,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAAEAV01 at AEA_K@Z");
+        SET(p_basic_istream_char_read_float,
+            "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAAEAV01 at AEAM@Z");
         SET(p_basic_istream_char_read_double,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAAEAV01 at AEAN@Z");
         SET(p_basic_istream_char_get,
@@ -765,6 +768,8 @@ static BOOL init(void)
 
         SET(p_basic_istream_char_read_uint64,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAAAAV01 at AA_K@Z");
+        SET(p_basic_istream_char_read_float,
+            "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAAAAV01 at AAM@Z");
         SET(p_basic_istream_char_read_double,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAAAAV01 at AAN@Z");
         SET(p_basic_istream_char_get,
@@ -881,6 +886,8 @@ static BOOL init(void)
 
         SET(p_basic_istream_char_read_uint64,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAEAAV01 at AA_K@Z");
+        SET(p_basic_istream_char_read_float,
+            "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAEAAV01 at AAM@Z");
         SET(p_basic_istream_char_read_double,
             "??5?$basic_istream at DU?$char_traits at D@std@@@std@@QAEAAV01 at AAN@Z");
         SET(p_basic_istream_char_get,
@@ -2027,6 +2034,46 @@ static void test_ostream_wchar_print_double(void)
     call_func1(p_basic_stringstream_wchar_vbase_dtor, &wss);
 }
 
+static void test_istream_read_float(void)
+{
+    basic_stringstream_char ss;
+    basic_string_char str;
+    const char *test_str;
+    float val, correct_val;
+
+    test_str = "3.14159";
+    call_func2(p_basic_string_char_ctor_cstr, &str, test_str);
+    call_func4(p_basic_stringstream_char_ctor_str, &ss, &str, OPENMODE_in, TRUE);
+
+    val = 0;
+    call_func2(p_basic_istream_char_read_float, &ss.base.base1, &val);
+    correct_val = 3.14159;
+    ok(correct_val == val,   "wrong val, expected = %g found %g\n", correct_val, val);
+
+    call_func1(p_basic_stringstream_char_vbase_dtor, &ss);
+    call_func1(p_basic_string_char_dtor, &str);
+}
+
+static void test_istream_read_double(void)
+{
+    basic_stringstream_char ss;
+    basic_string_char str;
+    const char *test_str;
+    double val, correct_val;
+
+    test_str = "3.14159";
+    call_func2(p_basic_string_char_ctor_cstr, &str, test_str);
+    call_func4(p_basic_stringstream_char_ctor_str, &ss, &str, OPENMODE_in, TRUE);
+
+    val = 0;
+    call_func2(p_basic_istream_char_read_double, &ss.base.base1, &val);
+    correct_val = 3.14159;
+    ok(correct_val == val,   "wrong val, expected = %g found %g\n", correct_val, val);
+
+    call_func1(p_basic_stringstream_char_vbase_dtor, &ss);
+    call_func1(p_basic_string_char_dtor, &str);
+}
+
 START_TEST(ios)
 {
     if(!init())
@@ -2046,6 +2093,8 @@ START_TEST(ios)
     test_ostream_print_float();
     test_ostream_print_double();
     test_ostream_wchar_print_double();
+    test_istream_read_float();
+    test_istream_read_double();
 
     ok(!invalid_parameter, "invalid_parameter_handler was invoked too many times\n");
 




More information about the wine-cvs mailing list