summaryrefslogtreecommitdiff
path: root/tests/utils.ts
diff options
context:
space:
mode:
authorIm-Beast <franik.mateusz@gmail.com>2024-12-29 14:28:12 +0100
committerIm-Beast <franik.mateusz@gmail.com>2024-12-29 14:28:12 +0100
commit6a34d7e70661b7a1009164bf543e08d1a59ae17e (patch)
tree6a4cd7e8b72ec61f2f89ae7d6bcd8475b0544ad6 /tests/utils.ts
parent1ab3364489783b1913fc786a4dad50cd0114a7a7 (diff)
tests: don't try to extract file if out already exists
Diffstat (limited to 'tests/utils.ts')
-rwxr-xr-xtests/utils.ts34
1 files changed, 26 insertions, 8 deletions
diff --git a/tests/utils.ts b/tests/utils.ts
index 348ded9..86501a8 100755
--- a/tests/utils.ts
+++ b/tests/utils.ts
@@ -50,6 +50,18 @@ export function loadDylib(coin: Coin, version: MoneroCVersion) {
}
}
+async function exists(path: string): Promise<boolean> {
+ try {
+ await Deno.stat(path);
+ return true;
+ } catch (error) {
+ if (error instanceof Deno.errors.NotFound) {
+ return false;
+ }
+ throw error;
+ }
+}
+
export async function extract(path: string, out: string) {
const outDir = out.endsWith("/") ? out : dirname(out);
await Deno.mkdir(outDir, { recursive: true });
@@ -169,19 +181,25 @@ export async function prepareMoneroC(coin: Coin, version: MoneroCVersion) {
const releaseDylibName = dylibName.slice(`${coin}_`.length);
if (version === "next") {
- await extract(
- `./release/${coin}/${releaseDylibName}.xz`,
- `./tests/dependencies/libs/next/${moneroTsDylibName}`,
- );
+ const outFileDir = `./tests/dependencies/libs/${version}/${moneroTsDylibName}`;
+
+ if (await exists(outFileDir)) {
+ return;
+ }
+
+ await extract(`./release/${coin}/${releaseDylibName}.xz`, outFileDir);
} else {
+ const outFileDir = `./tests/dependencies/libs/${version}/${moneroTsDylibName}`;
+
+ if (await exists(outFileDir)) {
+ return;
+ }
+
const downloadInfo = dylibInfos[coin].find((info) => info.outDir?.endsWith(version));
if (downloadInfo) {
await downloadDependencies(downloadInfo);
}
- await extract(
- `./tests/dependencies/libs/${version}/${dylibName}.xz`,
- `./tests/dependencies/libs/${version}/${moneroTsDylibName}`,
- );
+ await extract(`./tests/dependencies/libs/${version}/${dylibName}.xz`, outFileDir);
}
}