envoyproxy/envoy

add memory filesystem for making tests faster, more hermetic, and more robust

Open

#11,121 创建于 2020年5月8日

在 GitHub 查看
 (9 评论) (1 反应) (1 负责人)C++ (5,373 fork)batch import
beginnerhelp wanted

仓库指标

Star
 (27,997 star)
PR 合并指标
 (平均合并 8天) (30 天内合并 378 个 PR)

描述

Currently real files are used for file i/o during tests. An alternative I've used in the past is to have an in-memory representation of a file-system: https://github.com/apache/incubator-pagespeed-mod/blob/master/pagespeed/kernel/base/mem_file_system.h

This has these advantages:

  • completely hermetic, with a clean slate between tests
  • very fast (no I/O), speeding up the running of massive numbers of tests
  • you can inject notifiers etc, so you can for example get a callback or condvar wakeup or similar when a file is written

Envoy already has a filesystem abstraction (yay!) and a way to squirrel that into code that needs to read/write files (Api::Api) just no in-memory impl for it.

I think this would be a good intern project. The example I gave above would not exactly meet Envoy's needs but it could be a reference point.

贡献者指南