public override bool SaveTestBench(AVM.DDP.MetaAvmProject project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            this.ThrowIfNotExpanded();

            this.EnsureOutputDirectory();

            bool success = false;
            try
            {
                success = project.SaveTestBench(this.testBenchType);
            }
            catch (Exception ex)
            {
                throw new AnalysisModelProcessorException("Saving test bench failed.", ex);
            }

            return success;
        }
        public override bool SaveTestBench(AVM.DDP.MetaAvmProject project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            this.ThrowIfNotExpanded();

            this.EnsureOutputDirectory();

            var success = true;

            // NOTE: saving the original design space test benches
            foreach (var testbenchRef in this.testBenchSuite.Children.TestBenchRefCollection)
            {
                var thisSuccess = project.SaveTestBench(testbenchRef.Referred.TestBenchType);
                success = success && thisSuccess;
            }

            return success;
        }
        public override bool SaveTestBench(AVM.DDP.MetaAvmProject project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            this.ThrowIfNotExpanded();

            this.EnsureOutputDirectory();

            bool success = false;
            try
            {
                success = project.SaveTestBench(this.testBenchType);
            }
            catch (System.IO.IOException ex)
            {
                // ignore sharing violation:
                // if another process is writing the same testbench file, it will have the same contents
                int HResult = System.Runtime.InteropServices.Marshal.GetHRForException(ex);
                const int SharingViolation = 32;
                if ((HResult & 0xFFFF) == SharingViolation)
                {
                }
                else
                {
                    throw new AnalysisModelProcessorException("Saving test bench failed.", ex);
                }
            }
            catch (Exception ex)
            {
                throw new AnalysisModelProcessorException("Saving test bench failed.", ex);
            }

            return success;
        }