WASM插件开发框架proxy-wasm-go-sdk的单元测试框架适配
TJKkking opened this issue · comments
Tao Jikun commented
描述
Higress使用基于proxy-wasm-go-sdk项目fork了自己的WASM插件开发SDK,在此基础之上还用一层wrapper屏蔽了插件开发中很多重复性工作,使开发者可以将精力集中于功能开发。但是,wrapper层的加入使proxy-wasm-go-sdk原生的单元测试框架变得不可用,在对使用了wrapper的插件进行单测时会报错。
分析
- 测试框架调用了被wrapper封装的函数,比如OnPluginStart,如下图所示。因此插件里用了wrapper会导致测试时没法读取配置报错以及类似的其他问题。
- 因此需要对wrapper作出改动,使之支持除默认从envoy.yaml读取配置外还可以从测试代码传入插件配置。
- 结论:Wrapper和测试框架不兼容,需要对wrapper做出改进使之适配proxy-wasm-go-sdk的测试框架。
Ink33 commented
看了一下感觉可以把test部分也封装进wrapper里面,在插件部分提供config和测试用例给wrapper去跑单测,不知这样是否可行
Ink33 commented
Ink33 commented
认领一下这个,thanks