4

simpletest で次のテスト ケースを実行すると、B 行を使用すると Apache がクラッシュしますが、A 行を使用するとすべてが機能するように見えます。

class TestPredicateRequest extends UnitTestCase
{
    function testConstructWithPredicate()
    {
        Mock::generate("IQueryRequest");
        $oRequest = new MockIQueryRequest();

        $oPrototype = new QueryPrototype("TEST_COMMAND_STRING", 
                                         array(1 => QueryTypeConstants::CHARACTER_ID, 
                                               2 => QueryTypeConstants::CHARACTER_ID), 
                                         QueryTypeConstants::BOOLEAN);


        $oRequest->returns("GetArguments", array(2 => 102));  //only argument 2 is set.
        $oRequest->returns("GetPrototype", $oPrototype);
        $oRequest->returns("GetUnsetArguments", array(1)); //only argument 1 is unset

        $oToTest = new CharacterPredicateRequest($oRequest);

        $this->Here(101);                   //LINE A
        //$oItem = $this->Here(101);        //LINE B
    }

    function Here($CharacterID)
    {
        return $CharacterID;
    }
}

関数の戻り値を保存するかどうかが、エラーが発生するかどうかを制御するものであるという考えられる理由は何ですか?


追加情報:

行 A または行 B のいずれかの後に例外をスローすると、例外が上部にバブルアップし、必要に応じてエラー結果ページが表示されます。これは、何らかの理由で SimpleTest フレームワークが行 B のケースを好まないことを示唆しています。それは、アサートがないためですか?


更新 x2:

Apache のエラー ログ ファイルはあまり役に立たないようです。

[Wed Aug 07 19:57:28.123436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00455: Apache/2.4.4 (Win64) PHP/5.4.12 configured -- resuming normal operations
[Wed Aug 07 19:57:28.123436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00456: Server built: Feb 22 2013 22:08:37
[Wed Aug 07 19:57:28.123436 2013] [core:notice] [pid 6908:tid 392] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4'
[Wed Aug 07 19:57:28.124436 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00418: Parent: Created child process 2444
[Wed Aug 07 19:57:28.863478 2013] [mpm_winnt:notice] [pid 2444:tid 284] AH00354: Child: Starting 150 worker threads.

(Crash would be here)

[Wed Aug 07 19:59:23.551038 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00428: Parent: child process 2444 exited with status 255 -- Restarting.
[Wed Aug 07 19:59:23.751049 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00455: Apache/2.4.4 (Win64) PHP/5.4.12 configured -- resuming normal operations
[Wed Aug 07 19:59:23.751049 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00456: Server built: Feb 22 2013 22:08:37
[Wed Aug 07 19:59:23.751049 2013] [core:notice] [pid 6908:tid 392] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4'
[Wed Aug 07 19:59:23.755050 2013] [mpm_winnt:notice] [pid 6908:tid 392] AH00418: Parent: Created child process 7288
[Wed Aug 07 19:59:24.608098 2013] [mpm_winnt:notice] [pid 7288:tid 284] AH00354: Child: Starting 150 worker threads.
4

1 に答える 1

2

のメモリ アクセスが制限されている可能性がありますB。無制限のリソースを使用するには、ページの開始時に set_ini() を -1 に設定します。

于 2013-08-21T15:20:15.800 に答える