Пример #1
0
        private static string ResultToString(TestCodeLocationSummaries summary)
        {
            if (summary.Exception != null)
            {
                if (summary.Summaries != null)
                {
                    return("Test summary contains both InsInfExc and ordinary Summaries");
                }
                return($"Totally 1 state:\n{summary.Exception.Message}\n");
            }

            int count = 0;

            if ((count = summary.Summaries.Count()) == 0)
            {
                return("No states were obtained!");
            }
            var suffix        = count > 1 ? "s" : "";
            var sortedResults = summary.Summaries.Select(SummaryToString).OrderBy(x => x.GetDeterministicHashCode());

            return($"Totally {count} state{suffix}:\n{String.Join("\n", sortedResults)}");
        }
Пример #2
0
        private TestCodeLocationSummaries PrepareAndInvokeWithoutStatistics(IDictionary <MethodInfo, TestCodeLocationSummaries> dict,
                                                                            MethodInfo m,
                                                                            Func <MethodBase, FSharpFunc <CodeLocationSummaries, CodeLocationSummaries>, CodeLocationSummaries> invoke)
        {
            _statistics.SetupBeforeMethod(m);
            if (m == null)
            {
                var format =
                    new PrintfFormat <string, Unit, string, Unit>(
                        $"WARNING: metadata method for {m.Name} not found!");
                Logger.printLog(Logger.Warning, format);
                return(null);
            }

            dict?.Add(m, null);
            var id = FSharpFunc <CodeLocationSummaries, CodeLocationSummaries> .FromConverter(x => x);

            TestCodeLocationSummaries summary = null;

            try
            {
                summary = TestCodeLocationSummaries.WithSummaries(invoke(m, id));
            }
            catch (InsufficientInformationException e)
            {
                summary = TestCodeLocationSummaries.WithInsufficientInformationException(e);
            }

            _statistics.AddSucceededMethod(m);
            if (dict != null)
            {
                dict[m] = summary;
            }

            return(summary);
        }