Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor RuntimeFramework and related classes #1168

Closed
CharliePoole opened this issue Feb 28, 2022 · 0 comments · Fixed by #1170
Closed

Refactor RuntimeFramework and related classes #1168

CharliePoole opened this issue Feb 28, 2022 · 0 comments · Fixed by #1170
Assignees
Milestone

Comments

@CharliePoole
Copy link
Collaborator

RuntimeFramework was originally created for use in a single-threaded environment. The introduction of parallel execution and especially parallel loading of tests has exposed some weaknesses. Additionally, the class serves a number of disparate functions. Simplifying and otherwise refactoring it will allow us to move forward with pluggable agents, which is why this issue is a part of #909.

Ideally, we should remove all knowledge of the environment from RuntimeFramework. An instance of RuntimeFramework does
not need to know, for example, if it is available on the current system. In the present architecture, that's really the job of the RuntimeFrameworkService. Other functions may actually belong in TestAgency.

All the static properties of RuntimeFramework need to be examined for thread-safety, particularly CurrentFramework
and AvailableFrameworks. The latter is preventing implementation of parallel loading. We may be able to move all this functionality to services or utility classes eliminating the use of public static properties here.

Although all of the above is essentially refactoring, I'm treating this as an enhancement since it enables us to move ahead on new features, which are otherwise blocked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant