Esempio n. 1
0
        public void HelpWriter()
        {
            // when outputting to the console, just ensure things work without crashing...
            var hw = new HelpWriter();

            hw.WriteLine();
            hw.WriteLine("Hello");
            hw.WriteBanner("BANNER");
            hw.WriteOption("name", "description");

            using (var writer = new StringWriter(CultureInfo.InvariantCulture))
            {
                hw = new HelpWriter(writer, 30);
                hw.WriteLine();
                hw.WriteLine("A short line");
                hw.WriteLine("A long long long long long long line");
                hw.WriteOption(string.Empty, string.Empty);

                // test an option of length HelpWriter.DescriptionColumn - N
                hw.WriteOption("namenamenamenamenamenamename", string.Empty);
                hw.WriteOption("namenamenamenamenamenamename", "description");

                // test an option of length HelpWriter.DescriptionColumn - 1
                hw.WriteOption("namenamenamenamenamenamenamenam", string.Empty);
                hw.WriteOption("namenamenamenamenamenamenamenam", "description");

                // test an option of length HelpWriter.DescriptionColumn
                hw.WriteOption("namenamenamenamenamenamenamename", string.Empty);
                hw.WriteOption("namenamenamenamenamenamenamename", "description");

                // test an option of length HelpWriter.DescriptionColumn + 1
                hw.WriteOption("namenamenamenamenamenamenamenamen", string.Empty);
                hw.WriteOption("namenamenamenamenamenamenamenamen", "description");

                // test an option of length HelpWriter.DescriptionColumn + N
                hw.WriteOption("namenamenamenamenamenamenamenamenamenamenamename", string.Empty);
                hw.WriteOption("namenamenamenamenamenamenamenamenamenamenamename", "description");

                // test long option name and description
                hw.WriteOption(
                    "namenamenamenamenamenamenamenamenamenamenamename",
                    "descriptiondescriptiondescriptiondescriptiondescriptiondescription");
                hw.WriteBanner(string.Empty);
                hw.WriteBanner("banner");
                hw.WriteBanner("bannerbannerbannerbannerbannerbannerbanner");

                writer.Flush();
                string output = writer.ToString();

                string Expected =
                    Environment.NewLine + "A short line" +
                    Environment.NewLine + "A long long long long long" +
                    Environment.NewLine + "long line" +
                    Environment.NewLine + Environment.NewLine + "namenamenamenamenamenamename" +
                    Environment.NewLine + "namenamenamenamenamenamename    description" +
                    Environment.NewLine + "namenamenamenamenamenamenamenam" +
                    Environment.NewLine + "namenamenamenamenamenamenamenam description" +
                    Environment.NewLine + "namenamenamenamenamenamenamename" +
                    Environment.NewLine + "namenamenamenamenamenamenamename" +
                    Environment.NewLine + "                                description" +
                    Environment.NewLine + "namenamenamenamenamenamenamenamen" +
                    Environment.NewLine + "namenamenamenamenamenamenamenamen" +
                    Environment.NewLine + "                                description" +
                    Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" +
                    Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" +
                    Environment.NewLine + "                                description" +
                    Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" +
                    Environment.NewLine + "                                descriptiondescriptiondescriptiondescriptiondescriptiondescription" +
                    Environment.NewLine + Environment.NewLine + "             -  -" +
                    Environment.NewLine + Environment.NewLine + Environment.NewLine + "          - banner -" +
                    Environment.NewLine + Environment.NewLine + Environment.NewLine + "- bannerbannerbannerbannerbannerbannerbanner -" +
                    Environment.NewLine + Environment.NewLine;
                Assert.Equal(Expected, output);
            }
        }
Esempio n. 2
0
        // BUG: should display list of available qualifiers
        // BUG: should display list of available filter tags
        public static void DisplayHelp(HelpLevel helpLevel)
        {
            var hw = new HelpWriter(helpLevel);

            hw.WriteBanner(Strings.HelpText_DisplayHelp_BuildBanner);

            #region Build
            hw.WriteOption(
                "/config:<file>",
                Strings.HelpText_DisplayHelp_ConfigFile);

            hw.WriteOption(
                "/additionalConfigFile:<file>*",
                Strings.HelpText_DisplayHelp_AdditionalConfigFile,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/qualifier:<qualifier list>",
                Strings.HelpText_DisplayHelp_Qualifiers);

            hw.WriteOption(
                "/objectDirectory:<output directory>",
                Strings.HelpText_DisplayHelp_Obj);

            hw.WriteOption(
                "/tempDirectory:<temp directory>",
                Strings.HelpText_DisplayHelp_TempDirectory,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/property:<key>=<value>",
                Strings.HelpText_DisplayHelp_Property);

            hw.WriteOption(
                "<paths>",
                Strings.HelpText_DisplayHelp_Paths);
            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_FilteringBanner);

            #region Filtering
            hw.WriteLine(Strings.HelpText_DisplayHelp_FilteringInfo);
            hw.WriteLine();

            hw.WriteOption(
                "/filter:<deps><filter>",
                Strings.HelpText_DisplayHelp_Filter);

            hw.WriteOption(
                "<deps>",
                Strings.HelpText_DisplayHelp_DependencySelection,
                HelpLevel.Verbose);

            hw.WriteOption(
                "<filter>",
                Strings.HelpText_DisplayHelp_Filter_Expression,
                HelpLevel.Verbose);

            hw.WriteLine(Strings.HelpText_DisplayHelp_FilterTypeExplanation, HelpLevel.Verbose);
            hw.WriteLine(HelpLevel.Verbose);

            hw.WriteOption(
                "id",
                Strings.HelpText_DisplayHelp_Filter_Id,
                HelpLevel.Verbose);

            hw.WriteOption(
                "output",
                Strings.HelpText_DisplayHelp_Filter_Output + " " +
                Strings.HelpText_DisplayHelp_Filter_PathArgument,
                HelpLevel.Verbose);

            hw.WriteOption(
                "input",
                Strings.HelpText_DisplayHelp_Filter_Input + " " +
                Strings.HelpText_DisplayHelp_Filter_PathArgument,
                HelpLevel.Verbose);

            hw.WriteOption(
                "tag",
                Strings.HelpText_DisplayHelp_Filter_Tag,
                HelpLevel.Verbose);

            hw.WriteOption(
                "value",
                Strings.HelpText_DisplayHelp_Filter_Value,
                HelpLevel.Verbose);
            hw.WriteOption(
                "valuetransitive",
                Strings.HelpText_DisplayHelp_Filter_ValueTransitive,
                HelpLevel.Verbose);

            hw.WriteOption(
                "spec",
                Strings.HelpText_DisplayHelp_Filter_Spec + " " +
                Strings.HelpText_DisplayHelp_Filter_PathArgument,
                HelpLevel.Verbose);
            hw.WriteOption(
                "spec_valuetransitive",
                Strings.HelpText_DisplayHelp_Filter_Spec_ValueTransitive,
                HelpLevel.Verbose);
            hw.WriteOption(
                "specref",
                Strings.HelpText_DisplayHelp_Filter_SpecDependencies,
                HelpLevel.Verbose);

            hw.WriteLine(Strings.HelpText_DisplayHelp_FilterFunctionExplanation, HelpLevel.Verbose);
            hw.WriteOption("dpt",
                           Strings.HelpText_DisplayHelp_Filter_DependentsFunction,
                           HelpLevel.Verbose);
            hw.WriteOption("dpc",
                           Strings.HelpText_DisplayHelp_Filter_DependenciesFunction,
                           HelpLevel.Verbose);
            hw.WriteOption("copydpt",
                           Strings.HelpText_DisplayHelp_Filter_CopyDependentsFunction,
                           HelpLevel.Verbose);
            hw.WriteOption("requiredfor",
                           Strings.HelpText_DisplayHelp_Filter_RequiredInputsFunction,
                           HelpLevel.Verbose);
            hw.WriteLine(HelpLevel.Verbose);

            hw.WriteLine(Strings.HelpText_DisplayHelp_Filter_Examples,
                         HelpLevel.Verbose);

            // Note to maintainer: if you're changing one of those samples,
            // make sure that they're valid by testing them in FilterParserTests.
            hw.WriteOption(
                "  /f:~(tag='test')",
                Strings.HelpText_DisplayHelp_FilterExampleNoTest,
                HelpLevel.Verbose);
            hw.WriteOption(
                "  /f:+spec='src\\utilities\\*'",
                Strings.HelpText_DisplayHelp_FilterExampleDirectory,
                HelpLevel.Verbose);
            hw.WriteOption(
                "  /f:(tag='csc.exe'and~(tag='test'))",
                Strings.HelpText_DisplayHelp_Filter_ExamplesBinaryFilter,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/canonicalizeFilterOutputs[+|-]",
                Strings.HelpText_DisplayHelp_CanonicalizeFilterOutputs);

            // TODO: This option is DScript only. It isn't shown in the help text because we have the goal of
            // removing it and unifying it with the standard filtering above.
            // hw.WriteOption("scriptFile"
            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_LoggingBanner);

            #region Logging

            hw.WriteOption(
                "/logsDirectory:<path>",
                Strings.HelpText_DisplayHelp_LogsDirectory);

            hw.WriteOption(
                "/logPrefix:<string>",
                Strings.HelpText_DisplayHelp_LogPrefix,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logsToRetain:<number>",
                Strings.HelpText_DisplayHelp_LogsToRetain,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/customLog:<file>=<id list>",
                Strings.HelpText_DisplayHelp_CustomLog,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/noLog:<id list>",
                Strings.HelpText_DisplayHelp_NoLog,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/consoleVerbosity:<level>",
                Strings.HelpText_DisplayHelp_ConsoleVerbosity,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fileVerbosity:<level>",
                Strings.HelpText_DisplayHelp_FileVerbosity,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logExecution[+|-]",
                Strings.HelpText_DisplayHelp_LogExecution,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/noLog:<id list>",
                Strings.HelpText_DisplayHelp_NoExecutionLog,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logProcesses[+|-]",
                Strings.HelpText_DisplayHelp_LogProcesses,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logProcessData[+|-]",
                Strings.HelpText_DisplayHelp_LogProcessData,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logFileAccessTables[+|-]",
                Strings.HelpText_DisplayHelp_LogFileEnforcementTables,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logObservedFileAccesses[+|-]",
                Strings.HelpText_DisplayHelp_LogObservedAccesses,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logOutput:<option>",
                Strings.HelpText_DisplayHelp_LogOutput,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/environment:<environment>",
                string.Format(
                    CultureInfo.InvariantCulture,
                    Strings.HelpText_DisplayHelp_Environment, string.Join(",", Enum.GetNames(typeof(BuildXL.Utilities.Configuration.ExecutionEnvironment)))),
                HelpLevel.Verbose);

            hw.WriteOption(
                "/remoteTelemetry[+|-]",
                Strings.HelpText_DisplayHelp_RemoteTelemetry);

            hw.WriteOption(
                "/replayWarnings[+|-]",
                Strings.HelpText_DisplayHelp_ReplayWarnings);

            hw.WriteOption(
                "/logStats[+|-]",
                Strings.HelpText_DisplayHelp_LogStats,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logStatus[+|-]",
                Strings.HelpText_DisplayHelp_LogStatus,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/traceInfo:<Key>=<Value>",
                Strings.HelpText_DisplayHelp_TraceInfo,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logCounters[+|-]",
                Strings.HelpText_DisplayHelp_LogCounters,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logMemory[+|-]",
                Strings.HelpText_DisplayHelp_LogMemory,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/storeFingerprints[+|-]",
                Strings.HelpText_DisplayHelp_StoreFingerprints,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/storeFingerprints:<Default|ExecutionFingerprintsOnly|IgnoreExistingEntries>",
                Strings.HelpText_DisplayHelp_StoreFingerprintsWithMode,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/substSource:[path]",
                Strings.HelpText_DisplayHelp_SubstSource,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/substTarget:[path]",
                Strings.HelpText_DisplayHelp_SubstTarget,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fancyConsole[+|-]",
                Strings.HelpText_DisplayHelp_FancyConsole,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fancyConsoleMaxStatusPips:<number>",
                Strings.HelpText_DisplayHelp_FancyConsoleMaxStatusPips,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/profileScript[+|-]",
                Strings.HelpText_DisplayHelp_ProfileScript,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/profileReportDestination:[path]",
                string.Format(
                    CultureInfo.InvariantCulture,
                    Strings.HelpText_DisplayHelp_ProfileReportDestination,
                    FrontEndConfigurationExtensions.DefaultProfileReportFilename),
                HelpLevel.Verbose);
            hw.WriteOption(
                "/trackBuildsInUserFolder[+-]",
                Strings.HelpText_DisplayHelp_TrackBuildsInUserFolder,
                HelpLevel.Verbose
                );
            hw.WriteOption(
                "/trackMethodInvocations[+|-]",
                string.Format(
                    CultureInfo.InvariantCulture,
                    Strings.HelpText_DisplayHelp_TrackMethodInvocations),
                HelpLevel.Verbose);

            hw.WriteOption(
                "/useCustomPipDescriptionOnConsole[+|-]",
                Strings.HelpText_DisplayHelp_UseCustomPipDescriptionOnConsole,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cacheMiss[+|-|<path>|{<changeset list}]",
                Strings.HelpText_DisplayHelp_CacheMiss,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scriptShowSlowest[+|-]",
                Strings.HelpText_DisplayHelp_ScriptShowSlowest,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scriptShowLargest[+|-]",
                Strings.HelpText_DisplayHelp_ScriptShowLargest,
                HelpLevel.Verbose);

            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_ErrorsAndWarningsBanner);

            #region ErrorsAndWarnings
            hw.WriteOption(
                "/warnAsError[+|-]",
                Strings.HelpText_DisplayHelp_WarnAsError,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/warnAsError[+|-]:<warn list>",
                Strings.HelpText_DisplayHelp_WarnAsErrorWithList,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/noWarn:<warn list>",
                Strings.HelpText_DisplayHelp_NoWarn,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/stopOnFirstError[+|-]",
                Strings.HelpText_DisplayHelp_StopOnFirstError);

            hw.WriteOption(
                "/color[+|-]",
                Strings.HelpText_DisplayHelp_Color,
                HelpLevel.Verbose);
            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_CachingBanner);

            #region Caching
            hw.WriteOption(
                "/allowFetchingCachedGraphFromContentCache",
                Strings.HelpText_DisplayHelp_AllowFetchingCachedGraphFromContentCache,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cacheConfigFilePath:<file>",
                Strings.HelpText_DisplayHelp_CacheConfigFilePath);

            hw.WriteOption(
                "/cacheDirectory:<artifact cache directory>",
                Strings.HelpText_DisplayHelp_CacheDirectory);

            hw.WriteOption(
                "/cacheSessionName:<unique session name>",
                Strings.HelpText_DisplayHelp_CacheSessionName,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cacheGraph[+|-]",
                Strings.HelpText_DisplayHelp_CacheGraph,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cacheSpecs[+|-]",
                Strings.HelpText_DisplayHelp_CacheSpecs,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cacheMemoryUsage[+|-]",
                Strings.HelpText_DisplayHelp_CacheMemoryUsage,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/compressGraphFiles[+|-]",
                Strings.HelpText_DisplayHelp_CompressGraphFiles,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/determinismProbe[+|-]",
                Strings.HelpText_DisplayHelp_DeterminismProbeUsage,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/engineCacheDirectory:<engine cache directory>",
                Strings.HelpText_DisplayHelp_EngineCacheDirectory,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/reuseEngineState[+|-]",
                Strings.HelpText_DisplayHelp_ReuseEngineState,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/reuseOutputsOnDisk[+|-]",
                Strings.HelpText_DisplayHelp_ReuseOutputsOnDisk,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/server[+|-]",
                Strings.HelpText_DisplayHelp_Server);

            hw.WriteOption(
                "/serverMaxIdleTimeInMinutes",
                Strings.HelpText_DisplayHelp_ServerMaxIdleTimeInMinutes);

            hw.WriteOption(
                "/serverDeploymentDir",
                Strings.HelpText_DisplayHelp_ServerDeploymentDir,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/storeOutputsToCache",
                Strings.HelpText_DisplayHelp_StoreOutputsToCache,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/verifyCacheLookupPin[+|-]",
                Strings.HelpText_DisplayHelp_VerifyCacheLookupPin,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/pinCachedOutputs[+|-]",
                Strings.HelpText_DisplayHelp_PinCachedOutputs,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/vfsCasRoot<vfs cas root directory>",
                Strings.HelpText_DisplayHelp_VfsCasRoot,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/enableDedupChunk[+|-]",
                Strings.HelpText_DisplayHelp_EnableDedupChunk,
                HelpLevel.Verbose);

            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_ExecutionControlBanner);

            #region ExecutionControl
            hw.WriteOption(
                "/incremental[+|-]",
                Strings.HelpText_DisplayHelp_Incremental);

            hw.WriteOption(
                "/incrementalScheduling[+|-]",
                Strings.HelpText_DisplayHelp_IncrementalScheduling);

            hw.WriteOption(
                "/useHardlinks[+|-]",
                Strings.HelpText_DisplayHelp_UseHardlinks,
                HelpLevel.Verbose);

            // This feature is used to support distributed build tests internally but is not an externally supported feature.
            // Don't include it in help text

            /*
             * hw.WriteOption(
             *  "/rootMap:<drive letter>=<path>",
             *  Strings.HelpText_DisplayHelp_RootMap,
             *  HelpLevel.Verbose);*/

            hw.WriteOption(
                "/injectCacheMisses:<rate and options>",
                Strings.HelpText_DisplayHelp_InjectCacheMisses,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/pipDefaultTimeout:<ms>",
                Strings.HelpText_DisplayHelp_PipTimeout);

            hw.WriteOption(
                "/pipDefaultWarningTimeout:<ms>",
                Strings.HelpText_DisplayHelp_PipWarningTimeout);

            hw.WriteOption(
                "/pipTimeoutMultiplier:<float>",
                Strings.HelpText_DisplayHelp_PipTimeoutMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/pipWarningTimeoutMultiplier:<float>",
                Strings.HelpText_DisplayHelp_PipWarningTimeoutMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/maxProc:<number of concurrent processes>",
                Strings.HelpText_DisplayHelp_MaxProc);

            hw.WriteOption(
                "/maxProcMultiplier:<double>",
                Strings.HelpText_DisplayHelp_MaxProcMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/maxLightProc:<number of concurrent light processes>",
                Strings.HelpText_DisplayHelp_MaxLightProc);

            hw.WriteOption(
                "/maxIO:<number of concurrent I/O operations>",
                Strings.HelpText_DisplayHelp_MaxIO);

            hw.WriteOption(
                "/maxIOMultiplier:<double>",
                Strings.HelpText_DisplayHelp_MaxIOMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/maxCacheLookup:<number of concurrent cache lookup operations>",
                Strings.HelpText_DisplayHelp_MaxCacheLookup);

            hw.WriteOption(
                "/maxChooseWorker:<number of concurrent choose worker operations>",
                Strings.HelpText_DisplayHelp_MaxCacheLookup);

            hw.WriteOption(
                "/maxMaterialize:<number of concurrent materialize operations>",
                Strings.HelpText_DisplayHelp_MaxMaterialize);

            hw.WriteOption(
                "/lowPriority[+|-]",
                Strings.HelpText_DisplayHelp_LowPriority);

            hw.WriteOption(
                "/maxRamUtilizationPercentage:<number>",
                Strings.HelpText_DisplayHelp_MaxRamUtilizationPercentage,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/minAvailableRamMb:<number>",
                Strings.HelpText_DisplayHelp_MinAvailableRam,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/phase:<engine phase>",
                Strings.HelpText_DisplayHelp_Phase);

            hw.WriteOption(
                "/maxRelativeOutputDirectoryLength:<characters>",
                Strings.HelpText_DisplayHelp_MaxRelativeOutputDirectoryLength,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/buildLockPolling:<seconds>",
                Strings.HelpText_DisplayHelp_BuildLockPolling,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/buildWaitTimeout:<minutes>",
                Strings.HelpText_DisplayHelp_BuildWaitTimeout,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/enableLazyOutputs[+|-]",
                Strings.HelpText_DisplayHelp_EnableLazyOutputs,
                HelpLevel.Verbose);
            hw.WriteOption(
                "/cleanTempDirectories[+|-]",
                Strings.HelpText_DisplayHelp_CleanTempDirectories,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/cleanOnly[+|-]",
                Strings.HelpText_DisplayHelp_CleanOnly,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scrub[+|-]",
                Strings.HelpText_DisplayHelp_Scrub,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scrubDirectory:<path>",
                Strings.HelpText_DisplayHelp_ScrubDirectory,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/analyzeDependencyViolations[+|-]",
                Strings.HelpText_DisplayHelp_AnalyzeDependencyViolations,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/emitSpotlightIndexingWarning[+|-]",
                Strings.HelpText_DisplayHelp_EmitSpotlightIndexingWarning,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/disableConHostSharing[+|-]",
                Strings.HelpText_DisplayHelp_DisableConHostSharing,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scanChangeJournal[+|-]",
                Strings.HelpText_DisplayHelp_ScanChangeJournal,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/scanChangeJournalTimeLimitInSec:<seconds>",
                Strings.HelpText_DisplayHelp_ScanChangeJournalTimeLimitInSec,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fileSystemMode<option>",
                Strings.HelpText_DisplayHelp_FileSystemMode,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/flushPageCacheToFileSystemOnStoringOutputsToCache[+|-]",
                Strings.HelpText_DisplayHelp_FlushPageCacheToFileSystemOnStoringOutputsToCache,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_forceSkipDeps[+|-]",
                Strings.HelpText_DisplayHelp_ForceSkipDependencies,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/normalizeReadTimestamps[+|-]",
                Strings.HelpText_DisplayHelp_NormalizeReadTimestamps,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/useLargeNtClosePreallocatedList[+|-]",
                Strings.HelpText_DisplayHelp_UseLargeNtClosePreallocatedList,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/useExtraThreadToDrainNtClose[+|-]",
                Strings.HelpText_DisplayHelp_UseExtraThreadToDrainNtClose,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/maskUntrackedAccesses[+|-]",
                Strings.HelpText_DisplayHelp_MaskUntrackedAccesses,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/treatDirectoryAsAbsentFileOnHashingInputContent[+|-]",
                Strings.HelpText_DisplayHelp_TreatDirectoryAsAbsentFileOnHashingInputContent,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_AllowCopySymlink[+|-]",
                Strings.HelpText_DisplayHelp_AllowCopySymlink,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/server[+|-]",
                Strings.HelpText_DisplayHelp_Server);

            hw.WriteOption(
                "/serverDeploymentDir",
                Strings.HelpText_DisplayHelp_ServerDeploymentDir,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/processRetries:<number of retries>",
                Strings.HelpText_DisplayHelp_ProcessRetries,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fileChangeTrackerInitializationMode:<mode>",
                Strings.HelpText_DisplayHelp_FileChangeTrackerInitializationMode,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fileChangeTrackingExclusionRoot:<path>",
                Strings.HelpText_DisplayHelp_FileChangeTrackingExclusionRoot,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/fileChangeTrackingInclusionRoot:<path>",
                Strings.HelpText_DisplayHelp_FileChangeTrackingInclusionRoot,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/inferNonExistenceBasedOnParentPathInRealFileSystem[+|-]",
                Strings.HelpText_DisplayHelp_InferNonExistenceBasedOnParentPathInRealFileSystem,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/outputMaterializationExclusionRoot:<path>",
                Strings.HelpText_DisplayHelp_OutputMaterializationExclusionRoot,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/enforceAccessPoliciesOnDirectoryCreation[+|-]",
                Strings.HelpText_DisplayHelp_EnforceAccessPoliciesOnDirectoryCreation,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/useFileContentTable[+|-]",
                Strings.HelpText_DisplayHelp_UseFileContentTable,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/adminRequiredProcessExecutionMode:<mode>",
                Strings.HelpText_DisplayHelp_AdminRequiredProcessExecutionMode,
                HelpLevel.Verbose);
            #endregion

            hw.WriteBanner(
                Strings.HelpText_DisplayHelp_DistributedBuildBanner,
                HelpLevel.Verbose);

            #region DistributedBuild

            hw.WriteOption(
                "/distributeCacheLookups[+|-]",
                Strings.HelpText_DisplayHelp_DistributeCacheLookups,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/distributedBuildRole:<distributed build role>",
                Strings.HelpText_DisplayHelp_DistributedBuildRole,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/distributedBuildServicePort:<local TCP port>",
                Strings.HelpText_DisplayHelp_DistributedBuildServicePort,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/distributedBuildWorker:<IP address or host name>:<local TCP port>",
                Strings.HelpText_DisplayHelp_DistributedBuildWorker,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/enableWorkerSourceFileMaterialization[+|-]",
                Strings.HelpText_DisplayHelp_DistributedBuildWorkerSourceMaterialization,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/masterCpuMultiplier:<double>",
                Strings.HelpText_DisplayHelp_MasterCpuMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/masterCacheLookupMultiplier:<double>",
                Strings.HelpText_DisplayHelp_MasterCacheLookupMultiplier,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/validateDistribution:[+|-]",
                Strings.HelpText_DisplayHelp_ValidateDistribution,
                HelpLevel.Verbose);
            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_DiagBanner);

            #region Diagnostics
            hw.WriteOption(
                "/diagnostic:<area>",
                Strings.HelpText_DisplayHelp_Diagnostic);

            hw.WriteOption(
                "/experiment.<flag>[+|-]",
                GetExperimentalFlagHelp());

            hw.WriteOption(
                "/breakOnUnexpectedFileAccess[+|-]",
                Strings.HelpText_DisplayHelp_BreakOnUnexpectedFileAccess,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_AllowMissingOutput:<filename>",
                Strings.HelpText_DisplayHelp_AllowMissingOutputs,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/TranslateDirectory:<fromPath>::<toPath>",
                Strings.HelpText_DisplayHelp_TranslateDirectory,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_MonitorFileAccesses[+|-]",
                Strings.HelpText_DisplayHelp_EnforceFileAccesses);

            hw.WriteOption(
                "/unsafe_IgnoreZwRenameFileInformation[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreZwRenameFileInformation,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreZwOtherFileInformation[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreZwOtherFileInformation,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreNonCreateFileReparsePoints[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreNonCreateFileReparsePoints,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreSetFileInformationByHandle[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreSetFileInformationByHandle,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreReparsePoints[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreReparsePoints,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnorePreloadedDlls[+|-]",
                Strings.HelpText_DisplayHelp_IgnorePreloadedDlls,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreDynamicWritesOnAbsentProbes[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreDynamicWritesOnAbsentProbes,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/sandboxKind:<sandbox kind>",
                Strings.HelpText_DisplayHelp_SandboxKind,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_DisableDetours[+|-]",
                Strings.HelpText_DisplayHelp_DisableDetours,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/logProcessDetouringStatus[+|-]",
                Strings.HelpText_DisplayHelp_LogProcessDetouringStatus,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/hardExitOnErrorInDetours[+|-]",
                Strings.HelpText_DisplayHelp_HardExitOnErrorInDetours,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/checkDetoursMessageCount[+|-]",
                Strings.HelpText_DisplayHelp_CheckDetoursMessageCount,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/allowInternalDetoursErrorNotificationFile[+|-]",
                Strings.HelpText_DisplayHelp_AllowInternalDetoursErrorNotificationFile,
                HelpLevel.Verbose);

#if PLATFORM_OSX
            hw.WriteOption(
                "/kextNumberOfKextConnections:<number>",
                Strings.HelpText_DisplayHelp_KextNumberOfKextConnections,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/kextReportQueueSizeMb:<number>",
                Strings.HelpText_DisplayHelp_KextReportQueueSizeMb,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/kextThrottleCpuUsageBlockThresholdPercent:<number>",
                Strings.HelpText_DisplayHelp_KextThrottleCpuUsageBlockThresholdPercent,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/kextThrottleCpuUsageWakeupThresholdPercent:<number>",
                Strings.HelpText_DisplayHelp_KextThrottleCpuUsageWakeupThresholdPercent,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/KextThrottleMinAvailableRamMB:<number>",
                Strings.HelpText_DisplayHelp_KextThrottleMinAvailableRamMB,
                HelpLevel.Verbose);
#endif

            hw.WriteOption(
                "/unsafe_ExistingDirectoryProbesAsEnumerations[+|-]",
                Strings.HelpText_DisplayHelp_ExistingDirectoryProbesAsEnumerations,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_ignoreGetFinalPathNameByHandle[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreGetFinalPathNameByHandle,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreNtCreateFile[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreNtCreateFile,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_IgnoreZwCreateOpenQueryFamily[+|-]",
                Strings.HelpText_DisplayHelp_IgnoreZwCreateOpenQueryFamily,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_OptimizedAstConversion[+|-]",
                Strings.HelpText_DisplayHelp_OptimizedAstConversion,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_PreserveOutputs[+|-|:Reset]",
                Strings.HelpText_DisplayHelp_PreserveOutputs,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/unsafe_UnexpectedFileAccessesAreErrors[+|-]",
                Strings.HelpText_DisplayHelp_UnexpectedFileAccessesAreErrors,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/debug_LoadGraph:<fingerprint | path | name>",
                Strings.HelpText_DisplayHelp_LoadGraph,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/launchDebugger",
                Strings.HelpText_DisplayHelp_LaunchDebugger,
                HelpLevel.Verbose);
            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_ScriptBanner);

            #region DScript
            hw.WriteOption(
                "/debugScript[+|-]",
                Strings.HelpText_DisplayHelp_ScriptDebugScript);
            hw.WriteOption(
                "/debuggerBreakOnExit[+|-]",
                Strings.HelpText_DisplayHelp_ScriptDebugScriptBreakOnExit);
            hw.WriteOption(
                "/debuggerPort",
                Strings.HelpText_DisplayHelp_ScriptDebugScriptPort);

            hw.WriteOption(
                "/unsafe_disableCycleDetection[+|-]",
                Strings.HelpText_DisplayHelp_DisableCycleDetection);

            hw.WriteOption(
                "/maxFrontEndConcurrency:<number of processes>",
                Strings.HelpText_DisplayHelp_MaxFrontEndConcurrency);

            hw.WriteOption(
                "/enableIncrementalFrontEnd:[+|-]",
                Strings.HelpText_DisplayHelp_EnableIncrementalFrontEnd);

            hw.WriteOption(
                "/maxTypeCheckingConcurrency[+|-]",
                Strings.HelpText_DisplayHelp_MaxTypeCheckingConcurrency);

            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_MsBuildBanner);

            #region MSBuild

            hw.WriteOption(
                "/msbuild.logVerbosity:<q[uiet] | m[inimal] | n[ormal] | d[etailed] | diag[nostic]>",
                Strings.HelpText_DisplayHelp_MsBuild_LogVerbosity);

            hw.WriteOption(
                "/msbuild.enableBinLogTracing[+|-]",
                Strings.HelpText_DisplayHelp_MsBuild_EnableBinLogTracing);

            hw.WriteOption(
                "/msbuild.enableEngineTracing[+|-]",
                Strings.HelpText_DisplayHelp_MsBuild_EnableEngineTracing);

            #endregion

            hw.WriteBanner(Strings.HelpText_DisplayHelp_MiscBanner);

            #region Misc
            hw.WriteOption(
                "/usePartialEvaluation[+|-]",
                Strings.HelpText_DisplayHelp_UsePartialEvaluation,
                HelpLevel.Verbose);

            hw.WriteOption(
                "@<file>",
                Strings.HelpText_DisplayHelp_ResponseFile);

            hw.WriteOption(
                "/help:[standard|verbose]",
                Strings.HelpText_DisplayHelp_Help);

            hw.WriteOption(
                "/interactive[+|-]",
                Strings.HelpText_DisplayHelp_Interactive,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/noLogo",
                Strings.HelpText_DisplayHelp_NoLogo);

            hw.WriteOption(
                "/snap:<file>",
                Strings.HelpText_DisplayHelp_Snapshot,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/snapshotMode:<snapshot mode>",
                Strings.HelpText_DisplayHelp_SnapshotMode,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/viewer:<mode>",
                Strings.HelpText_DisplayHelp_ViewerOptions);

            hw.WriteOption(
                "/relatedActivityId:<guid>",
                Strings.HelpText_DiplayHelp_RelatedActivityId,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/vs[+|-]",
                Strings.HelpText_DiplayHelp_VS);

            hw.WriteOption(
                "/solutionName:<string>",
                Strings.HelpText_DisplayHelp_SolutionName,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/vsOutputSrc[+|-]",
                Strings.HelpText_DisplayHelp_VsOutputSrc,
                HelpLevel.Verbose);

            hw.WriteOption(
                "/symlinkDefinitionFile:<file>",
                Strings.HelpText_DisplayHelp_SymlinkDefinitionFile);

            hw.WriteOption(
                "/inputChanges:<file>",
                Strings.HelpText_DisplayHelp_InputChanges);

            hw.WriteOption(
                "/telemetryTagPrefix:<string>",
                Strings.HelpText_DisplayHelp_TelemetryTagPrefix);

            hw.WriteOption(
                "/populateSymlinkDirectory:<file>",
                Strings.HelpText_DisplayHelp_PopulateSymlinkDirectory);

            hw.WriteOption(
                "/unsafe_LazySymlinkCreation[+|-]",
                Strings.HelpText_DisplayHelp_LazySymlinkCreation);

            hw.WriteOption(
                "/unsafe_LazySymlinkCreation[+|-]",
                Strings.HelpText_DisplayHelp_LazySymlinkCreation);

            hw.WriteOption(
                "/unexpectedSymlinkAccessReportingMode:<mode>",
                Strings.HelpText_DisplayHelp_UnexpectedSymlinkAccessReportingMode);

            hw.WriteOption(
                "/unsafe_DisableGraphPostValidation[+|-]",
                Strings.HelpText_DisplayHelp_DisableGraphPostValidation);

            hw.WriteOption(
                "/logPipStaticFingerprintTexts[+|-]",
                Strings.HelpText_DisplayHelp_LogPipStaticFingerprintTexts);

            hw.WriteOption(
                "/posixDeleteMode:[NoRun|RunFirst|RunLast]",
                Strings.HelpText_DisplayHelp_PosixDeleteMode);

            #endregion

            if (helpLevel < HelpLevel.Verbose)
            {
                hw.WriteLine();
                hw.WriteLine(Strings.HelpText_DisplayHelp_ShowingStandardHelp);
            }
        }
 private static void WriteFileConsumptionAnalyzerHelp(HelpWriter writer)
 {
     writer.WriteBanner("File Consumption Analyzer");
     writer.WriteModeOption(nameof(AnalysisMode.FileConsumption), "Collects information about produced/consumed files");
     writer.WriteOption("outputDirectory", "Required. The directory where to write the results", shortName: "o");
 }
Esempio n. 4
0
 /// <summary>
 /// Writes the mode flag help for each analyzer.
 /// </summary>
 public static void WriteModeOption(this HelpWriter writer, string modeName, string description, HelpLevel level = HelpLevel.Standard)
 {
     writer.WriteOption("mode", string.Format("\"{0}\". {1}", modeName, description), level: level, shortName: "m");
 }
Esempio n. 5
0
 /// <inheritdoc />
 public override void WriteHelp(HelpWriter writer)
 {
     writer.WriteOption("specialAddIfFormatting[+|-]", "Whether addIf functions should be printed in a non-standard way.", shortName: "s");
     base.WriteHelp(writer);
 }
Esempio n. 6
0
 private static void WritePipGraphExporterHelp(HelpWriter writer)
 {
     writer.WriteBanner("Pip Graph Export Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.ExportGraph), "Generates a JSON file containing pip graph and runtime info");
     writer.WriteOption("outputFile", "Required. The directory containing the cached pip graph files.", shortName: "o");
 }
Esempio n. 7
0
 private static void WritePerfSummaryAnalyzerHelp(HelpWriter writer)
 {
     writer.WriteBanner("Performance Summary Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.PerfSummary), "Dumps an html file that contains a performance summary");
     writer.WriteOption("outputFile", "Required. The location of the output file for critical path analysis.", shortName: "o");
 }
Esempio n. 8
0
 private static void WriteCosineJsonExportHelp(HelpWriter writer)
 {
     writer.WriteBanner("Cosine Json Export Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.ExportGraph), "Generates a JSON file containing pip graph and runtime info");
     writer.WriteOption("outputFile", "Required. The json file to create.", shortName: "o");
 }
Esempio n. 9
0
 private static void WriteBuildSimulatorHelp(HelpWriter writer)
 {
     writer.WriteBanner("Build Simulation Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.Simulate), "EXPERIMENTAL. Build Simulator");
     writer.WriteOption("outputFile", "Required. The file where to write the results", shortName: "o");
 }
Esempio n. 10
0
        /// <summary>
        /// Main method for outputting help text to the screen
        /// </summary>
        private static void WriteHelp()
        {
            HelpWriter writer = new HelpWriter();

            writer.WriteBanner("bxlcacheanalyzer.exe is a tool for doing statistical analysis, input list analysis and consistency checking of a cache.");

            writer.WriteLine("bxlcacheanalyzer.exe [/statisticalAnalysis [/contentAnalysis] | /consistencyCheck [/rehashCASContent] | inputAssertionListDump [/inputAssertionListDumpMustIncludeRegex] [/inputAssertionListDumpMustNotIncludeRegex] | /inputAssertionListCheck [/inputAssertionListSizeDisparityMinimumFactor:double]] | [/contentBreakdown] " +
                             "[/jsonString:string | /jsonFile:string] " +
                             "[/sessionIDFilter:string | /weakFingerprintInputFilepath:string] " +
                             "[/outputFile:string] " +
                             "[/weakFingerprintOutputFilepath:string]");
            writer.WriteLine();
            writer.WriteOption("statisticalAnalysis", "If specified, performs a statistical analysis of the cache and outputs the results in CSV format", shortName: "sa");
            writer.WriteOption("contentAnalysis", "If specified, includes per-session content size in the statistical analysis", shortName: "ca");
            writer.WriteOption("consistencyCheck", "If specified, performs a consistency check of the cache", shortName: "cc");
            writer.WriteOption("rehashCASContent", "If specified, all content in the CAS will be rehashed to see if any of the content has been corrupted", shortName: "rc");
            writer.WriteOption("inputAssertionListDump", "If specified, all strong fingerprints found will have their input assertion lists dumped", shortName: "id");
            writer.WriteOption("inputAssertionListDumpMustIncludeRegex", "Regex that must match in the input list", shortName: "ii");
            writer.WriteOption("inputAssertionListDumpMustNotIncludeRegex", "Regex that must not match in the input list", shortName: "in");
            writer.WriteOption("inputAssertionListCheck", "If specified, performs a check of all input assertion lists for each weak fingerprint to look for major discrepancies in list size", shortName: "ic");
            writer.WriteOption("inputAssertionListSizeDisparityMinimumFactor", "Sets the minimum factor of size disparity between input assertion lists of same weak fingerprint, defaults to " + InputAssertionListChecker.DefaultDisparityFactor, shortName: "mf");
            writer.WriteOption("contentBreakdown", "If specified, produce a CSV breaking down content for each session.", shortName: "cb");
            writer.WriteOption("jsonString", "JSON Config string of the cache", shortName: "js");
            writer.WriteOption("jsonFile", "File containing the JSON Config string of the cache", shortName: "jf");
            writer.WriteOption("sessionIDFilter", "Limits the analysis to only session IDs that match the specified regex string", shortName: "sf");
            writer.WriteOption("weakFingerprintInputFilepath", "If specified, the requested operations will be done with the weak fingerprints contained in the specified file (except for statisticalAnalysis which is always through sessions)", shortName: "wi");
            writer.WriteOption("outputFile", "The output of the tool is redirected to the file specified. If no file is specified, the output is directed to the console", shortName: "of");
            writer.WriteOption("weakFingerprintOutputFilepath", "If specified, all weak fingerprints found during execution (except for statisticalAnalysis) will be output to the specified file", shortName: "wo");
        }
 private static void WriteIncrementalSchedulingStateAnalyzerHelp(HelpWriter writer)
 {
     writer.WriteBanner("Incremental Scheduling State Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.IncrementalSchedulingState), "Generates textual format of incremental scheduling state");
     writer.WriteOption("outputFile", "Required. The output file.", shortName: "o");
 }
Esempio n. 12
0
 private static void WriteFilterLogHelp(HelpWriter writer)
 {
     writer.WriteBanner("Filter Log Analysis");
     writer.WriteOption("exclude", "Required. An execution event id name to exclude from the filtered execution log.");
     writer.WriteOption("outputFile", "Required. The file where to write the filtered execution log.", shortName: "o");
 }
Esempio n. 13
0
 private static void WriteObservedInputSummaryHelp(HelpWriter writer)
 {
     writer.WriteBanner("Observed Input Summary Analysis");
     writer.WriteModeOption(nameof(AnalysisMode.ObservedInputSummary), "Generates a text file containing summary level information about ObservedInputs");
     writer.WriteOption("outputFile", "Required. The file where to write the results", shortName: "o");
 }