From 9c69e81cbb033362d269e1c212ccd6d1f1f92d91 Mon Sep 17 00:00:00 2001 From: Jiyoung Giuliana Yun Date: Fri, 2 Jun 2023 12:21:02 +0900 Subject: [PATCH] [Toolchain] Implement profile in ToolchainEnv (#1576) This commit implements profile function in ToolchainEnv. ONE-vscode-DCO-1.0-Signed-off-by: Jiyoung Yun --- src/Tests/Toolchain/ToolchainEnv.test.ts | 12 ++++++++++++ src/Toolchain/ToolchainEnv.ts | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/Tests/Toolchain/ToolchainEnv.test.ts b/src/Tests/Toolchain/ToolchainEnv.test.ts index 32670733..ffb7ec3d 100644 --- a/src/Tests/Toolchain/ToolchainEnv.test.ts +++ b/src/Tests/Toolchain/ToolchainEnv.test.ts @@ -294,5 +294,17 @@ suite("Toolchain", function () { }); }); }); + + suite("#profile()", function () { + test("NEG: requests unimplemented profile", async function () { + let env = new ToolchainEnv(compiler); + const invalidToolchain = env.listInstalled(); + assert.isAbove(invalidToolchain.length, 0); + const model = "model.bin"; + await env.profile(invalidToolchain[0], model).catch(() => { + assert.isTrue(true); + }); + }); + }); }); }); diff --git a/src/Toolchain/ToolchainEnv.ts b/src/Toolchain/ToolchainEnv.ts index 986491d6..3170f92a 100644 --- a/src/Toolchain/ToolchainEnv.ts +++ b/src/Toolchain/ToolchainEnv.ts @@ -204,6 +204,22 @@ class ToolchainEnv extends Env { this.executeEnv(jobs); }); } + + public profile( + toolchain: Toolchain, + model: string, + options?: Map + ): Promise { + return new Promise((resolve, reject) => { + const jobs: Array = []; + const job = new JobConfig(toolchain.runProfile(model, options)); + job.workDir = path.dirname(model); + job.successCallback = () => resolve(true); + job.failureCallback = () => reject(); + jobs.push(job); + this.executeEnv(jobs); + }); + } } /**