PG自动化测试
安装软件包
yum groupinstall "Development Tools"
yum install zlib-devel tcl-devel readline-devel python-devel perl-devel openssl-devel openldap-devel libxml2-devel libxslt-devel libuuid-devel krb5-devel pam-devel perl-ExtUtils-Embed
yum install vim yum-utils docbook-dtds docbook-style-dsssl docbook-style-xsl openjade jadetex
使用PG源码
使用非root用户对源码进行编译
./configure --prefix=`pwd`/install --with-perl --with-python --with-tcl --enable-nls --with-gssapi --with-openssl --with-pam --with-ldap --with-libxml --with-libxslt --with-uuid=e2fs --with-extra-version=SRTEST --enable-debug --enable-profiling --enable-cassert --enable-depend
make 1>x 2>&1 输出重定向,x重定向到x文件,可以没有
make install
回归测试
在src/test/regress目录下
Make check 测试时需要初始化数据库集群
使用parallel执行,默认为20个并发脚本,就有40个进程:一个服务器进程,每一个脚本一个psql进程,修改make MAX_CONNECTIONS=10
check
Or
Make installcheck 使用以及启动的数据库集群测试,不需要初始化数据库集群(连接运行库)
运行的时候执行sql下面的sql语句,将结果放在results目录下面,然后和expect目录下的语气结果对比,如果有错误发生,运行结束会有信息提示,并且不一致的具体放在regression.diffs文件中,在regression.out文件中具体显示在那个位置不一致
如果你配置PostgreSQL安装到一个原来安装有老版本 PostgreSQL的目录里,然后在安装新版本之前执行make check, 那么你可能发现测试失败,因为新程序试图使用已经存在的共享库,典型的症状是抱怨未定义的符号。 如果你想在覆盖老版本之前运行测试,那么你需要使用configure --disable-rpath进行编译
在postgre根目录下运行
同时测试主代码以及contrib的代码
Make check-world
Or
Make installcheck-world
运行的时候,如果出错了,比如回归测试部分出错,直接结束运行,并且返回错误信息,不会继续往下运行
- 在sql/目录下加入自做成的test case的sql脚本。
- 在expected/目录下加入自做成test case的sql脚本的正确结果。需要注意的是,由于判断是使用diff命令,因此即使空格符也会导致diff的结果失败。所以,做成expected目录下的结果文件需要十分注意。
- 在parallel_schedule/ serial_schedule文件中添加调用sql脚本
一般在schedule文件中不执行sql,(可能是因为这些SQL脚本可能对平台的依赖比较严重,所以没有放到默认的测试中)使用EXTRA_TESTS来执行
Make check EXTRA_TESTS=random 执行random.sql文件
最新文章
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
- Xamarin.Android 应用程序配置
- SQL数据库,使用事务执行增删改操作,给自己一个后悔的机会
- 自定义AlertDialog的样式
- CPU利用率异常的分析思路和方法交流探讨
- Linux 打通ssh无密码登录
- A planning attack on a commuter train carriage in Taipei
- 定位position详解:relative与absolute
- webpack减少打包后文件体积的几种方法
- Amoeba实现mysql主从读写分离
- Android Service 启动和停止服务
- 微信小程序中在swiper-item中遍历循环添加多个数据内容(微信小程序交流群:604788754)
- 前端打包工具——build release介绍
- Redis非关系型数据库
- select 自匹配问题
- 深入理解Java 注解原理
- [matlab] 7.快速搜索随机树(RRT---Rapidly-exploring Random Trees) 路径规划
- golang实现tcp编程
- atitit 各分公司ceo cao行政经理职责.docx
- windows保存的文件传输到linux中格式转换
热门文章
- h.264_javascript_资料
- ObservableCollection<;T>; 的同类 ListCollectionView
- SGU 140. Integer Sequences 线性同余,数论 难度:2
- Informatica存储库和集成服务的配置
- java-IO-基本输出输入流
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 04
- PCB 中过孔和通孔焊盘的区别
- node 应用集合
- 5.5修改xadmin的头部底部和导航栏名称
- Kafka术语解释