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