// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #include "gtest/gtest.h" #include "gmock/gmock.h" #include "server_configuration.h" namespace onnxruntime { namespace server { namespace test { TEST(ConfigParsingTests, AllArgs) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--model_path"), const_cast("testdata/mul_1.onnx"), const_cast("--model_name"), const_cast("mul_1"), const_cast("--model_version"), const_cast("1"), const_cast("--address"), const_cast("4.4.4.4"), const_cast("--http_port"), const_cast("80"), const_cast("--num_http_threads"), const_cast("1"), const_cast("--log_level"), const_cast("info")}; onnxruntime::server::ServerConfiguration config{}; Result res = config.ParseInput(15, test_argv); EXPECT_EQ(res, Result::ContinueSuccess); EXPECT_EQ(config.model_path, "testdata/mul_1.onnx"); EXPECT_EQ(config.model_name, "mul_1"); EXPECT_EQ(config.model_version, "1"); EXPECT_EQ(config.address, "4.4.4.4"); EXPECT_EQ(config.http_port, 80); EXPECT_EQ(config.num_http_threads, 1); EXPECT_EQ(config.logging_level, ORT_LOGGING_LEVEL_INFO); } TEST(ConfigParsingTests, Defaults) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--model_path"), const_cast("testdata/mul_1.onnx"), const_cast("--num_http_threads"), const_cast("3")}; onnxruntime::server::ServerConfiguration config{}; Result res = config.ParseInput(5, test_argv); EXPECT_EQ(res, Result::ContinueSuccess); EXPECT_EQ(config.model_path, "testdata/mul_1.onnx"); EXPECT_EQ(config.model_name, "default"); EXPECT_EQ(config.model_version, "1"); EXPECT_EQ(config.address, "0.0.0.0"); EXPECT_EQ(config.http_port, 8001); EXPECT_EQ(config.num_http_threads, 3); EXPECT_EQ(config.logging_level, ORT_LOGGING_LEVEL_INFO); } TEST(ConfigParsingTests, Help) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--help")}; onnxruntime::server::ServerConfiguration config{}; auto res = config.ParseInput(2, test_argv); EXPECT_EQ(res, Result::ExitSuccess); } TEST(ConfigParsingTests, NoModelArg) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--num_http_threads"), const_cast("3")}; onnxruntime::server::ServerConfiguration config{}; Result res = config.ParseInput(3, test_argv); EXPECT_EQ(res, Result::ExitFailure); } TEST(ConfigParsingTests, ModelNotFound) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--model_path"), const_cast("does/not/exist"), const_cast("--address"), const_cast("4.4.4.4"), const_cast("--http_port"), const_cast("80"), const_cast("--num_http_threads"), const_cast("1")}; onnxruntime::server::ServerConfiguration config{}; Result res = config.ParseInput(9, test_argv); EXPECT_EQ(res, Result::ExitFailure); } TEST(ConfigParsingTests, WrongLoggingLevel) { char* test_argv[] = { const_cast("/path/to/binary"), const_cast("--log_level"), const_cast("not a logging level"), const_cast("--model_path"), const_cast("testdata/mul_1.onnx"), const_cast("--address"), const_cast("4.4.4.4"), const_cast("--http_port"), const_cast("80"), const_cast("--num_http_threads"), const_cast("1")}; onnxruntime::server::ServerConfiguration config{}; Result res = config.ParseInput(11, test_argv); EXPECT_EQ(res, Result::ExitFailure); } } // namespace test } // namespace server } // namespace onnxruntime