Skip to content

Commit 0f908c9

Browse files
authoredJul 20, 2021
CVS-57651 - Task add target device for ovms c tests (#759)
* Add target_device fetched from ENV variable
1 parent 647b8d0 commit 0f908c9

12 files changed

+69
-33
lines changed
 

‎tests/functional/config.py

+3
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@
6262
"""TT_MINIO_IMAGE_NAME - Docker image for Minio"""
6363
minio_image = os.environ.get("TT_MINIO_IMAGE_NAME", "minio/minio:latest")
6464

65+
""" TT_TARGET_DEVICE - one of "CPU", "GPU" """
66+
target_device = os.environ.get("TT_TARGET_DEVICE", "CPU")
67+
6568
start_minio_container_command = 'server --address ":{}" /data'
6669

6770
container_minio_log_line = "Endpoint:"

‎tests/functional/config_template.json

+18-9
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,72 @@
55
"name":"resnet",
66
"base_path":"{path}/resnet",
77
"batch_size":"auto",
8-
"nireq": 4
8+
"nireq": 4,
9+
"target_device": "{target_device}"
910
}
1011
},
1112
{
1213
"config":{
1314
"name":"resnet_bs4",
1415
"base_path":"{path}/resnet_bs4",
15-
"nireq": 1
16+
"nireq": 1,
17+
"target_device": "{target_device}"
1618
}
1719
},
1820
{
1921
"config":{
2022
"name":"resnet_bs8",
2123
"base_path":"{path}/resnet_bs8",
22-
"nireq": 1
24+
"nireq": 1,
25+
"target_device": "{target_device}"
2326
}
2427
},
2528
{
2629
"config": {
2730
"name": "pvb_detection",
2831
"base_path": "{path}/pvb_detection",
29-
"batch_size":"4"
32+
"batch_size":"4",
33+
"target_device": "{target_device}"
3034
}
3135
},
3236
{
3337
"config": {
3438
"name": "pvb_face_multi_version",
3539
"base_path": "{path}/pvb_face_multi_version",
3640
"model_version_policy": {"all": {}},
37-
"plugin_config": {"CPU_THROUGHPUT_STREAMS": "CPU_THROUGHPUT_AUTO"}
41+
"plugin_config": {"CPU_THROUGHPUT_STREAMS": "CPU_THROUGHPUT_AUTO"},
42+
"target_device": "{target_device}"
3843
}
3944
},
4045
{
4146
"config": {
4247
"name": "resnet_s3",
43-
"base_path": "s3://inference/resnet"
48+
"base_path": "s3://inference/resnet",
49+
"target_device": "{target_device}"
4450
}
4551
},
4652
{
4753
"config": {
4854
"name": "face_detection_auto",
4955
"base_path": "{path}/face_detection",
50-
"shape": "auto"
56+
"shape": "auto",
57+
"target_device": "{target_device}"
5158
}
5259
},
5360
{
5461
"config": {
5562
"name": "face_detection_fixed_nonamed",
5663
"base_path": "{path}/face_detection",
57-
"shape": "(1, 3, 600, 600)"
64+
"shape": "(1, 3, 600, 600)",
65+
"target_device": "{target_device}"
5866
}
5967
},
6068
{
6169
"config": {
6270
"name": "face_detection_fixed_named",
6371
"base_path": "{path}/face_detection",
64-
"shape": {"data": "(1, 3, 600, 600)"}
72+
"shape": {"data": "(1, 3, 600, 600)"},
73+
"target_device": "{target_device}"
6574
}
6675
}
6776
]

‎tests/functional/fixtures/server_detection_model_fixtures.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ def start_server_face_detection_model_auto_shape(request):
3131
"nireq": 4}
3232
container_name_infix = "test-auto-shape"
3333
server = Server(request, start_server_command_args,
34-
container_name_infix, config.start_container_command)
34+
container_name_infix, config.start_container_command,
35+
target_device=config.target_device)
3536
return server.start()
3637

3738

@@ -46,7 +47,8 @@ def start_server_face_detection_model_named_shape(request):
4647
"nireq": 2}
4748
container_name_infix = "test-named-shape"
4849
server = Server(request, start_server_command_args,
49-
container_name_infix, config.start_container_command)
50+
container_name_infix, config.start_container_command,
51+
target_device=config.target_device)
5052
return server.start()
5153

5254

@@ -60,5 +62,6 @@ def start_server_face_detection_model_nonamed_shape(request):
6062
"nireq": 2}
6163
container_name_infix = "test-nonamed-shape"
6264
server = Server(request, start_server_command_args,
63-
container_name_infix, config.start_container_command)
65+
container_name_infix, config.start_container_command,
66+
target_device=config.target_device)
6467
return server.start()

‎tests/functional/fixtures/server_for_update_fixtures.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def start_server_update_flow_latest(request):
3636
"nireq": 1}
3737
container_name_infix = "test-update-latest"
3838
server = Server(request, start_server_command_args,
39-
container_name_infix, config.start_container_command)
39+
container_name_infix, config.start_container_command,
40+
target_device=config.target_device)
4041
return server.start()
4142

4243

@@ -52,5 +53,6 @@ def start_server_update_flow_specific(request):
5253
"model_version_policy": '\'{"specific": { "versions":[1, 3, 4] }}\''}
5354
container_name_infix = "test-update-specific"
5455
server = Server(request, start_server_command_args,
55-
container_name_infix, config.start_container_command)
56+
container_name_infix, config.start_container_command,
57+
target_device=config.target_device)
5658
return server.start()

‎tests/functional/fixtures/server_local_models_fixtures.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ def start_server_single_model(request):
3535
env_variables = ['SERIALIZATON=_prepare_output_as_AppendArrayToTensorProto']
3636

3737
server = Server(request, start_server_command_args,
38-
container_name_infix, config.start_container_command, env_variables)
38+
container_name_infix, config.start_container_command,
39+
env_variables, target_device=config.target_device)
3940
return server.start()
4041

4142
@pytest.fixture(scope="class")
@@ -50,7 +51,8 @@ def start_server_single_model_onnx(request):
5051
env_variables = ['SERIALIZATON=_prepare_output_as_AppendArrayToTensorProto']
5152

5253
server = Server(request, start_server_command_args,
53-
container_name_infix, config.start_container_command, env_variables)
54+
container_name_infix, config.start_container_command,
55+
env_variables, target_device=config.target_device)
5456
return server.start()
5557

5658
@pytest.fixture(scope="class")
@@ -69,5 +71,6 @@ def delete_mapping_file():
6971
"model_path": AgeGender.model_path}
7072
container_name_infix = "test-2-out"
7173
server = Server(request, start_server_command_args,
72-
container_name_infix, config.start_container_command)
74+
container_name_infix, config.start_container_command,
75+
target_device=config.target_device)
7376
return server.start()

‎tests/functional/fixtures/server_remote_models_fixtures.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ def start_server_single_model_from_gc(request):
4040
container_name_infix = "test-single-gs"
4141
envs = ['https_proxy=' + os.getenv('https_proxy', "")]
4242
server = Server(request, start_server_command_args,
43-
container_name_infix, config.start_container_command, envs)
43+
container_name_infix, config.start_container_command, envs,
44+
target_device=config.target_device)
4445
return server.start()
4546

4647

@@ -162,5 +163,6 @@ def start_server_single_model_from_minio(request, get_minio_server_s3):
162163
"model_path": ResnetS3.model_path}
163164
container_name_infix = "test-single-minio"
164165
server = Server(request, start_server_command_args,
165-
container_name_infix, config.start_container_command, envs)
166+
container_name_infix, config.start_container_command, envs,
167+
target_device=config.target_device)
166168
return server.start()

‎tests/functional/fixtures/server_with_batching_fixtures.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ def start_server_batch_model(request):
2828
"model_path": ResnetBS8.model_path}
2929
container_name_infix = "test-batch"
3030
server = Server(request, start_server_command_args,
31-
container_name_infix, config.start_container_command)
31+
container_name_infix, config.start_container_command,
32+
target_device=config.target_device)
3233
return server.start()
3334

3435

@@ -39,7 +40,8 @@ def start_server_batch_model_2out(request):
3940
"model_path": AgeGender.model_path}
4041
container_name_infix = "test-batch-2out"
4142
server = Server(request, start_server_command_args,
42-
container_name_infix, config.start_container_command)
43+
container_name_infix, config.start_container_command,
44+
target_device=config.target_device)
4345
return server.start()
4446

4547

@@ -51,7 +53,8 @@ def start_server_batch_model_auto(request):
5153
"batch_size": "auto"}
5254
container_name_infix = "test-autobatch"
5355
server = Server(request, start_server_command_args,
54-
container_name_infix, config.start_container_command)
56+
container_name_infix, config.start_container_command,
57+
target_device=config.target_device)
5558
return server.start()
5659

5760

@@ -63,7 +66,8 @@ def start_server_batch_model_auto_2out(request):
6366
"batch_size": "auto"}
6467
container_name_infix = "test-autobatch-2out"
6568
server = Server(request, start_server_command_args,
66-
container_name_infix, config.start_container_command)
69+
container_name_infix, config.start_container_command,
70+
target_device=config.target_device)
6771
return server.start()
6872

6973

@@ -75,7 +79,8 @@ def start_server_batch_model_bs4(request):
7579
"batch_size": 4}
7680
container_name_infix = "test-batch4"
7781
server = Server(request, start_server_command_args,
78-
container_name_infix, config.start_container_command)
82+
container_name_infix, config.start_container_command,
83+
target_device=config.target_device)
7984
return server.start()
8085

8186

‎tests/functional/fixtures/test_files_fixtures.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ def finalizer():
4040
with open(new_file_path, "w+") as config_file:
4141
for line in template:
4242
if "{path}" in line:
43-
config_file.write(line.replace("{path}", config.models_path))
44-
else:
45-
config_file.write(line)
43+
line = line.replace("{path}", config.models_path)
44+
elif "{target_device}" in line:
45+
line = line.replace("{target_device}", config.target_device)
46+
47+
config_file.write(line)

‎tests/functional/model_version_policy_config_template.json

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@
44
"config":{
55
"name":"latest",
66
"base_path":"{path}/model_ver",
7-
"model_version_policy": {"latest": { "num_versions":2 }}
7+
"model_version_policy": {"latest": { "num_versions":2 }},
8+
"target_device": "{target_device}"
89
}
910
},
1011
{
1112
"config": {
1213
"name": "specific",
1314
"base_path": "{path}/model_ver",
14-
"model_version_policy": {"specific": { "versions":[1, 3] }}
15+
"model_version_policy": {"specific": { "versions":[1, 3] }},
16+
"target_device": "{target_device}"
1517
}
1618
},
1719
{
1820
"config": {
1921
"name": "all",
2022
"base_path": "{path}/model_ver",
21-
"model_version_policy": {"all": {}}
23+
"model_version_policy": {"all": {}},
24+
"target_device": "{target_device}"
2225
}
2326
}
2427
]

‎tests/functional/object_model/docker.py

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ def finalizer():
7676
self.ensure_container_status(status=CONTAINER_STATUS_RUNNING, terminal_statuses=TERMINAL_STATUSES)
7777
self.ensure_logs_contains()
7878
logger.info(f"Container started grpc_port:{self.grpc_port}\trest_port{self.rest_port}")
79+
logger.debug(f"Container starting command args: {self.start_container_command}")
7980
return self.container, {"grpc_port": self.grpc_port, "rest_port": self.rest_port}
8081

8182
def save_container_logs(self):

‎tests/functional/object_model/ovms_docker.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
class OvmsDocker(Docker):
2424
def __init__(self, request, command_args, container_name_infix, start_container_command,
2525
env_vars=None, image=config.image, container_log_line=config.container_log_line,
26-
server_log_level=config.log_level):
26+
server_log_level=config.log_level, target_device=None):
2727
self.command_args = command_args
2828
self.container_name_infix = container_name_infix
2929
self.server_log_level = server_log_level
@@ -34,6 +34,8 @@ def __init__(self, request, command_args, container_name_infix, start_container_
3434
self.command_args["port"] = self.grpc_port
3535
self.command_args["rest_port"] = self.rest_port
3636
self.command_args["log_level"] = self.server_log_level
37+
if target_device:
38+
self.command_args["target_device"] = target_device
3739
self.start_container_command = start_ovms_container_command(self.start_container_command, self.command_args)
3840

3941
def start(self):

‎tests/functional/object_model/server.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
class Server:
2525
def __init__(self, request, command_args, container_name_infix, start_container_command,
2626
env_vars=None, image=config.image, container_log_line=config.container_log_line,
27-
server_log_level=config.log_level):
27+
server_log_level=config.log_level, target_device=None):
2828
self.request = request
2929
self.command_args = command_args
3030
self.container_name_infix = container_name_infix
@@ -33,12 +33,13 @@ def __init__(self, request, command_args, container_name_infix, start_container_
3333
self.image = image
3434
self.container_log_line = container_log_line
3535
self.server_log_level = server_log_level
36+
self.target_device = target_device
3637

3738
def start(self):
3839
if config.ovms_binary_path is not None:
3940
ovms = OvmsBinary(self.request, self.command_args, self.start_container_command, self.env_vars)
4041
else:
4142
ovms = OvmsDocker(self.request, self.command_args, self.container_name_infix,
4243
self.start_container_command, self.env_vars,
43-
self.image, self.container_log_line, self.server_log_level)
44+
self.image, self.container_log_line, self.server_log_level, self.target_device)
4445
return ovms.start()

0 commit comments

Comments
 (0)
Please sign in to comment.