Skip to content
Snippets Groups Projects
Commit 5706a438 authored by jgatt's avatar jgatt
Browse files

added test + comment to test

parent a5c7b510
No related branches found
No related tags found
1 merge request!12Merge Request multibehavior
Checking pipeline status
...@@ -3,7 +3,10 @@ from test_users import run_user, assert_exec_time_equals_profile ...@@ -3,7 +3,10 @@ from test_users import run_user, assert_exec_time_equals_profile
schedconf_file = 'test-instances/user_description_file.json' schedconf_file = 'test-instances/user_description_file.json'
create_dir_rec_if_needed("test-instances") create_dir_rec_if_needed("test-instances")
import json import json
def make_error_file(seed=None,red_windows=None,yellow_windows=None) : def make_error_file(seed=None,red_windows=None,yellow_windows=None) :
"""Create a simple user_description_file with the given parameters to check for proper handling of errors"""
error_file = { error_file = {
"users": [ "users": [
{ {
...@@ -26,6 +29,7 @@ def make_error_file(seed=None,red_windows=None,yellow_windows=None) : ...@@ -26,6 +29,7 @@ def make_error_file(seed=None,red_windows=None,yellow_windows=None) :
json.dump(error_file,error_description_file) json.dump(error_file,error_description_file)
def error_user(user_name, platform_multiC, expected_error="", test_name=None, schedconf=None): def error_user(user_name, platform_multiC, expected_error="", test_name=None, schedconf=None):
"""Launch a simulation and check if the expected_error is risen"""
if test_name == None: if test_name == None:
test_name = f'{user_name}-{platform_multiC.name}' test_name = f'{user_name}-{platform_multiC.name}'
if schedconf == None: if schedconf == None:
......
...@@ -43,6 +43,22 @@ def make_monolithic_file(user_name, input_json, probability_name, seed=None, red ...@@ -43,6 +43,22 @@ def make_monolithic_file(user_name, input_json, probability_name, seed=None, red
with open(schedconf_file, 'w+') as error_description_file : with open(schedconf_file, 'w+') as error_description_file :
json.dump(error_file,error_description_file) json.dump(error_file,error_description_file)
def monolithics_test(proba_names,names,input_json,seed=None,red_windows=None,yellow_windows=None) :
""" test a monolithic behavior on red_windows or yellow_windows and compare to their dm_user_replay class equivalent"""
schedconf_file = 'test-instances/user_description_file.json'
for proba_name in proba_names :
behavior_name = proba_name.split("_")[-1]
make_monolithic_file(names, input_json, proba_name,seed=seed, red_windows=red_windows,yellow_windows=yellow_windows)
test_file_name=f'dm_user_multi_behavior_{proba_name}_only'
out_dir = run_user(test_file_name, two_machine_platform,
test_name=test_file_name, schedconf = schedconf_file)
if not("comm" in out_dir):
content_job = open(out_dir + "/_jobs.csv").readlines()
if not("rigid" in out_dir):
expected_log = open(f"test/expected_log/dm_user_{behavior_name}-2machines_jobs.csv").readlines()
else :
expected_log = open(f"test/expected_log/replay_user_rigid-2machines_jobs.csv").readlines()
assert content_job == expected_log
def test_dm_user_delay(platform_multiC): def test_dm_user_delay(platform_multiC):
out_dir = run_user("dm_user_delay", platform_multiC) out_dir = run_user("dm_user_delay", platform_multiC)
assert_exec_time_equals_profile(out_dir) assert_exec_time_equals_profile(out_dir)
...@@ -76,20 +92,15 @@ def test_dm_user_multi_behavior_C_you_later_only(platform_multiC) : ...@@ -76,20 +92,15 @@ def test_dm_user_multi_behavior_C_you_later_only(platform_multiC) :
run_user("dm_user_multi_behavior_C_you_later_only", platform_multiC) run_user("dm_user_multi_behavior_C_you_later_only", platform_multiC)
run_user("dm_user_multi_behavior_C_you_later_only_two_jobs", platform_multiC) run_user("dm_user_multi_behavior_C_you_later_only_two_jobs", platform_multiC)
def test_dm_user_multi_behavior_monobehavior(platform_multiC) : def test_dm_user_multi_behavior_monobehavior_red(platform_multiC) :
schedconf_file = 'test-instances/user_description_file.json' """ Test users that only do one behavior in red_window"""
proba_names= ["red_prob_degrad", "red_prob_rigid", "red_prob_reconfig", "red_prob_renonce"] proba_names= ["red_prob_degrad", "red_prob_rigid", "red_prob_reconfig", "red_prob_renonce"]
names = ["user" + str(i+14) for i in range(3)] + ["user18"] names = ["user" + str(i+14) for i in range(3)] + ["user18"]
input_json = ["test/workloads/dyn/user" + str(i+14) + ".json" for i in range(3)] + ["test/workloads/dyn/user18.json"] input_json = ["test/workloads/dyn/user" + str(i+14) + ".json" for i in range(3)] + ["test/workloads/dyn/user18.json"]
for proba_name in proba_names : monolithics_test(proba_names,names,input_json,seed=3,red_windows=[[200000, 300000]])
make_monolithic_file(names, input_json, proba_name,seed=3, red_windows=[[200000, 300000]]) def test_dm_user_multi_behabior_monobehavior_yellow(platform_multiC) :
test_file_name=f'dm_user_multi_behavior_{proba_name[9:]}_only' """ Test users that only do one behavior in yellow_windows"""
out_dir = run_user(test_file_name, two_machine_platform, proba_names = ["yellow_prob_reconfig", "yellow_prob_degrad","yellow_prob_rigid"]
test_name=test_file_name, schedconf = schedconf_file) names = ["user" + str(i+14) for i in range(3)] + ["user18"]
if not("comm" in out_dir): input_json = ["test/workloads/dyn/user" + str(i+14) + ".json" for i in range(3)] + ["test/workloads/dyn/user18.json"]
content_job = open(out_dir + "/_jobs.csv").readlines() monolithics_test(proba_names,names,input_json,seed=3,yellow_windows=[[200000, 300000]])
if not("rigid" in out_dir):
expected_log = open(f"test/expected_log/dm_user_{proba_name[9:]}-2machines_jobs.csv").readlines()
else :
expected_log = open(f"test/expected_log/replay_user_rigid-2machines_jobs.csv").readlines()
assert content_job == expected_log
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment