From 6558fa641b2b762f710c02448c887c40e60b1d18 Mon Sep 17 00:00:00 2001 From: HÃ¥vard Pettersen Date: Wed, 23 Jun 2021 13:53:28 +0000 Subject: dry run onnx models on setup --- .../verify_ranksetup/verify_ranksetup_test.cpp | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'searchcore/src/tests') diff --git a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp index fc70bafed7f..c13440de4d5 100644 --- a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp +++ b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp @@ -188,6 +188,7 @@ struct Setup { out.fmt("model[%zu].output[%zu].as \"%s\"\n", idx, idx2, output.second.c_str()); ++idx2; } + out.fmt("model[%zu].dry_run_on_setup %s\n", idx, entry.second.dry_run_on_setup() ? "true" : "false"); ++idx; } } @@ -269,6 +270,10 @@ struct OnnxSetup : Setup { .input_feature("attribute_tensor", "rankingExpression(at)") .input_feature("bias_tensor", "rankingExpression(bt)") .output_name("output", "result")); + add_onnx_model(OnnxModel("fragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx")) + .dry_run_on_setup(true)); + add_onnx_model(OnnxModel("unfragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx")) + .dry_run_on_setup(false)); } }; @@ -417,6 +422,24 @@ TEST_F("require that onnx model can have inputs and outputs mapped", OnnxSetup() f.verify_valid({"onnxModel(mapped).result"}); } +TEST_F("require that fragile model can pass verification", OnnxSetup()) { + f.rank_expr("in1", "tensor(a[2]):[1,2]"); + f.rank_expr("in2", "tensor(a[2]):[3,4]"); + f.verify_valid({"onnxModel(fragile)"}); +} + +TEST_F("require that broken fragile model fails verification", OnnxSetup()) { + f.rank_expr("in1", "tensor(a[2]):[1,2]"); + f.rank_expr("in2", "tensor(a[3]):[3,4,31515]"); + f.verify_invalid({"onnxModel(fragile)"}); +} + +TEST_F("require that broken fragile model without dry-run passes verification", OnnxSetup()) { + f.rank_expr("in1", "tensor(a[2]):[1,2]"); + f.rank_expr("in2", "tensor(a[3]):[3,4,31515]"); + f.verify_valid({"onnxModel(unfragile)"}); +} + //----------------------------------------------------------------------------- TEST_F("cleanup files", Setup()) { -- cgit v1.2.3