2022-05-21 10:16:58 +08:00
|
|
|
import { syncVersions, getVersion } from "../default_versions"
|
2022-05-06 09:37:44 +08:00
|
|
|
import { getCompilerInfo, Inputs, parseArgs } from "../main"
|
2021-11-22 06:40:30 +08:00
|
|
|
|
|
|
|
jest.setTimeout(300000)
|
|
|
|
describe("getCompilerInfo", () => {
|
|
|
|
it("version will be undefined if not provided", () => {
|
|
|
|
const { compiler, version } = getCompilerInfo("llvm")
|
|
|
|
expect(compiler).toBe("llvm")
|
|
|
|
expect(version).toBeUndefined()
|
|
|
|
})
|
|
|
|
|
|
|
|
it("extracts version", () => {
|
|
|
|
const { compiler, version } = getCompilerInfo("llvm-12.0.0")
|
|
|
|
expect(compiler).toBe("llvm")
|
|
|
|
expect(version).toBe("12.0.0")
|
|
|
|
})
|
|
|
|
|
|
|
|
it("finds a version even if not semver", () => {
|
|
|
|
const { compiler, version } = getCompilerInfo("llvm-12")
|
|
|
|
expect(compiler).toBe("llvm")
|
|
|
|
expect(version).toBe("12")
|
|
|
|
})
|
|
|
|
})
|
2022-05-06 09:37:44 +08:00
|
|
|
|
|
|
|
describe("syncVersion", () => {
|
2022-05-13 03:55:00 +08:00
|
|
|
it("Syncs llvm tools versions", () => {
|
2022-05-06 09:37:44 +08:00
|
|
|
const llvmTools = ["llvm", "clangtidy", "clangformat"] as Inputs[]
|
|
|
|
expect(syncVersions(parseArgs(["--llvm", "14.0.0", "--clangtidy", "true"]), llvmTools)).toBe(true)
|
|
|
|
expect(syncVersions(parseArgs(["--llvm", "13.0.0", "--clangtidy", "true"]), llvmTools)).toBe(true)
|
|
|
|
expect(syncVersions(parseArgs(["--llvm", "13.0.0", "--clangtidy", "12.0.0"]), llvmTools)).toBe(false)
|
|
|
|
|
|
|
|
const opts = parseArgs(["--llvm", "14.0.0", "--clangtidy", "true"])
|
|
|
|
expect(syncVersions(opts, llvmTools)).toBe(true)
|
|
|
|
expect(opts.llvm).toBe(opts.clangtidy)
|
|
|
|
})
|
2022-05-21 10:28:05 +08:00
|
|
|
})
|
2022-05-21 10:16:58 +08:00
|
|
|
|
2022-05-21 10:28:05 +08:00
|
|
|
describe("getVersion", () => {
|
|
|
|
it("gcovr", () => {
|
|
|
|
expect(getVersion("gcovr", "5.0")).toBe("5.0")
|
|
|
|
if (process.platform === "linux") {
|
2022-10-06 06:01:51 +08:00
|
|
|
expect(getVersion("gcovr", "true", [22, 4])).toBe("5.2")
|
|
|
|
expect(getVersion("gcovr", "true", [20, 4])).toBe("5.2")
|
2022-05-21 10:28:05 +08:00
|
|
|
expect(getVersion("gcovr", "true", [18, 4])).toBe("5.0")
|
|
|
|
}
|
|
|
|
})
|
2022-05-21 10:16:58 +08:00
|
|
|
|
2022-05-21 10:28:05 +08:00
|
|
|
it("llvm", () => {
|
|
|
|
expect(getVersion("llvm", "13.0.0")).toBe("13.0.0")
|
|
|
|
if (process.platform === "linux") {
|
|
|
|
expect(getVersion("llvm", "true", [20, 4])).toBe("13.0.0-ubuntu-20.04")
|
|
|
|
expect(getVersion("llvm", "true", [18, 4])).toBe("13.0.1-ubuntu-18.04")
|
|
|
|
expect(getVersion("llvm", "true", [16, 4])).toBe("13.0.0-ubuntu-16.04")
|
|
|
|
}
|
2022-05-21 10:16:58 +08:00
|
|
|
})
|
2022-05-06 09:37:44 +08:00
|
|
|
})
|