Looking at the example you gave....how about: EXPECT_EQ(kExpected.InMilliseconds(), foo.InMilliseconds());
Is that really that painful to write? ...and you could get all the microseconds to compare if you wanted to via ...InMicroseconds(). I suspect you don't really want absolute comparisons at the microsecond level, and more likely you'd want something like; EXPECT_LT((kEpected - foo).InMilliseconds(), 20). ...but if you really wanted the example you cited, the first line seems relatively short. Jim On Thu, Aug 20, 2009 at 7:13 PM, Andrew Scherkus <[email protected]>wrote: > I know microseconds aren't a very user-friendly format, but for unit tests > and DCHECKs I'm more interested in whether the assertion is simply true. > > Perhaps I'm lazy but I'd prefer: > EXPECT_EQ(kExpected, foo); > error: Value of: foo > Actual: 21000000 > Expected: kExpected > Which is: 22000000 > > ...over: > EXPECT_TRUE(kExpected == foo) << "Some message about " << > kExpected.InSecondsF() << " and " << foo.InSecondsF(); > error: Value of: kExpected == foo > Actual: false > Expected: true > Some message about 21.0 and 22.0 > > Guaranteed I won't write that message every time and then I end up with a > simple true/false dump instead of the erroneous values. > > On Thu, Aug 20, 2009 at 6:49 PM, Matt Perry <[email protected]>wrote: > >> Andrew wants to be able to do: >> DCHECK_EQ(expected_time_delta, time_delta); >> This can't be done without operator<< support. >> >> >> On Thu, Aug 20, 2009 at 6:46 PM, Jim Roskind <[email protected]> wrote: >> >>> +1 for Peter's suggestion. >>> TimeDelta has an internal accuracy of microseconds. What >>> resolution/scaling do you want to print in a check? Sometimes it is >>> minutes, sometimes seconds, sometimes milliseconds, I doubt that we want >>> microseconds :-/. >>> >>> Explicit conversion as suggested doesn't seem that painful IMO. >>> >>> Jim >>> >>> >>> On Thu, Aug 20, 2009 at 4:02 PM, Peter Kasting <[email protected]>wrote: >>> >>>> On Thu, Aug 20, 2009 at 3:33 PM, Andrew Scherkus <[email protected] >>>> > wrote: >>>> >>>>> Any opposition to globally declaring an operator<< ostream overload for >>>>> TimeDelta in base/time.h? >>>>> >>>> >>>> This will pull the stream headers into all files that use time.h. Is >>>> that going to bloat any code or cost compile time? >>>> >>>> Is there another easy solution like doing DCHECK() << "TimeDelta was: " >>>> << myTimeDelta.asInt64OrWhatever()? >>>> >>>> PK >>>> >>>> >>>> >>> >>> >>> >>> >> > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
