Compare commits

...
Author SHA1 Message Date
N0zoM1z0andKaoru0822 e2259b5264 chore: integrate current release-notes changes before verification
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 11:15:16 +00:00
N0zoM1z0andKaoru0822 3698e4f899 test(hopper): retain the updated platform-specific doctor contract
Main changed the same fixture before #3299 merged. Remove the obsolete synthetic loader setup, preserve main native platform readiness and exit assertions, and keep the Rizin readiness fix intact.

Fixes #3406

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 10:51:58 +00:00
N0zoM1z0andKaoru0822 a89ce212d6 Merge latest main and retain the upstream wrapper ownership correction
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 09:54:22 +00:00
N0zoM1z0andKaoru0822 74195532be test(hopper): provide controlled Linux loader evidence for doctor
Fixes #3406

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 09:43:37 +00:00
N0zoM1z0andKaoru0822 f62632e7a6 test(javascript): assert wrapper ownership in the correct source mode
Fixes #3341

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-14 09:17:25 +00:00
@@ -1,5 +1,5 @@
import { access, chmod, mkdir, readFile, writeFile } from "node:fs/promises";
import { delimiter, join } from "node:path";
import { access, chmod, mkdir, writeFile } from "node:fs/promises";
import { join } from "node:path";
import { expect } from "vitest";
@@ -18,35 +18,11 @@ cliTest.skipIf(!["darwin", "linux"].includes(process.platform))(
'#!/bin/sh\nprintf launched > "$REA_HOPPER_TEST_MARKER"\nexit 99\n',
);
await chmod(launcher, 0o700);
const loaderMarker = join(home, "loader-checked-launcher");
if (process.platform === "linux") {
// A shell fixture needs controlled loader diagnostics on Linux. This
// checks discovery and path preservation, not actual Hopper compatibility.
const loader = join(home, "bin", "ldd");
await writeFile(
loader,
[
"#!/bin/sh",
'test "$#" -eq 1 || exit 87',
'test "$1" = "$HOPPER_LAUNCHER_PATH" || exit 88',
'printf "%s" "$1" > "$REA_HOPPER_LDD_TEST_MARKER"',
'printf "%s\\n" "libc.so.6 => /fixture/libc.so.6 (0x1)"',
"",
].join("\n"),
);
await chmod(loader, 0o700);
}
const result = await cli.run({
arguments: ["doctor", "--provider", "hopper", "--json"],
cwd: home,
environment: {
...(process.platform === "linux"
? {
PATH: [join(home, "bin"), process.env.PATH ?? ""].join(delimiter),
REA_HOPPER_LDD_TEST_MARKER: loaderMarker,
}
: {}),
HOME: home,
USERPROFILE: home,
HOPPER_LAUNCHER_PATH: launcher,
@@ -79,7 +55,5 @@ cliTest.skipIf(!["darwin", "linux"].includes(process.platform))(
await expect(access(launchMarker)).rejects.toMatchObject({
code: "ENOENT",
});
if (process.platform === "linux")
expect(await readFile(loaderMarker, "utf8")).toBe(launcher);
},
);