LTP上手之路(一)

LTP(Linux Test Project),是基于GPL协议的开源社区合作项目。2000年由SGI发起,IBM、OSDL和Bull等公司共同参与,2001年后由SUSE、富士通、Red Hat、Oracle共同开发和维护。
通过功能测试、压力测试和回归测试来验证Linux系统的可靠性、稳定性和健壮性。整个项目约4000个测试用例,绝大部分用例采用C或Shell。

此次学习主要参考两份材料,一是github上项目里的文档资料Github - Linux Test Project,二是很详细相当具有指导价值的博客LTP 第一章 LTP介绍及内部机制。目前我还在博客第一章的部分。

这两天我把第一章的内容照着做了一遍。发现和作者的情况还是有些不一样,特此记录。我使用的Linux系统版本是Ubuntu16.04.5,LTP版本为20180515。

关于安装

方法一:根据github上的README照做。其中,git, autoconf, automake, m4必须先安装好。(ubuntu小白提示:在终端直接输入git/autoconf/……,终端会提示正确的命令格式,即sudo apt get install git,即可)
方法二:根据上午分享的博客照做。

关于博客中的问题

博客中编写了两个用例,我照做时两个用例均有问题,不知是不是和作者使用的版本不一致导致的。好在自己解决了,具体如下。
sqrt函数
该部分代码修改两个部分:(1)将TEST_RETURN 改为 TST_RET。查看了tst_test.h文件后发现,其中定义的变量名为TST_RET,故此修改。(2)tst_test结构体中,去掉.tid一行。修改后如下:

#include <errno.h>
#include <string.h>
#include <sys/mount.h>
#include "tst_test.h"

static struct tcase {
    const int input;
    const int output;
} tcases[] = {
        {-1,1},
        {9,3}
};

static void testSqrt(unsigned int n){
    struct tcase *tc = &tcases[n];

    TEST(sqrt(tc->input));

    if (TST_RET != tc->output) {
        tst_res(TFAIL, "sqrt() failed");
        return;
    }
    tst_res(TPASS, "sqrt() succeeds");
}

static struct tst_test test = {
        .tcnt = ARRAY_SIZE(tcases),
        .test = testSqrt,
};

echo命令
该部分代码本身没有问题,但是echo_test "hello\tworld"这一行中的转义字符会有影响。
去掉转义字符后,运行结果才正确。加上转义字符后,运行结果是fail。
这大概与shell语法有关,我暂时还不知道怎么解决,先留着这个问题吧。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值