Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
e92cceda
"docs/reference/mocking.md" did not exist on "2bd34816661a29b7cf8c21bd86210408ed658edb"
Commit
e92cceda
authored
Jan 08, 2010
by
zhanyong.wan
Browse files
Changes Message() to print double with enough precision by default.
parent
ef37aa40
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
57 additions
and
39 deletions
+57
-39
include/gtest/gtest-message.h
include/gtest/gtest-message.h
+7
-1
samples/prime_tables.h
samples/prime_tables.h
+1
-1
src/gtest.cc
src/gtest.cc
+8
-10
test/gtest-message_test.cc
test/gtest-message_test.cc
+17
-3
test/gtest_unittest.cc
test/gtest_unittest.cc
+24
-24
No files found.
include/gtest/gtest-message.h
View file @
e92cceda
...
...
@@ -46,6 +46,8 @@
#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_
#include <limits>
#include <gtest/internal/gtest-string.h>
#include <gtest/internal/gtest-internal.h>
...
...
@@ -89,7 +91,11 @@ class Message {
// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's
// stack frame leading to huge stack frames in some cases; gcc does not reuse
// the stack space.
Message
()
:
ss_
(
new
internal
::
StrStream
)
{}
Message
()
:
ss_
(
new
internal
::
StrStream
)
{
// By default, we want there to be enough precision when printing
// a double to a Message.
*
ss_
<<
std
::
setprecision
(
std
::
numeric_limits
<
double
>::
digits10
+
2
);
}
// Copy constructor.
Message
(
const
Message
&
msg
)
:
ss_
(
new
internal
::
StrStream
)
{
// NOLINT
...
...
samples/prime_tables.h
View file @
e92cceda
...
...
@@ -116,7 +116,7 @@ class PreCalculatedPrimeTable : public PrimeTable {
const
int
is_prime_size_
;
bool
*
const
is_prime_
;
// Disables compiler w
q
arning "assignment operator could ot be generated."
// Disables compiler warning "assignment operator could
n
ot be generated."
void
operator
=
(
const
PreCalculatedPrimeTable
&
rhs
);
};
...
...
src/gtest.cc
View file @
e92cceda
...
...
@@ -43,6 +43,7 @@
#include <wctype.h>
#include <ostream>
#include <sstream>
#if GTEST_OS_LINUX
...
...
@@ -3168,14 +3169,11 @@ String XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters(const char* str) {
// </testsuite>
// </testsuites>
// Formats the given time in milliseconds as seconds. The returned
// C-string is owned by this function and cannot be released by the
// caller. Calling the function again invalidates the previous
// result.
const
char
*
FormatTimeInMillisAsSeconds
(
TimeInMillis
ms
)
{
static
String
str
;
str
=
(
Message
()
<<
(
ms
/
1000.0
)).
GetString
();
return
str
.
c_str
();
// Formats the given time in milliseconds as seconds.
std
::
string
FormatTimeInMillisAsSeconds
(
TimeInMillis
ms
)
{
::
std
::
stringstream
ss
;
ss
<<
ms
/
1000.0
;
return
ss
.
str
();
}
// Streams an XML CDATA section, escaping invalid CDATA sequences as needed.
...
...
@@ -3249,7 +3247,7 @@ void XmlUnitTestResultPrinter::PrintXmlTestCase(FILE* out,
test_case
.
disabled_test_count
());
fprintf
(
out
,
"errors=
\"
0
\"
time=
\"
%s
\"
>
\n
"
,
FormatTimeInMillisAsSeconds
(
test_case
.
elapsed_time
()));
FormatTimeInMillisAsSeconds
(
test_case
.
elapsed_time
())
.
c_str
()
);
for
(
int
i
=
0
;
i
<
test_case
.
total_test_count
();
++
i
)
{
StrStream
stream
;
OutputXmlTestInfo
(
&
stream
,
test_case
.
name
(),
*
test_case
.
GetTestInfo
(
i
));
...
...
@@ -3268,7 +3266,7 @@ void XmlUnitTestResultPrinter::PrintXmlUnitTest(FILE* out,
unit_test
.
total_test_count
(),
unit_test
.
failed_test_count
(),
unit_test
.
disabled_test_count
(),
FormatTimeInMillisAsSeconds
(
unit_test
.
elapsed_time
()));
FormatTimeInMillisAsSeconds
(
unit_test
.
elapsed_time
())
.
c_str
()
);
if
(
GTEST_FLAG
(
shuffle
))
{
fprintf
(
out
,
"random_seed=
\"
%d
\"
"
,
unit_test
.
random_seed
());
}
...
...
test/gtest-message_test.cc
View file @
e92cceda
...
...
@@ -68,6 +68,23 @@ TEST(MessageTest, ConstructsFromCString) {
EXPECT_STREQ
(
"Hello"
,
ToCString
(
msg
));
}
// Tests streaming a float.
TEST
(
MessageTest
,
StreamsFloat
)
{
const
char
*
const
s
=
ToCString
(
Message
()
<<
1.23456
F
<<
" "
<<
2.34567
F
);
// Both numbers should be printed with enough precision.
EXPECT_PRED_FORMAT2
(
testing
::
IsSubstring
,
"1.234560"
,
s
);
EXPECT_PRED_FORMAT2
(
testing
::
IsSubstring
,
" 2.345669"
,
s
);
}
// Tests streaming a double.
TEST
(
MessageTest
,
StreamsDouble
)
{
const
char
*
const
s
=
ToCString
(
Message
()
<<
1260570880.4555497
<<
" "
<<
1260572265.1954534
);
// Both numbers should be printed with enough precision.
EXPECT_PRED_FORMAT2
(
testing
::
IsSubstring
,
"1260570880.45"
,
s
);
EXPECT_PRED_FORMAT2
(
testing
::
IsSubstring
,
" 1260572265.19"
,
s
);
}
// Tests streaming a non-char pointer.
TEST
(
MessageTest
,
StreamsPointer
)
{
int
n
=
0
;
...
...
@@ -93,9 +110,6 @@ TEST(MessageTest, StreamsNullCString) {
}
// Tests streaming std::string.
//
// As std::string has problem in MSVC when exception is disabled, we only
// test this where std::string can be used.
TEST
(
MessageTest
,
StreamsString
)
{
const
::
std
::
string
str
(
"Hello"
);
EXPECT_STREQ
(
"Hello"
,
ToCString
(
Message
()
<<
str
));
...
...
test/gtest_unittest.cc
View file @
e92cceda
...
...
@@ -82,7 +82,7 @@ namespace testing {
namespace
internal
{
bool
ShouldUseColor
(
bool
stdout_is_tty
);
const
char
*
FormatTimeInMillisAsSeconds
(
TimeInMillis
ms
);
::
std
::
string
FormatTimeInMillisAsSeconds
(
TimeInMillis
ms
);
bool
ParseInt32Flag
(
const
char
*
str
,
const
char
*
flag
,
Int32
*
value
);
// Used for testing the flag parsing.
...
...
@@ -270,23 +270,23 @@ TEST(GetTestTypeIdTest, ReturnsTheSameValueInsideOrOutsideOfGoogleTest) {
// Tests FormatTimeInMillisAsSeconds().
TEST
(
FormatTimeInMillisAsSecondsTest
,
FormatsZero
)
{
EXPECT_
STR
EQ
(
"0"
,
FormatTimeInMillisAsSeconds
(
0
));
EXPECT_EQ
(
"0"
,
FormatTimeInMillisAsSeconds
(
0
));
}
TEST
(
FormatTimeInMillisAsSecondsTest
,
FormatsPositiveNumber
)
{
EXPECT_
STR
EQ
(
"0.003"
,
FormatTimeInMillisAsSeconds
(
3
));
EXPECT_
STR
EQ
(
"0.01"
,
FormatTimeInMillisAsSeconds
(
10
));
EXPECT_
STR
EQ
(
"0.2"
,
FormatTimeInMillisAsSeconds
(
200
));
EXPECT_
STR
EQ
(
"1.2"
,
FormatTimeInMillisAsSeconds
(
1200
));
EXPECT_
STR
EQ
(
"3"
,
FormatTimeInMillisAsSeconds
(
3000
));
EXPECT_EQ
(
"0.003"
,
FormatTimeInMillisAsSeconds
(
3
));
EXPECT_EQ
(
"0.01"
,
FormatTimeInMillisAsSeconds
(
10
));
EXPECT_EQ
(
"0.2"
,
FormatTimeInMillisAsSeconds
(
200
));
EXPECT_EQ
(
"1.2"
,
FormatTimeInMillisAsSeconds
(
1200
));
EXPECT_EQ
(
"3"
,
FormatTimeInMillisAsSeconds
(
3000
));
}
TEST
(
FormatTimeInMillisAsSecondsTest
,
FormatsNegativeNumber
)
{
EXPECT_
STR
EQ
(
"-0.003"
,
FormatTimeInMillisAsSeconds
(
-
3
));
EXPECT_
STR
EQ
(
"-0.01"
,
FormatTimeInMillisAsSeconds
(
-
10
));
EXPECT_
STR
EQ
(
"-0.2"
,
FormatTimeInMillisAsSeconds
(
-
200
));
EXPECT_
STR
EQ
(
"-1.2"
,
FormatTimeInMillisAsSeconds
(
-
1200
));
EXPECT_
STR
EQ
(
"-3"
,
FormatTimeInMillisAsSeconds
(
-
3000
));
EXPECT_EQ
(
"-0.003"
,
FormatTimeInMillisAsSeconds
(
-
3
));
EXPECT_EQ
(
"-0.01"
,
FormatTimeInMillisAsSeconds
(
-
10
));
EXPECT_EQ
(
"-0.2"
,
FormatTimeInMillisAsSeconds
(
-
200
));
EXPECT_EQ
(
"-1.2"
,
FormatTimeInMillisAsSeconds
(
-
1200
));
EXPECT_EQ
(
"-3"
,
FormatTimeInMillisAsSeconds
(
-
3000
));
}
#if !GTEST_OS_SYMBIAN
...
...
@@ -3095,9 +3095,9 @@ TEST_F(FloatTest, Commutative) {
TEST_F
(
FloatTest
,
EXPECT_NEAR
)
{
EXPECT_NEAR
(
-
1.0
f
,
-
1.1
f
,
0.2
f
);
EXPECT_NEAR
(
2.0
f
,
3.0
f
,
1.0
f
);
EXPECT_NONFATAL_FAILURE
(
EXPECT_NEAR
(
1.0
f
,
1.
2
f
,
0.
1
f
),
// NOLINT
"The difference between 1.0f and 1.
2
f is 0.
2
, "
"which exceeds 0.
1
f"
);
EXPECT_NONFATAL_FAILURE
(
EXPECT_NEAR
(
1.0
f
,
1.
5
f
,
0.
25
f
),
// NOLINT
"The difference between 1.0f and 1.
5
f is 0.
5
, "
"which exceeds 0.
25
f"
);
// To work around a bug in gcc 2.95.0, there is intentionally no
// space after the first comma in the previous line.
}
...
...
@@ -3106,9 +3106,9 @@ TEST_F(FloatTest, EXPECT_NEAR) {
TEST_F
(
FloatTest
,
ASSERT_NEAR
)
{
ASSERT_NEAR
(
-
1.0
f
,
-
1.1
f
,
0.2
f
);
ASSERT_NEAR
(
2.0
f
,
3.0
f
,
1.0
f
);
EXPECT_FATAL_FAILURE
(
ASSERT_NEAR
(
1.0
f
,
1.
2
f
,
0.
1
f
),
// NOLINT
"The difference between 1.0f and 1.
2
f is 0.
2
, "
"which exceeds 0.
1
f"
);
EXPECT_FATAL_FAILURE
(
ASSERT_NEAR
(
1.0
f
,
1.
5
f
,
0.
25
f
),
// NOLINT
"The difference between 1.0f and 1.
5
f is 0.
5
, "
"which exceeds 0.
25
f"
);
// To work around a bug in gcc 2.95.0, there is intentionally no
// space after the first comma in the previous line.
}
...
...
@@ -3261,9 +3261,9 @@ TEST_F(DoubleTest, Commutative) {
TEST_F
(
DoubleTest
,
EXPECT_NEAR
)
{
EXPECT_NEAR
(
-
1.0
,
-
1.1
,
0.2
);
EXPECT_NEAR
(
2.0
,
3.0
,
1.0
);
EXPECT_NONFATAL_FAILURE
(
EXPECT_NEAR
(
1.0
,
1.
2
,
0.
1
),
// NOLINT
"The difference between 1.0 and 1.
2
is 0.
2
, "
"which exceeds 0.
1
"
);
EXPECT_NONFATAL_FAILURE
(
EXPECT_NEAR
(
1.0
,
1.
5
,
0.
25
),
// NOLINT
"The difference between 1.0 and 1.
5
is 0.
5
, "
"which exceeds 0.
25
"
);
// To work around a bug in gcc 2.95.0, there is intentionally no
// space after the first comma in the previous statement.
}
...
...
@@ -3272,9 +3272,9 @@ TEST_F(DoubleTest, EXPECT_NEAR) {
TEST_F
(
DoubleTest
,
ASSERT_NEAR
)
{
ASSERT_NEAR
(
-
1.0
,
-
1.1
,
0.2
);
ASSERT_NEAR
(
2.0
,
3.0
,
1.0
);
EXPECT_FATAL_FAILURE
(
ASSERT_NEAR
(
1.0
,
1.
2
,
0.
1
),
// NOLINT
"The difference between 1.0 and 1.
2
is 0.
2
, "
"which exceeds 0.
1
"
);
EXPECT_FATAL_FAILURE
(
ASSERT_NEAR
(
1.0
,
1.
5
,
0.
25
),
// NOLINT
"The difference between 1.0 and 1.
5
is 0.
5
, "
"which exceeds 0.
25
"
);
// To work around a bug in gcc 2.95.0, there is intentionally no
// space after the first comma in the previous statement.
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment