单元测试如何执行?

  • ob最新代码+centos环境
  • 单元测试代码:

unittest/sql/resolver/test_resolver.cpp

  • deub编译结果:

/app/data/oceanbase/build_debug/unittest/sql/resolver

[root@oceanbase resolver]# ls

CMakeFiles result test_raw_expr_to_str

cmake_install.cmake schame_for_resolve.test test_resolver.result

CTestTestfile.cmake sql test_resolver.schema

ddl_resolver test_raw_expr_canonicalizer test_resolver_update.test

error.schema test_raw_expr_hash test_skyline.result

expr test_raw_expr_print_visitor test_skyline.sql

Makefile test_raw_expr_resolver test_sql_bitset

[root@oceanbase resolver]# ./ddl_resolver

  • 我不想执行全部单元测试,我只想只想其中一个

./ddl_resolver

./ddl_resolver: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory

./test_xxx --gtest_filter=*your_case_name
 更多filter选项请参考google test官方手册。

 找不到libmariadb.so.3的问题,可以export LD_LIBRARY_PATH,也可以把libmariadb.so.3放到操作系统的默认动态库路径。
Example
cpp:/app/data/oceanbase/unittest/sql/parser/test_parser.cpp
build cpp : /app/data/oceanbase/builddebug/unittest/sql/parser/testparser
cd /app/data/oceanbase/build_debug/unittest/sql/
./parser err
LDLIBRARYPATH:
export LDLIBRARYPATH=/app/data/oceanbase/deps/3rd/usr/local/oceanbase/devtools/lib64:/app/data/oceanbase/deps/3rd/usr/local/oceanbase/deps/devel/lib/mariadb:/app/data/oceanbase/deps/3rd/usr/local/oceanbase/deps/devel/lib
[root@oceanbase parser]# ./testparser --gtestfilter=TestParser.basic_test
succ to open, filename=testparser.log, fd=3, wffd=2
Note: Google Test filter = TestParser.basic_test
[==========] Running 1 test from 1 test case.


测试一个模块:

./runtests.sh --test-dir /app/data/oceanbase/builddebug/unittest/sql/parser


但是找不到如何测试一个case的 参数