OSDN Git Service

Fix OOM test case to handle more optimizations
authorMark Mendell <mark.p.mendell@intel.com>
Tue, 19 Aug 2014 02:19:06 +0000 (22:19 -0400)
committerMark Mendell <mark.p.mendell@intel.com>
Tue, 19 Aug 2014 02:19:06 +0000 (22:19 -0400)
commit8ed2e706870c05411f0836b291263689aa1c6959
treea3805eaaec3847772f6324e57d7462430e0106bd
parent7df1754ae17acd891995159fc50f3bb176b770dd
Fix OOM test case to handle more optimizations

The 080-oom-throw test case has some code in triggerInstanceOOM to
exhaust memory.  Unfortunately, a sufficiently intelligent compiler can
inline the call to memEater.confuseCompilerOptimization and realize that
it is a no-op.  In that case, the memEater variable is dead, and if a
compiler can improve the GC map, the only live heap data will be the
last allocated chunk.

Fix this by ensuring that the start of the chain (memEater) is really
live. Also ensure that it becomes dead before exiting the method, or the
subsequent println will fail allocating memory.

Change-Id: I345ebc3e19bd86e176c616ff18bcac4ed8dbb419
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
test/080-oom-throw/src/Main.java