LLVM 灵活模式匹配文件验证器的独立 Swift 版本
FileCheck 是一个用于验证两个文件的内容是否匹配的实用程序(例如,一个来自标准输入,另一个驻留在磁盘上)。 此 FileCheck 实现强调将其用作一种工具,用于根据预期的一组字符串检查程序生成的输出,这些字符串可以内联地指定在生成它的 print
语句旁边。
此包中的主要 API 是 fileCheckOutput
函数,它带有一系列方便的可选参数,用于修改验证过程的行为。 例如,这是一个自包含的测试,用于验证 FizzBuzz 的输出
assert(fileCheckOutput(withPrefixes: ["FIZZBUZZ"]) {
for i in (1..<10) {
var out = ""
if i % 3 == 0 {
out += "Fizz"
}
if i % 5 == 0 {
out += "Buzz"
}
if out.isEmpty {
out += "\(i)"
}
// FIZZBUZZ: 1
// FIZZBUZZ-NEXT: 2
// FIZZBUZZ-NEXT: Fizz
// FIZZBUZZ-NEXT: 4
// FIZZBUZZ-NEXT: Buzz
// FIZZBUZZ-NEXT: Fizz
// FIZZBUZZ-NEXT: 7
// FIZZBUZZ-NEXT: 8
// FIZZBUZZ-NEXT: Fizz
print(out)
}
})
在任何文件中执行此测试都会导致 FileCheck 从磁盘读取它,并根据注释中的检查字符串验证程序的输出。
使用 Swift Package Manager
Package.swift
文件的 dependencies 部分.package(url: "https://github.com/llvm-swift/FileCheck.git", "0.0.1"..."1.0.0")
此项目是在 MIT 许可证下发布的,该许可证的副本可在本仓库中找到。