Bash文件描述符重定向符号的另类理解
在Unix平台工作的人都使用过Shell的重定向功能,多数人接触较多的是简单的重定向,比如: cmd > some_file 将cmd命令的标准输出重定向到some_file中 cmd < some_file 将some_file的内容作为cmd命令执行的标准输入,或者简单的说cmd命令从some_file读取输入 ...
在Unix平台工作的人都使用过Shell的重定向功能,多数人接触较多的是简单的重定向,比如: cmd > some_file 将cmd命令的标准输出重定向到some_file中 cmd < some_file 将some_file的内容作为cmd命令执行的标准输入,或者简单的说cmd命令从some_file读取输入 ...
近两天一有空就会去看看项目代码,思考一下如何利用cmockery对项目里已有的代码进行测试。项目代码中很多被调用的接口都带有输出参数,而且在这些接口中多利用返回值指示执行成败也否,而利用输出参数返回一些关键结果,这些结果值甚至影响着后续的函数执行流程。前期研究cmockery时没有注意到cmockery是否可以设置被mock接口的输出参数的值,不过回顾了一下cmockery实现的原理,觉得cmockery是应该可以支持的。遂重新翻看了一下cmockery的manual,发现在mock_query_database中确有对输出参数的mock调用,代码如下: // Mock query database function. unsigned int mock_query_database( DatabaseConnection* const connection, const char * const query_string, void *** const results) { *results = (void**)mock(); return (unsigned int)mock(); } void test_get_customer_id_by_name(void **state) { DatabaseConnection connection = { “somedatabase.somewhere.com”, 12345678, mock_query_database }; int customer_ids = 543; will_return(mock_query_database, &customer_ids); will_return(mock_query_database, 1); assert_int_equal(get_customer_id_by_name(&connection, “john doe”), 543); } ...
这么久以来一直没有找到一款很好的支持mock测试的C语言单元测试工具包,但前不久在一网友的评论中得知:去年Google曾发布了一款c语言的轻量级单元测试framework — “cmockery”,cmcokery很小巧,对其他开源包没有依赖,对被测试代码侵入性小;它支持mock test,同样也可以支持常规的单元测试。 之前在博客中曾描述过C语言实现mock的一个思路,不过和cmockery对比起来,当时我的思路显然还处于初级阶段,而cmockery则走到了更高级,使用起来也更为简便。 还是以我上一篇文章中的代码来举例,利用cmockery来对biz.c进行mock test。 应用层被测试代码不变: /* biz.h */ #ifndef BIZ_H #define BIZ_H ...
上周测试组反馈在一台HP X86-64主机Solaris 10 for X86环境下部署的应用无法连接Oracle数据库,错误码ORA-12154。而另外一个产品的部署在这台主机上的应用却能正常连接到数据库。本周安排专人对该问题进行查找,在先后排除了用户环境设置、Oracle数据库服务端等问题后,我们最终把目光集中在了Oracle客户端的OCI库上。 ...
周六,对于上班族来说是多么好的日子,能在家里享受自由的无拘无束的生活而且不用担心第二天的工作,应该说是一周中最没有压力的一天。六点半起床,慢慢喝下一杯225ml左右的凉白开(保健医生说20-25摄氏度的凉白开比较适宜作为起床后的第一杯水),套上运动短裤和上衣,打开MP3播放器,塞上耳机,出门在园区内慢跑。昨晚下了一场雨,所以园区早上的空气很好。耳畔酷玩乐队的“Viva La Vida”让我跑起来很轻松,30分钟的有氧慢跑能让我的大脑和心脏获得足够的氧气,心情也变得更好。最后绕着园区走上一圈结束锻炼。 ...
突然觉得最近自己对着电脑发呆的时间变长了,面对着笔记本屏幕,时常是大脑变得空白,不愿去想工作上的事情,上网也提不起兴趣,想写文章又不知从何下笔,旁边厚厚的一摞技术书籍也懒得去翻看,每天都觉得很累,晚饭后总想去用睡眠来麻醉自己,真怀疑自己是不是有了心理问题。回过头来再想想这应该不是一个偶然的现象,而是一种积蓄了很久的情绪的爆发。 ...
如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦! ...
北京时间2009年3月20日零点,软件巨头微软公司正式发布了其Internet Explorer系列的最新版本8.0,简称IE8。早上上班后我第一时间下载了IE8的简体中文版For Windows XP。执行安装文件,重启电脑,IE8很容易就安装完毕了。 ...
每年二月末到三月初,公司都会安排一批实习生到各个部门实习。虽说去年经济危机了,但公司的实习生数量似乎并没有减少。起码我们部门"新同事"的数量基本与去年持平。按惯例,每位新同事都会有一名导师,与此同时各个部门还会根据自身的业务特点对这批学生进行有针对性的集中培训和交流。比起我入司那会儿,现在的实习生已经算是幸福多了。我那会儿实习生人数少,部门没有安排什么培训,完全靠导师安排自己努力学习。此次培训的内容是经过老员工们讨论和对新员工的需求调查后才确定的。其中新同事们普遍对如何进行程序调试这块比较感兴趣,我负责准备和实施了这个题目。虽说有过几年调试程序的经验,但是自已也没有系统的总结过,这次培训后顺便在这里做一下总结和记录。 ...
使用何种工具做Feature或Defect或Task的跟踪一直是挺让我闹心的一件事。用Excel记录,但却不便于共享、统计和直观展示;Jira算是做的好的工具之一了,但无奈它是商业软件,咱没付那份儿钱,所以也就"无福享用";Mingle是著名的Thoughtworks公司的产品,虽说不到5个license是可以免费使用的,但它却是出了名的"内存杀手",无奈我的机器配置太差,运行起来实在太慢,遂没有坚持下去(我"眼冒金星"的渴望着更换一台无所不能的超级计算机^_^);甚至我曾经用过ONENOTE来做跟踪,可是条目多了后,就基本不可用了。寻觅依旧进行中,这不Trac这款软件进入了我的视线中。 网络让我知道了"Trac"。“Trac"这个名字,估计与Track"异曲同工”。至于Trac具体能做什么,你可以到其Demo站点去体验一下。简单的说,Trac = wiki + 问题处理工作流;Wiki可以用来做知识积累和管理;问题处理工作流恰是我需要的功能。但到底Trac做到啥子程度,那还需要用起来后才能知道。还有一件让我觉得很"幸福"的事,那就是Trac自带一个独立的web server程序Tracd,并且Trac可使用Python 2.5.x自带的SQLite,这样我可以不用安装和配置庞大的Apache和MySQL了。让用户能快速上手应该是Trac值得其他开源软件学习和参考的一个亮点,要知道一些庞大的开源软件繁复的安装和配置过程让很多使用者产生了"挫败感"而"另辟蹊径"了。 ...