Re: [Agavi-Tickets] [Agavi] #1458: Fragment tests' nesting level too deep with process isolation set to false

0 views
Skip to first unread message

Agavi

unread,
Dec 8, 2011, 10:19:42 AM12/8/11
to tic...@lists.agavi.org
#1458: Fragment tests' nesting level too deep with process isolation set to false
---------------------+------------------------------------------------------
Reporter: horros | Owner: david
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: testing | Version: HEAD
Severity: normal | Keywords:
Has_patch: 1 |
---------------------+------------------------------------------------------
Changes (by david):

* owner: felix => david
* status: new => assigned


--
Ticket URL: <http://trac.agavi.org/ticket/1458#comment:1>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5

_______________________________________________
Agavi Tickets Mailing List
tic...@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/tickets

Agavi

unread,
Dec 8, 2011, 7:49:04 AM12/8/11
to tic...@lists.agavi.org
#1458: Fragment tests' nesting level too deep with process isolation set to false
---------------------+------------------------------------------------------
Reporter: horros | Owner: felix
Type: defect | Status: new
Priority: normal | Milestone:
Component: testing | Version: HEAD
Severity: normal | Keywords:
Has_patch: 1 |
---------------------+------------------------------------------------------
At random points, depending on how many unit tests you have, PHP will stop
execution because the nesting level in the extended Execution Container
that Agavi generates will become too deep.

The attached files patches AgaviFragmentTestCase to implement an
AgaviIUnitTesting interface for the extended execution container and uses
reflection to check for the interface when deciding if the execution
container implementation needs to be extended.

--
Ticket URL: <http://trac.agavi.org/ticket/1458>

Agavi

unread,
Dec 10, 2011, 11:40:36 PM12/10/11
to tic...@lists.agavi.org
#1458: Fragment tests' nesting level too deep with process isolation set to false
---------------------+------------------------------------------------------
Reporter: horros | Owner: david
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: testing | Version: HEAD
Severity: normal | Keywords:
Has_patch: 1 |
---------------------+------------------------------------------------------

Comment(by david):

I don't get this, and I cannot reproduce it. What are you doing to trigger
it? Are you calling
{{{AgaviFragmentTestCase::createExecutionContainer()}}}?

Is there a way you could make a simple reproduce case, e.g. against the
sample app? It has an action and a view test case, and with a data
provider that simply does {{{return array_fill(0, 100, array(null));}}}
you'd get a hundred calls to your test to reproduce the situation - I
wasn't able to, even when calling {{{runView()}}} or {{{runAction()}}} or
{{{createExecutionContainer()}}}.

Looking at the code, this should never happen unless you somehow fiddle
with the factory infos in the context, which I find hard to believe. Only
then would it create a new class for every run or whatever.

There must be something else going on here, maybe the fix you suggest just
cures a symptom? Are you running any bytecode caches or such?

If you don't feel like going it all alone, ping me anytime on IRC if you
want to work on reproducing this :)

--
Ticket URL: <http://trac.agavi.org/ticket/1458#comment:2>

Reply all
Reply to author
Forward
0 new messages