botuniverse / php-libonebot

PHP 的 LibOneBot 库,助力 Onebot 多平台适配
MIT License
14 stars 4 forks source link

PHPUnit 测试出来的问题,ActionResponse 的 getIterator 方法会导致 PHP 出现 Segment Fault #96

Closed crazywhalecc closed 1 year ago

crazywhalecc commented 1 year ago

受影响版本

<= 0.5.10

描述

public function testGetIterator()
    {
        $response = new ActionResponse();

        $response->data['a'] = 'b';
        $response->echo = 'ppp';

        $resp_arr = (array) $response;
        $ress_arr = (array) ActionResponse::create('ppp')->ok(['a' => 'b'])->getIterator();
        $this->assertEquals($resp_arr, $ress_arr);
    }

以上代码在执行到 getIterator() 方法后,出现段错误并退出,原因未知。

ActionResponse 的 getIterator 方法的代码为:return new \ArrayIterator($this->jsonSerialize());

复现步骤

此问题留个存根,未来可能通过其他方式改写让此问题消失,但这个确实暂无直接解决的办法。

解决方案

No response

附加信息

No response