Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Test the hub return values by default.
*/
add_task(async function test_hub_by_default() {
const { cleanup, remoteClients } = await setup();
info("Get the engine");
const engineInstance = await createEngine({
taskName: "moz-echo",
});
info("Run the inference");
const inferencePromise = engineInstance.run({ data: "This gets echoed." });
info("Wait for the pending downloads.");
await remoteClients["ml-onnx-runtime"].resolvePendingDownloads(1);
Assert.equal(
(await inferencePromise).output.echo,
"This gets echoed.",
"The text gets echoed exercising the whole flow."
);
Assert.equal(
(await inferencePromise).output.modelHubUrlTemplate,
"{model}/{revision}",
"Default template should be model/revision"
);
Assert.equal(
(await inferencePromise).output.modelRevision,
"main",
"modelRevision should be main"
);
ok(
!EngineProcess.areAllEnginesTerminated(),
"The engine process is still active."
);
await EngineProcess.destroyMLEngine();
await cleanup();
});
/**
* Tests that the pipeline can use a custom model hub.
*/
add_task(async function test_ml_custom_hub() {
const { cleanup, remoteClients } = await setup();
info("Get engineInstance");
const options = new PipelineOptions({
taskName: "summarization",
modelId: "test-echo",
modelRevision: "main",
modelHubUrlTemplate: "models/{model}/{revision}",
});
const engineInstance = await createEngine(options);
info("Run the inference");
const inferencePromise = engineInstance.run({
args: ["This gets echoed."],
});
info("Wait for the pending downloads.");
await remoteClients["ml-onnx-runtime"].resolvePendingDownloads(1);
let res = await inferencePromise;
Assert.equal(
res.output,
"This gets echoed.",
"The text get echoed exercising the whole flow."
);
Assert.equal(
res.config.modelHubRootUrl,
"The pipeline used the custom hub"
);
ok(
!EngineProcess.areAllEnginesTerminated(),
"The engine process is still active."
);
await EngineProcess.destroyMLEngine();
await cleanup();
});