Ejemplo n.º 1
0
        private static IIsolatedEnvironment CreateSharedEnvironment()
        {
            IIsolatedEnvironment environment = IsolatedEnvironmentManager.CreateIsolatedEnvironment();

            environment.Loader.AddHintDirectory(LoaderUtils.GetLoaderDirectoryPath());
            environment.Loader.SetupRuntime();
            return(environment);
        }
        /// <summary>
        /// Gets the shared environment.
        /// </summary>
        /// <returns>The shared environment.</returns>
        public static IIsolatedEnvironment GetSharedEnvironment()
        {
            lock (sharedEnvironmentSyncRoot)
            {
                if (sharedEnvironment == null)
                    sharedEnvironment = CreateSharedEnvironment();

                return sharedEnvironment;
            }
        }
Ejemplo n.º 3
0
        protected virtual FacadeTaskResult Execute(IFacadeTaskServer facadeTaskServer, IFacadeLogger facadeLogger, FacadeTask facadeTask, FacadeTaskExecutorConfiguration facadeTaskExecutorConfiguration)
        {
            IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment();

            Type taskRunnerType = typeof(RemoteFacadeTaskRunner);
            IRemoteFacadeTaskRunner taskRunner = (IRemoteFacadeTaskRunner)environment.AppDomain.CreateInstanceAndUnwrap(
                taskRunnerType.Assembly.FullName, taskRunnerType.FullName);

            return(taskRunner.Execute(facadeTaskServer, facadeLogger, facadeTask, facadeTaskExecutorConfiguration));
        }
Ejemplo n.º 4
0
        private static ITestAdapter CreateRemoteShim()
        {
            IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment();

            environment.Loader.AddHintDirectory(GetVSTSDirectoryPath());

            Type         shimType = typeof(Shim);
            ITestAdapter shim     = (ITestAdapter)environment.AppDomain.CreateInstanceAndUnwrap(shimType.Assembly.FullName, shimType.FullName);

            return(shim);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets the shared environment.
        /// </summary>
        /// <returns>The shared environment.</returns>
        public static IIsolatedEnvironment GetSharedEnvironment()
        {
            lock (sharedEnvironmentSyncRoot)
            {
                if (sharedEnvironment == null)
                {
                    sharedEnvironment = CreateSharedEnvironment();
                }

                return(sharedEnvironment);
            }
        }
Ejemplo n.º 6
0
 internal virtual IProxyTestRunner CreateRemoteProxyTestRunner()
 {
     try
     {
         IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment();
         AppDomain.CurrentDomain.AssemblyResolve += ResolveRunnerAssembly;
         Type   runnerType = typeof(RemoteProxyTestRunner);
         object runner     = environment.AppDomain.CreateInstanceAndUnwrap(runnerType.Assembly.FullName, runnerType.FullName);
         return((IProxyTestRunner)runner);
     }
     finally
     {
         AppDomain.CurrentDomain.AssemblyResolve -= ResolveRunnerAssembly;
     }
 }
Ejemplo n.º 7
0
        public PluginManager(ILogger logger, IConfiguration configuration, IMessageQueue messageQueue, IDirectory baseDirectory, IIsolatedEnvironment environment, IPackage package)
        {
            ErrorCount = 0;

            if (logger == null) throw new ArgumentNullException("logger");
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (baseDirectory == null) throw new ArgumentNullException("baseDirectory");
            if (environment == null) throw new ArgumentNullException("environment");
            if (package == null) throw new ArgumentNullException("package");

            State = PluginState.Unloaded;

            _logger = logger;
            _configuration = configuration;
            _messageQueue = messageQueue;
            _baseDirectory = baseDirectory;
            _isolatedEnvironment = environment;
            _package = package;
            _lazyManifest = new Lazy<IManifest>(_package.GetManifest);

            _isolatedEnvironment.UnhandledError += OnUnhandledError;
        }
Ejemplo n.º 8
0
        public PluginManager(ILogger logger, IConfiguration configuration, IMessageQueue messageQueue, IDirectory baseDirectory, IIsolatedEnvironment environment, IPackage package)
        {
            ErrorCount = 0;

            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (baseDirectory == null)
            {
                throw new ArgumentNullException("baseDirectory");
            }
            if (environment == null)
            {
                throw new ArgumentNullException("environment");
            }
            if (package == null)
            {
                throw new ArgumentNullException("package");
            }

            State = PluginState.Unloaded;

            _logger              = logger;
            _configuration       = configuration;
            _messageQueue        = messageQueue;
            _baseDirectory       = baseDirectory;
            _isolatedEnvironment = environment;
            _package             = package;
            _lazyManifest        = new Lazy <IManifest>(_package.GetManifest);

            _isolatedEnvironment.UnhandledError += OnUnhandledError;
        }