diff options
author | Jürg Billeter <j@bitron.ch> | 2018-09-26 10:08:25 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2018-09-27 10:19:12 +0100 |
commit | dd770ec37e068aa0725a7696612d600d3c30277f (patch) | |
tree | 51584aa100e54ca257e831451a90dd01ce0dc4b2 | |
parent | 0d0f700db3113026e7f0ef2c233f6935a22b5f09 (diff) | |
download | buildstream-dd770ec37e068aa0725a7696612d600d3c30277f.tar.gz |
Use lazy platform instantiation
Now that the platform is independent of the context, explicit
instantiation is no longer required. This avoids issues with platform
instances used across test cases with mismatching context.
-rw-r--r-- | buildstream/_frontend/app.py | 2 | ||||
-rw-r--r-- | buildstream/_platform/platform.py | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/buildstream/_frontend/app.py b/buildstream/_frontend/app.py index af52dbedd..a1afee478 100644 --- a/buildstream/_frontend/app.py +++ b/buildstream/_frontend/app.py @@ -198,7 +198,7 @@ class App(): if option_value is not None: setattr(self.context, context_attr, option_value) try: - Platform.create_instance() + Platform.get_platform() except BstError as e: self._error_exit(e, "Error instantiating platform") diff --git a/buildstream/_platform/platform.py b/buildstream/_platform/platform.py index bbd2e65ab..b37964986 100644 --- a/buildstream/_platform/platform.py +++ b/buildstream/_platform/platform.py @@ -35,7 +35,7 @@ class Platform(): pass @classmethod - def create_instance(cls, *args, **kwargs): + def _create_instance(cls): if sys.platform.startswith('linux'): backend = 'linux' else: @@ -54,12 +54,12 @@ class Platform(): else: raise PlatformError("No such platform: '{}'".format(backend)) - cls._instance = PlatformImpl(*args, **kwargs) + cls._instance = PlatformImpl() @classmethod def get_platform(cls): if not cls._instance: - raise PlatformError("Platform needs to be initialized first") + cls._create_instance() return cls._instance ################################################################## |