test(hopper): verify alternate Linux launcher path
This commit is contained in:
parent
db202c2b6a
commit
d93257b50f
|
|
@ -57,7 +57,7 @@ jobs:
|
|||
npm install --global --prefix "${prefix}" "./${tarball}"
|
||||
echo "REA_VERIFY_SERVER_COMMAND=${prefix}/bin/rea" >> "${GITHUB_ENV}"
|
||||
echo 'REA_VERIFY_SERVER_ARGS_JSON=["mcp"]' >> "${GITHUB_ENV}"
|
||||
- name: Verify two binaries through the in-process bridge
|
||||
- name: Verify two binaries through an alternate launcher symlink
|
||||
env:
|
||||
HOPPER_TARGET_PATH: ${{ inputs.first_target }}
|
||||
HOPPER_SECOND_TARGET_PATH: ${{ inputs.second_target }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import { access } from "node:fs/promises";
|
||||
import { access, mkdtemp, rm, symlink } from "node:fs/promises";
|
||||
import { execFile } from "node:child_process";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { promisify } from "node:util";
|
||||
|
||||
const execFileAsync = promisify(execFile);
|
||||
|
|
@ -14,5 +16,14 @@ await access("/usr/bin/python3");
|
|||
const linked = await execFileAsync("ldd", [launcher]);
|
||||
if (`${linked.stdout}\n${linked.stderr}`.includes("not found"))
|
||||
throw new Error("Hopper has unresolved shared-library dependencies");
|
||||
process.env.HOPPER_LAUNCHER_PATH = launcher;
|
||||
await import("./verify-real-hopper.mjs");
|
||||
const alternateDirectory = await mkdtemp(
|
||||
join(tmpdir(), "rea-real-hopper-launcher-"),
|
||||
);
|
||||
const alternateLauncher = join(alternateDirectory, "Hopper-alternate");
|
||||
try {
|
||||
await symlink(launcher, alternateLauncher);
|
||||
process.env.HOPPER_LAUNCHER_PATH = alternateLauncher;
|
||||
await import("./verify-real-hopper.mjs");
|
||||
} finally {
|
||||
await rm(alternateDirectory, { recursive: true, force: true });
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue