setup-cpp/src/gcc/__tests__/gcc.test.ts

34 lines
1.1 KiB
TypeScript
Raw Normal View History

2021-09-16 23:15:43 +08:00
import { testBin } from "../../utils/tests/test-helpers"
2021-09-16 22:03:54 +08:00
import { setupGcc } from "../gcc"
2021-09-17 07:21:11 +08:00
import { getVersion } from "../../default_versions"
import path from "path"
import execa from "execa"
import { addBinExtension } from "../../utils/extension/extension"
import { chmodSync } from "fs"
2021-09-16 22:03:54 +08:00
jest.setTimeout(3000000)
2021-09-16 22:03:54 +08:00
describe("setup-gcc", () => {
it("should setup gcc", async () => {
2022-01-23 09:41:18 +08:00
const version = getVersion("gcc", undefined) || "11"
2021-09-17 07:21:11 +08:00
const installInfo = await setupGcc(version, "", process.arch)
2021-09-16 22:03:54 +08:00
2021-09-17 07:15:25 +08:00
let gpp = "g++"
if (process.platform !== "win32") {
2021-09-17 07:21:11 +08:00
gpp = `g++-${version}`
2021-09-17 07:15:25 +08:00
}
await testBin(gpp, ["--version"], installInfo?.binDir)
expect(process.env.CC?.includes("gcc")).toBeTruthy()
expect(process.env.CXX?.includes("g++")).toBeTruthy()
// test compilation
const file = path.join(__dirname, "main.cpp")
const main_exe = path.join(__dirname, addBinExtension("main"))
execa.sync("g++", [file, "-o", main_exe], { cwd: __dirname })
if (process.platform !== "win32") {
chmodSync(main_exe, "755")
}
execa.sync(main_exe, { cwd: __dirname, stdio: "inherit" })
2021-09-16 22:03:54 +08:00
})
})