FileCheck

Build Status

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(url: "https://github.com/llvm-swift/FileCheck.git", "0.0.1"..."1.0.0")

作者

许可

此项目是在 MIT 许可证下发布的,该许可证的副本可在本仓库中找到。