vara-cs

This tool provides functionality to create and manage case studies. Detailed information about how case studies work can be found here.

The vara-cs tool has various sub-commands which we explain in more detail below:

Usage: vara-cs [OPTIONS] COMMAND [ARGS]...

  Allow easier management of case studies.

Options:
  --help  Show this message and exit.

Commands:
  cleanup  Cleanup report files.
  gen      Generate or extend a CaseStudy Sub commands can be chained to...
  package  Case study packaging util.
  status   Show status of current case study.
  view     View report files.

vara-cs gen

The vara-cs gen command generates a new or extends a existing one case study. Which revisions are added to the case study depends on the chosen selection strategy. New case studies are automatically inserted into the current paper config.

For more options, take a look at the command line parameters:

Usage: vara-cs gen [OPTIONS] COMMAND [ARGS]...

  Generate or extend a CaseStudy Sub commands can be chained to for example
  sample revisions but also add the latest.

Options:
  -p, --project TEXT              [required]
  -or, --override                 If a case study for the given project and
                                  version exists override it instead of
                                  extending it
  --merge-stage TEXT              Merge the new revision(s) into stage `n`;
                                  defaults to last stage.
  --new-stage                     Add the new revision(s) to a new stage
  -v, --version INTEGER           Case study version.
  --ignore-blocked / --allow-blocked
                                  Ignore/Allow revisions that are marked as
                                  blocked. By default, blocked revisions will
                                  be ignored.
  --update / --no-update          Project repository will not be updated.
  --help                          Show this message and exit.

Commands:
  select_bug            Extend a case study with revisions that either...
  select_latest         Add the latest revision of the project to the CS.
  select_plot           Generate revisions based on a plot.
  select_release        Extend a case study with revisions marked as a...
  select_revs-per-year  Add a number of revisions per year.
  select_sample         Add revisions based on a sampling Distribution.
  select_specific       Adds a list of specified revisions to the CS.

Also look at vara-cs-gui, which can be used to create case studies using a graphical interface.

vara-cs status

The vara-cs status command prints status information about the results of your experiments. It can give an overview over the status of all case studies or more detailed information about specific case studies.

Usage: vara-cs status [OPTIONS] {PyDrillerSZZ|SZZUnleashed|FeatureExperiment|R
                      unTEFProfiler|RunPIMProfiler|RunEBPFTraceTEFProfiler|Run
                      BCCTEFProfiler|GenBBBaseline|RunTEFProfilerO|RunPIMProfi
                      lerO|RunEBPFTraceTEFProfilerO|RunBCCTEFProfilerO|GenBBBa
                      selineO|JustCompile|TimeWorkloads|GlobalsComparision|Pha
                      sarIDELinearConstantAnalysis|RunAggRegionPerf|LineBasedB
                      lameAnnotations|ASTBasedBlameAnnotations|CompareASTBlame
                      |GenerateBlameReport|GenerateBlameReportRegion|GenerateB
                      lameReportCommitInFunction|RunBlameServer|GenerateBlameV
                      erifierReportOpt|GenerateBlameVerifierReportNoOptTBAA|Ge
                      nerateCommitReport|FeatureInstrumentationPoints|RunFeatu
                      rePerf|RunFeatureXRayPerf|FeaturePerfSampling97Hz|Featur
                      ePerfSampling997Hz|FeaturePerfTracingDry|FeaturePerfTrac
                      ingDryUsdt|FeaturePerfTracingDryRawUsdt|FeaturePerfTraci
                      ngTef|FeaturePerfTracingTefUsdt|FeaturePerfTracingTefUsd
                      tBcc|FeaturePerfTracingTefRawUsdt|GenerateFeatureRegionR
                      eport|FeatureTracingStats|DetermineHotFunctions|RunInstr
                      Verifier|PrintMarkerInstTest|PapiMarkerInstTest|CheckMar
                      kerInstTest|PhASARFeatureTaintAnalysis|RegionAnalyser}

  Show status of current case study.

  EXPERIMENT-NAME: Provide a experiment name to select which files are
  considered for the status

Options:
  --filter-regex TEXT  Provide a regex to filter the shown case studies
  -s, --short          Only print a short summary
  --list-revs          Print a list of revisions for every stage and every
                       case study
  --ws                 Print status with stage separation
  --sorted             Sort the revisions in the order they are printed by git
                       log.
  --legend             Print status with legend
  --force-color        Force colored output also when not connected to a
                       terminal (e.g. when piping to less -r).
  --help               Show this message and exit.

vara-cs package

The vara-cs package command allows to package all files belonging to the current paper config into a .zip file.

Usage: vara-cs package [OPTIONS] [[PyDrillerSZZ|SZZUnleashed|FeatureExperiment
                       |RunTEFProfiler|RunPIMProfiler|RunEBPFTraceTEFProfiler|
                       RunBCCTEFProfiler|GenBBBaseline|RunTEFProfilerO|RunPIMP
                       rofilerO|RunEBPFTraceTEFProfilerO|RunBCCTEFProfilerO|Ge
                       nBBBaselineO|JustCompile|TimeWorkloads|GlobalsComparisi
                       on|PhasarIDELinearConstantAnalysis|RunAggRegionPerf|Lin
                       eBasedBlameAnnotations|ASTBasedBlameAnnotations|Compare
                       ASTBlame|GenerateBlameReport|GenerateBlameReportRegion|
                       GenerateBlameReportCommitInFunction|RunBlameServer|Gene
                       rateBlameVerifierReportOpt|GenerateBlameVerifierReportN
                       oOptTBAA|GenerateCommitReport|FeatureInstrumentationPoi
                       nts|RunFeaturePerf|RunFeatureXRayPerf|FeaturePerfSampli
                       ng97Hz|FeaturePerfSampling997Hz|FeaturePerfTracingDry|F
                       eaturePerfTracingDryUsdt|FeaturePerfTracingDryRawUsdt|F
                       eaturePerfTracingTef|FeaturePerfTracingTefUsdt|FeatureP
                       erfTracingTefUsdtBcc|FeaturePerfTracingTefRawUsdt|Gener
                       ateFeatureRegionReport|FeatureTracingStats|DetermineHot
                       Functions|RunInstrVerifier|PrintMarkerInstTest|PapiMark
                       erInstTest|CheckMarkerInstTest|PhASARFeatureTaintAnalys
                       is|RegionAnalyser]]...

  Case study packaging util.

  EXPERIMENT_NAMES: Provide experiment names to select which files are
  considered for packaging.

Options:
  -o, --output TEXT    Output file
  --filter-regex TEXT  Provide a regex to only include case studies that match
                       the filter.
  --help               Show this message and exit.

vara-cs view

The vara-cs view command allows to easily open result files in your favourite editor. The tool searches for result files matching the given commit hash and presents you a list with the found files. The selected file then gets opened using the program in your EDITOR environment variable.

Usage: vara-cs view [OPTIONS]

  View report files.

Options:
  --experiment-type [PyDrillerSZZ|SZZUnleashed|FeatureExperiment|RunTEFProfiler|RunPIMProfiler|RunEBPFTraceTEFProfiler|RunBCCTEFProfiler|GenBBBaseline|RunTEFProfilerO|RunPIMProfilerO|RunEBPFTraceTEFProfilerO|RunBCCTEFProfilerO|GenBBBaselineO|JustCompile|TimeWorkloads|GlobalsComparision|PhasarIDELinearConstantAnalysis|RunAggRegionPerf|LineBasedBlameAnnotations|ASTBasedBlameAnnotations|CompareASTBlame|GenerateBlameReport|GenerateBlameReportRegion|GenerateBlameReportCommitInFunction|RunBlameServer|GenerateBlameVerifierReportOpt|GenerateBlameVerifierReportNoOptTBAA|GenerateCommitReport|FeatureInstrumentationPoints|RunFeaturePerf|RunFeatureXRayPerf|FeaturePerfSampling97Hz|FeaturePerfSampling997Hz|FeaturePerfTracingDry|FeaturePerfTracingDryUsdt|FeaturePerfTracingDryRawUsdt|FeaturePerfTracingTef|FeaturePerfTracingTefUsdt|FeaturePerfTracingTefUsdtBcc|FeaturePerfTracingTefRawUsdt|GenerateFeatureRegionReport|FeatureTracingStats|DetermineHotFunctions|RunInstrVerifier|PrintMarkerInstTest|PapiMarkerInstTest|CheckMarkerInstTest|PhASARFeatureTaintAnalysis|RegionAnalyser]
                                  Experiment type of the result files.
                                  [required]
  --report-type [KeyedReportAggregate|ReportAggregate|SZZReport|SZZUnleashedReport|PyDrillerSZZReport|BlameReport|BlameVerifierReportOpt|BlameVerifierReportNoOptTBAA|CommitReport|FeatureAnalysisReport|GlobalsReportWithout|GlobalsReportWith|WorkloadSpecificReportAggregate|PerfInfluenceTraceReport|PerfInfluenceTraceReportAggregate|WorkloadSpecificPITReportAggregate|TimeReport|TimeReportAggregate|WLTimeReportAggregate|MultiPatchReport|TEFReport|TEFReportAggregate|WorkloadSpecificTEFReportAggregate|MPRTimeReportAggregate|MPRTEFAggregate|MPRPIMAggregate|BlameAnnotations|BlameComparisonReport|CompiledBinaryReport|EmptyReport|EnvTraceReport|FeatureInstrumentationPointsReport|FeatureTracingStatsReport|InstrVerifierReport|PerfProfileReport|PerfProfileReportAggregate|RegionVerificationReport|TaintPropagationReport|HotFunctionReport|WLHotFunctionAggregate|LinuxPerfReport|LinuxPerfReportAggregate]
                                  Report type of the result files.
  --project TEXT                  Project to view result files for.
                                  [required]
  --commit-hash SHORTCOMMITHASH   Commit hash to view result files for.
  --newest-only                   Only report the newest file for each matched
                                  commit hash
  --help                          Show this message and exit.

vara-cs cleanup

The vara-cs cleanup command allows the user to easily remove old or no longer wanted report files.

Usage: vara-cs cleanup [OPTIONS] COMMAND [ARGS]...

  Cleanup report files.

  If both --experiment and --report the report file has to belong to both

Options:
  -cs, --case-studies []          Only remove reports for revisions from these
                                  case studies, defaults to all case studies
                                  from the current paper config
  -exp, --experiment [PyDrillerSZZ|SZZUnleashed|FeatureExperiment|RunTEFProfiler|RunPIMProfiler|RunEBPFTraceTEFProfiler|RunBCCTEFProfiler|GenBBBaseline|RunTEFProfilerO|RunPIMProfilerO|RunEBPFTraceTEFProfilerO|RunBCCTEFProfilerO|GenBBBaselineO|JustCompile|TimeWorkloads|GlobalsComparision|PhasarIDELinearConstantAnalysis|RunAggRegionPerf|LineBasedBlameAnnotations|ASTBasedBlameAnnotations|CompareASTBlame|GenerateBlameReport|GenerateBlameReportRegion|GenerateBlameReportCommitInFunction|RunBlameServer|GenerateBlameVerifierReportOpt|GenerateBlameVerifierReportNoOptTBAA|GenerateCommitReport|FeatureInstrumentationPoints|RunFeaturePerf|RunFeatureXRayPerf|FeaturePerfSampling97Hz|FeaturePerfSampling997Hz|FeaturePerfTracingDry|FeaturePerfTracingDryUsdt|FeaturePerfTracingDryRawUsdt|FeaturePerfTracingTef|FeaturePerfTracingTefUsdt|FeaturePerfTracingTefUsdtBcc|FeaturePerfTracingTefRawUsdt|GenerateFeatureRegionReport|FeatureTracingStats|DetermineHotFunctions|RunInstrVerifier|PrintMarkerInstTest|PapiMarkerInstTest|CheckMarkerInstTest|PhASARFeatureTaintAnalysis|RegionAnalyser]
                                  Only remove reports that belong to the given
                                  experiment
  --report [KeyedReportAggregate|ReportAggregate|SZZReport|SZZUnleashedReport|PyDrillerSZZReport|BlameReport|BlameVerifierReportOpt|BlameVerifierReportNoOptTBAA|CommitReport|FeatureAnalysisReport|GlobalsReportWithout|GlobalsReportWith|WorkloadSpecificReportAggregate|PerfInfluenceTraceReport|PerfInfluenceTraceReportAggregate|WorkloadSpecificPITReportAggregate|TimeReport|TimeReportAggregate|WLTimeReportAggregate|MultiPatchReport|TEFReport|TEFReportAggregate|WorkloadSpecificTEFReportAggregate|MPRTimeReportAggregate|MPRTEFAggregate|MPRPIMAggregate|BlameAnnotations|BlameComparisonReport|CompiledBinaryReport|EmptyReport|EnvTraceReport|FeatureInstrumentationPointsReport|FeatureTracingStatsReport|InstrVerifierReport|PerfProfileReport|PerfProfileReportAggregate|RegionVerificationReport|TaintPropagationReport|HotFunctionReport|WLHotFunctionAggregate|LinuxPerfReport|LinuxPerfReportAggregate]
                                  Only remove reports from the given type.
  --help                          Show this message and exit.

Commands:
  all    Remove all report files of the current paper_config.
  old    Remove result files of wich a newer version exists.
  regex  Remove result files based on a given regex filter.