加载中…
个人资料
孟三
孟三
  • 博客等级:
  • 博客积分:0
  • 博客访问:14,998
  • 关注人气:7
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

LTP安装方法详解

(2012-04-04 23:08:44)
标签:

linux

测试

ltp

安装

分类: linux测试

LTP安装方法

一、      概述

       目前LTP安装方法有三种,第一种为快速安装方法;第二种是使用autotools完全编译,第三种是不使用autotools完全编译;三者的区别在于第一种是简化的安装方式,这种方式只编译了通用的linux测试用例,相对于后两种来说测试用例较少,不能较全面的覆盖linux。后面两种则要求相对全面的编译符合操作系统的测试用例。推荐使用第二种方法,make autotools可以自动判断适合操作系统的测试用例,而第三种方法则需要修改安装目录内的include/config.h文件,手动修改适合操作系统测试的配置文件。以下为详细说明。

       另外,如果编译在LTP安装目录外,则编译方法略有不同,此处不介绍。

二、      安装依赖

       LTP编译需要make 3.80+,最好是3.81。同时需要bison2.4.1+/yaccflex2.5.33+,如果使用autotool安装LTP,则需要automake-1.10+autoconf-2.61+

三、      快速安装

       解压ltp*.tar.bz,进入安装目录

./configure

make

make install

 

四、      使用autotools

       进入LTP安装目录

make autotools

./configure

make all

make  SKIP_IDCHECK=1 install

 

五、      不适用autotools

       进入LTP安装目录,同时你需要修改include/config.h,如果你想打开某个功能,修改方法为:#define HAVE_LINUX_PTRACE_H  1如果系统不含有某项功能你需要修改为#undef  HAVE_LINUX_PTRACE_H

 

cp include/config.h.default include/config.h

cp include/mk/config.mk.default include/mk/config.mk

cp include/mk/features.mk.default include/mk/features.mk

make all

make  SKIP_IDCHECK=1 install

 

       以下为fc13,默认的include/config.h,编译的时候遇一部分问题,以及解决方法。

FAQ 1:

ptrace01.c: 在函数‘main’:

ptrace01.c:189: 警告:隐式声明函数‘ptrace’

ptrace01.c:189: 错误:‘PTRACE_KILL’未声明(在此函数内第一次使用)

ptrace01.c:189: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其

ptrace01.c:189: 错误:所在的函数内也只报告一次。)

ptrace01.c: 在函数‘do_child’:

ptrace01.c:238: 错误:‘PTRACE_TRACEME’未声明(在此函数内第一次使用)

make[4]: *** [ptrace01] 错误 1

make[4]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls/ptrace'

make[3]: *** [all] 错误 2

make[3]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls'

make[2]: *** [all] 错误 2

make[2]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel'

make[1]: *** [all] 错误 2

make[1]: Leaving directory `/opt/ltp-full-20120104/testcases'

make: *** [testcases-all] 错误 2

 

解决方案:vi ../ltp-full-*/include/config.h

修改#undef  HAVE_LINUX_PTRACE_H #define HAVE_LINUX_PTRACE_H  1

 

 

 

FAQ:2

ptrace03.c:106: 错误:字段‘request’的类型不完全

ptrace03.c: 在函数‘main’:

ptrace03.c:158: 警告:隐式声明函数‘ptrace’

make[4]: *** [ptrace03] 错误 1

make[4]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls/ptrace'

make[3]: *** [all] 错误 2

make[3]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls'

make[2]: *** [all] 错误 2

make[2]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel'

make[1]: *** [all] 错误 2

make[1]: Leaving directory `/opt/ltp-full-20120104/testcases'

make: *** [testcases-all] 错误 2

解决方案:

最后一行添加 #define HAVE_SYS_PTRACE_H  1

 

FAQ3

signalfd01.c:66:22: 错误:signalfd.h:没有那个文件或目录

make[4]: *** [signalfd01] 错误 1

make[4]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls/signalfd'

make[3]: *** [all] 错误 2

make[3]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel/syscalls'

make[2]: *** [all] 错误 2

make[2]: Leaving directory `/opt/ltp-full-20120104/testcases/kernel'

make[1]: *** [all] 错误 2

make[1]: Leaving directory `/opt/ltp-full-20120104/testcases'

make: *** [testcases-all] 错误 2

 

解决办法:

修改#undef  HAVE_SYS_SIGNALFD_H  #define HAVE_SYS_SIGNALFD_H 1

 

 

FAQ4

gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall  -I../../../../include -I../../../../include   -L../../../../lib  acl1.c    -o acl1

acl1.c:35:21: 错误:sys/acl.h:没有那个文件或目录

acl1.c:41: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘testacl’

acl1.c: 在函数‘do_file_op’:

acl1.c:65: 警告:实参为 NULL,需要非 NULL (实参 2)

acl1.c: 在文件层:

acl1.c:83: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘test_acl_user_create’

acl1.c:93: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘test_acl_grp_create’

acl1.c:101: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘test_acl_default_create’

acl1.c:312: 错误:expected declaration specifiers or ‘...’ before ‘acl_t’

acl1.c: 在函数‘test_acl_default’:

acl1.c:317: 错误:‘acl_t’未声明(在此函数内第一次使用)

acl1.c:317: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其

acl1.c:317: 错误:所在的函数内也只报告一次。)

acl1.c:317: 错误:expected ‘;’ before ‘acl1’

acl1.c:319: 警告:隐式声明函数‘acl_set_file’

acl1.c:319: 错误:‘ACL_TYPE_DEFAULT’未声明(在此函数内第一次使用)

acl1.c:319: 错误:‘acl’未声明(在此函数内第一次使用)

acl1.c:320: 错误:‘acl1’未声明(在此函数内第一次使用)

acl1.c:320: 警告:隐式声明函数‘acl_get_file’

acl1.c:331: 错误:‘acl2’未声明(在此函数内第一次使用)

acl1.c:331: 错误:‘ACL_TYPE_ACCESS’未声明(在此函数内第一次使用)

acl1.c: 在函数‘main’:

acl1.c:351: 错误:‘acl_t’未声明(在此函数内第一次使用)

acl1.c:351: 错误:expected ‘;’ before ‘testacl’

acl1.c:353: 错误:‘testacl’未声明(在此函数内第一次使用)

acl1.c:353: 警告:隐式声明函数‘test_acl_user_create’

acl1.c:356: 错误:‘ACL_TYPE_ACCESS’未声明(在此函数内第一次使用)

acl1.c:366: 警告:隐式声明函数‘acl_free’

acl1.c:369: 警告:隐式声明函数‘test_acl_default_create’

acl1.c:370: 错误:提供给函数‘test_acl_default’的实参太多

acl1.c:373: 警告:隐式声明函数‘test_acl_grp_create’

make[4]: *** [acl1] 错误 1

make[4]: Leaving directory `/opt/ltp-full-20120104/testcases/network/nfsv4/acl'

make[3]: *** [all] 错误 2

make[3]: Leaving directory `/opt/ltp-full-20120104/testcases/network/nfsv4'

make[2]: *** [all] 错误 2

 

解决方案:

修改#ifdef  HAVE_SYS_ACL_H #undef  HAVE_SYS_ACL_H

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
前一篇:LTP介绍
后一篇:UNIXBENCH测试
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    < 前一篇LTP介绍
    后一篇 >UNIXBENCH测试
      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有