LLVM中FileCheck开发者工具–1--命令介绍
命令格式:
FileCheck match-filename [–check-prefix=XXX] [–strict-whitespace]
描述:
FileCheck
命令读取两个文件,一个从标准输入流读取,另一个为命令行中的match-filename
参数。该命令使用后者(match-filename指定的文件)去校验前者。FileCheck
命令在测试(testsuites)中非常有用,例如,用于校验llc
命令的输出结果中是否包含期望的信息。
FileCheck
的功能类似于grep
,但在对于输入文件的不同特定顺序和多种匹配规则方面做了很大的优化。
--input-file
选项可以指定FileCheck
命令从文件中读入待校验的输入文件。如果不指定该选项默认从标准输入流读取。
选项
所有的选项可以从设置的环境变量FILECHECK_OPTS
和从命令行中解析。
-
-help
略
-
–check-prefix prefix
FileCheck
搜索match-filename文件的内容中用作匹配的模式规则。默认情况下,模式规则都是以"CHECK:"开头的。如果你想使用不同的模式规则的前缀,使用--check-prefix
选项可以指定一个或多个模式规则的前缀用于匹配。使用该选项一般由于,多个工具或者功能的测试检测,需要用到同一个输入文件。 -
–check-prefixs prefix1,prefix2,…
--check-prefix
选项的别名,它允许指定多个逗号分割的模式匹配前缀。 -
–input-file filename
指定检查的文件,默认从标准输入流读取。
-
–match-full-lines
默认,
FileCheck
允许匹配一行的任何位置。该选项要求所有的肯定匹配
模式,匹配整行。除非设定了
--strict-whitespace
选项,行首/尾的空白字符才会被匹配忽略,但否定匹配(CHECK-NOT)不受该选项的影响。Note:
-
肯定匹配(positive matches):匹配任务中有效的匹配模式,在
FileCheck
中一般指*–check-prefix**选项或者默认的"CHECK:"开头的匹配规则* -
否定匹配(negative matches):一般指"CHECK-NOT"开头的匹配规则,这种匹配规则,一般用于检查两个规则之间没有出现过某个字符。
-
-
–strict–whitespace
默认情况下,
FileCheck
规范化输入水平空白(空格和制表符),这导致它忽略一些差异(空格将匹配制表符)。 该参数禁用此行为。 在所有模式下,行尾序列均被规范化为UNIX样式\ n。 -
–ignore–case
默认情况下,
FileCheck
的匹配是大小写敏感的。 -
–implicit-check-not check-pattern
在肯定检查之间为指定的模式添加隐式否定检查。 该选项允许在不用"CHECK-NOT"下,编写更严格的测试。
例如,在测试一些工具的诊断信息(如
clang -verify
)的时候,使用--implicit-check-not warning:
选项非常有用,它不会检查匹配输入中包含warning:
的诊断信息。 -
–dump-input
将输入转储输出到stderr,并追加诊断注释信息。参数接受
always
,fail
,never
等模式,具体参考命令的帮助信息。 -
–dump-input-on-failure
如果检查失败,则转储所有原始输入到stderr。 此选项已经被
弃用了
,而建议使用–dump-input = fail。 -
–enable-var-scope
启用正则表达式变量的作用域。
名称以$开头的变量被认为是全局变量,并在整个文件中保持设置状态。
在遇到每个CHECK-LABEL之后,所有其他变量均未定义。
-
-D<VAR=VALUE>
为变量VAR设置VALUE,VAR变量可在"CHECK:"行中使用。
-
-D#,=
设置一个
FileCheck
的匹配格式为FMT的数字变量NUMVAR,可在"CHECK:"行中使用来计算结果。 -
-version
略
-
-v
打印良好的指令模式匹配。 但是,如果-input-dump = fail或-input-dump = always,则将这些匹配项添加为输入注释。
-
-vv
打印有助于诊断
FileCheck
内部问题的信息,如:丢弃重叠CHECK-DAG,隐式的EOF模式匹配和没有匹配的CHECK-NOT。 -
–allow-deprecated-dag-overlap
启用一组连续的CHECK-DAG指令之间的重叠匹配。该选项已经被弃用了,它为老的测试用例迁移到新的不重叠CHECK-DAG测试在实现中提供便利。
-
–color
设置输出流的颜色,默认是自动的设置。
退出状态
如果成功,退出码为0。否则为非0。