postgresql 修改Apache AGE基准测试的回归测试结果

5lwkijsr  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(9)|浏览(135)

我目前正在修改PostgreSQL的Apache AGE扩展的源代码,我对执行一些基准测试来评估我的更改的影响很感兴趣。
Apache AGE使用一系列回归测试,我一直在通过make installcheck命令执行这些测试。
所以我想知道在Postgres的源代码中,下面的结果是从哪里打印出来的,这样我就可以为了我的基准测试目的而修改它:

============== creating temporary instance            ==============
============== initializing database system           ==============
============== starting postmaster                    ==============
running on port 61958 with PID 3343
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== installing age                         ==============
CREATE EXTENSION
============== running regression test queries        ==============
test scan                         ... ok          240 ms
test graphid                      ... ok           21 ms
test agtype                       ... ok          198 ms
test catalog                      ... ok          116 ms
test cypher                       ... ok           32 ms
test expr                         ... ok          627 ms
test cypher_create                ... ok          125 ms
test cypher_match                 ... ok          517 ms
test cypher_unwind                ... ok           62 ms
test cypher_set                   ... ok          148 ms
test cypher_remove                ... ok          103 ms
test cypher_delete                ... ok          120 ms
test cypher_with                  ... ok           89 ms
test cypher_vle                   ... ok         1166 ms
test cypher_union                 ... ok           42 ms
test cypher_call                  ... ok           61 ms
test cypher_merge                 ... ok          223 ms
test age_global_graph             ... ok          172 ms
test age_load                     ... ok         1830 ms
test index                        ... ok           98 ms
test analyze                      ... ok           35 ms
test graph_generation             ... ok           82 ms
test name_validation              ... ok          166 ms
test drop                         ... ok          236 ms
============== shutting down postmaster               ==============
============== removing temporary instance            ==============

======================
 All 24 tests passed. 
======================

字符串
如果您有修改PostgreSQL扩展回归测试的经验,我们将非常感谢您的任何建议或见解。谢谢你,谢谢

vltsax25

vltsax251#

AGE没有自己的回归测试驱动程序。它继承了PostgreSQL的一个。
你可以在这里找到它并进行更改:
https://github.com/postgres/postgres/blob/master/src/test/regress/pg_regress.c

i2loujxw

i2loujxw2#

regress文件夹中,您可以找到测试用例及其输出。结构如下:

***age_load:**有使用的数据
***expected:**具有测试用例的预期输出。
*sql:所有测试用例都写在.sql文件中。

您可以修改sql文件夹中的文件。

jhdbpxl9

jhdbpxl93#

回归测试可以在Apache AGE repo的regress目录中找到。
子目录**./expected./sql包含测试扩展名的文件。特别是expr.outexpr.sql**,这些文件测试各种函数。

ktca8awb

ktca8awb4#

测试本身是通过PostgreSQL的测试策略完成的,Apache AGE利用了它,这意味着Apache AGE遵循相同的测试模式/结构,并在PostgreSQL服务器内播种要测试的脚本。
要添加新的测试脚本,只需执行以下操作

  • 在正确的目录下找到它,如以下age/regress/sql/$(your_script.sql)
  • 将其添加到age/Makefile中的REGRESS列表中
  • 运行测试(它会失败),在修改并确保它之后,将脚本的结果复制到regress下的预期目录。
  • 再次运行(现在应该通过)
nwwlzxa7

nwwlzxa75#

您可以在src/backend/utils/目录中找到回归测试。
一个例子是文件name validation.c,它包含许多函数来测试名称验证情况。您可以创建自己的函数来测试所需的基准。
但是您必须更改MAKEFILE以运行创建的测试函数。例如,如果创建了test_vertexfunc

REGRESS = scan \
      graphid \
      agtype \
      catalog \
      cypher \
      expr \
      cypher_create \
      cypher_match \
      cypher_unwind \
      cypher_set \
      cypher_remove \
      cypher_delete \
      cypher_with \
      cypher_vle \
      cypher_union \
      cypher_call \
      cypher_merge \
      age_global_graph \
      age_load \
      index \
      analyze \
      graph_generation \
      name_validation \
      test_vertexfunc \ <<<<<<
      drop

字符串

mbyulnm0

mbyulnm06#

回归测试可以在/regress/sql中的sql文件中找到。而他们的预期结果可以在/regress/expected中以.out文件的形式找到。
如果您希望添加或修改回归测试,请修改.sql文件中的查询(如果必须的话)并修改.out文件中的预期结果。
当运行测试时,对照预期输出检查测试的输出,并且适当地,它们是失败的或通过的。
任何回归测试差异(在测试失败的情况下)都可以在/regress/regression.diffs中找到。可以使用任何文本编辑器打开此文件。

shyt4zoc

shyt4zoc7#

正如Mohayu Din提到的here,要找到这些结果,您需要访问postgres回归测试驱动程序,因为AGE继承了它。
您可以找到here链接。

pobjuy32

pobjuy328#

  • 首先,Apache AGE还处于开发阶段,到目前为止还没有自己的回归测试器。
  • AGE继承了Postgresql的回归测试器。因此,您可以从here访问它,并根据您的基准测试目的对其进行修改。
wecizke3

wecizke39#

Apache Age依赖于Postgresql的回归测试。您可以发现此link很有用

相关问题