Comments (7)
I don't know why haven't hit this before, or why I wasn't paying more attention
during the original discussion, but this seems *extremely* unintuitive. Why
isn't
this the *default* behavior? When I write an "ASSERT_()" I want it to behavie
like
"assert()" might, but limited only to the test case. What are the implementation
challenges to making this happen? I'd much rather have a
"IGNORE_FATAL_FAILURES()"
macro than the proposed macro pattern.
Again, apologies for not bringing this up during the initial discussion, or
missing
it if it was already addressed.
-Chandler
Original comment by [email protected]
on 5 Aug 2008 at 7:35
from googletest.
Chandler, the problem is that gtest needs to compile where exceptions are
turned off,
which rules out throw. long-jump is not an option either as its behavior is
undefined in a C++ program where objects can have non-trivial destructors.
Original comment by [email protected]
on 5 Aug 2008 at 8:02
from googletest.
I suppose an alternative might be to always fork (on *NIX platforms, anyway)
before
running a test, as in death tests, implementing ASSERT* using process death.
That
would cleanly deliver Chandler's desired semantics, I think. Is this too
expensive?
Bob
Original comment by [email protected]
on 5 Aug 2008 at 8:13
from googletest.
fork() is too heavy-handed as it changes the behavior of existing tests when
they
have side effects. We also don't want Google Test's behavior to diverage on
different platforms.
Note that death tests come with some caveats. In particular, fork() doesn't
work
well with threads, and thus cannot be used in the general test runner. fork()
also
makes debugging much harder as now the users need to deal with multiple
processes.
Original comment by [email protected]
on 5 Aug 2008 at 8:21
from googletest.
Original comment by [email protected]
on 30 Sep 2008 at 4:13
- Added labels: Priority-High
- Removed labels: Priority-Medium
from googletest.
Original comment by [email protected]
on 30 Sep 2008 at 4:52
from googletest.
Done in trunk.
Original comment by [email protected]
on 12 Oct 2008 at 3:22
- Changed state: Fixed
from googletest.
Related Issues (20)
- GTEST_AMBIGUOUS_ELSE_BLOCKER_ causes code analysis warning
- GTEST - ASSERT_EQ and EXPECT_EQ compile error HOT 1
- Warnings when building v8's base-unittests target
- Allow GoogleTest to find clone() with PGI compiler HOT 1
- Project home summary says wiki links are on right, but they are on the left
- With 32-bit target, icc generates remarks about cast of void * to 64-bit integer in PrintTo
- [deleted issue]
- Unable to determine if a test should run before calling RUN_ALL_TESTS HOT 2
- My assert is not caught and the test fails HOT 2
- Throwing an exception as default breaks call count expectation HOT 3
- I put my tests in a library and Google Test doesn't run them - GCC 4.8 HOT 3
- Unknown option specified: gtest_output
- error:SEH exception with code 0xc0000005 thrown in auxiliary test code<environment or event listeners>
- Compilation errors on MinGW
- Duplicate Symbols adding Samples (Xcode)
- PATCH: Fix ‘make check’ in separate build directory
- SEGV on 4 or more test cases with Address Sanitizer HOT 5
- Add the ability to specify parameterized test names
- moving to GITHUB ?
- Plase add a way to skip/disable some tests during runtime.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from googletest.