mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-07 17:15:29 +00:00
Use local ort python package in server model tests (#1027)
* Use local ort python package in server model tests * Create symlink for onnxruntime during test * Using generated _pb2.py in the build folder * Generate onnx_ml_pb2.py from ONNX CMakeList.txt * Update model tests for python package path * Only use onnx python package from build * Revert some changes for pb2.py generation
This commit is contained in:
parent
32da12491d
commit
2ad626752a
5 changed files with 31 additions and 17 deletions
|
|
@ -623,7 +623,7 @@ if (onnxruntime_BUILD_SERVER)
|
|||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${onnxruntime_integration_test_server_src}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/server_test/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_BINARY_DIR}/onnx_ml_pb2.py
|
||||
${CMAKE_CURRENT_BINARY_DIR}/server_test/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
|
|
|
|||
|
|
@ -4,16 +4,10 @@
|
|||
import os
|
||||
import sys
|
||||
import shutil
|
||||
|
||||
import onnx
|
||||
import onnxruntime
|
||||
import json
|
||||
|
||||
from google.protobuf.json_format import MessageToJson
|
||||
|
||||
import predict_pb2
|
||||
import onnx_ml_pb2
|
||||
|
||||
# Current models only have one input and one output
|
||||
def get_io_name(model_file_name):
|
||||
sess = onnxruntime.InferenceSession(model_file_name)
|
||||
|
|
@ -44,7 +38,7 @@ def gen_output_pb(pb_full_path, output_name, response_file_path):
|
|||
|
||||
|
||||
def tensor2dict(full_path):
|
||||
t = onnx.TensorProto()
|
||||
t = onnx_ml_pb2.TensorProto()
|
||||
with open(full_path, 'rb') as f:
|
||||
t.ParseFromString(f.read())
|
||||
|
||||
|
|
@ -140,6 +134,13 @@ if __name__ == '__main__':
|
|||
model_zoo = os.path.realpath(sys.argv[1])
|
||||
test_data = os.path.realpath(sys.argv[2])
|
||||
|
||||
sys.path.append(os.path.realpath(sys.argv[3]))
|
||||
sys.path.append(os.path.realpath(sys.argv[4]))
|
||||
|
||||
import onnxruntime
|
||||
import predict_pb2
|
||||
import onnx_ml_pb2
|
||||
|
||||
os.makedirs(test_data, exist_ok=True)
|
||||
gen_req_resp(model_zoo, test_data)
|
||||
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
import unittest
|
||||
import random
|
||||
import os
|
||||
import test_util
|
||||
import sys
|
||||
|
||||
|
||||
|
|
@ -101,6 +100,11 @@ class ModelZooTests(unittest.TestCase):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.path.append(sys.argv[4])
|
||||
sys.path.append(sys.argv[5])
|
||||
|
||||
import test_util
|
||||
|
||||
loader = unittest.TestLoader()
|
||||
|
||||
test_classes = [ModelZooTests]
|
||||
|
|
|
|||
|
|
@ -4,9 +4,13 @@
|
|||
import sys
|
||||
import random
|
||||
import unittest
|
||||
import function_tests
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.path.append(sys.argv[4])
|
||||
sys.path.append(sys.argv[5])
|
||||
|
||||
import function_tests
|
||||
|
||||
loader = unittest.TestLoader()
|
||||
|
||||
test_classes = [function_tests.HttpJsonPayloadTests, function_tests.HttpProtobufPayloadTests, function_tests.HttpEndpointTests]
|
||||
|
|
|
|||
|
|
@ -589,27 +589,32 @@ def run_server_tests(build_dir, configs):
|
|||
config_build_dir = get_config_build_dir(build_dir, config)
|
||||
if is_windows():
|
||||
server_app_path = os.path.join(config_build_dir, config, 'onnxruntime_server.exe')
|
||||
python_package_path = os.path.join(config_build_dir, config)
|
||||
else:
|
||||
server_app_path = os.path.join(config_build_dir, 'onnxruntime_server')
|
||||
python_package_path = config_build_dir
|
||||
server_test_folder = os.path.join(config_build_dir, 'server_test')
|
||||
server_test_data_folder = os.path.join(os.path.join(config_build_dir, 'testdata'), 'server')
|
||||
run_subprocess([sys.executable, 'test_main.py', server_app_path, server_test_data_folder, server_test_data_folder], cwd=server_test_folder, dll_path=None)
|
||||
run_subprocess([sys.executable, 'test_main.py', server_app_path, server_test_data_folder, server_test_data_folder, python_package_path, server_test_folder], cwd=server_test_folder, dll_path=None)
|
||||
|
||||
|
||||
def run_server_model_tests(build_dir, configs):
|
||||
for config in configs:
|
||||
config_build_dir = get_config_build_dir(build_dir, config)
|
||||
server_test_folder = os.path.join(config_build_dir, 'server_test')
|
||||
server_test_data_folder = os.path.join(config_build_dir, 'server_test_data')
|
||||
|
||||
if is_windows():
|
||||
server_app_path = os.path.join(config_build_dir, config, 'onnxruntime_server.exe')
|
||||
test_raw_data_folder = os.path.join(config_build_dir, 'models')
|
||||
python_package_path = os.path.join(config_build_dir, config)
|
||||
else:
|
||||
server_app_path = os.path.join(config_build_dir, 'onnxruntime_server')
|
||||
test_raw_data_folder = os.path.join(build_dir, 'models')
|
||||
|
||||
server_test_folder = os.path.join(config_build_dir, 'server_test')
|
||||
server_test_data_folder = os.path.join(config_build_dir, 'server_test_data')
|
||||
run_subprocess([sys.executable, 'model_zoo_data_prep.py', test_raw_data_folder, server_test_data_folder], cwd=server_test_folder, dll_path=None)
|
||||
run_subprocess([sys.executable, 'model_zoo_tests.py', server_app_path, test_raw_data_folder, server_test_data_folder], cwd=server_test_folder, dll_path=None)
|
||||
python_package_path = config_build_dir
|
||||
|
||||
run_subprocess([sys.executable, 'model_zoo_data_prep.py', test_raw_data_folder, server_test_data_folder, python_package_path, server_test_folder], cwd=server_test_folder, dll_path=None)
|
||||
run_subprocess([sys.executable, 'model_zoo_tests.py', server_app_path, test_raw_data_folder, server_test_data_folder, python_package_path, server_test_folder], cwd=server_test_folder, dll_path=None)
|
||||
|
||||
|
||||
def build_python_wheel(source_dir, build_dir, configs, use_cuda, use_ngraph, use_tensorrt, nightly_build = False):
|
||||
|
|
@ -708,7 +713,7 @@ def main():
|
|||
if args.use_tensorrt:
|
||||
args.use_cuda = True
|
||||
|
||||
if args.build_wheel:
|
||||
if args.build_wheel or args.enable_server_model_tests:
|
||||
args.enable_pybind = True
|
||||
|
||||
if args.build_csharp:
|
||||
|
|
|
|||
Loading…
Reference in a new issue