  
  [1X2 [33X[0;0YFunctionality provided by the [5Xprofiling[105X[101X[1X package[133X[101X
  
  
  [1X2.1 [33X[0;0YReading line-by-line profiles[133X[101X
  
  [1X2.1-1 ReadLineByLineProfile[101X
  
  [33X[1;0Y[29X[2XReadLineByLineProfile[102X( [3Xfilename[103X ) [32X function[133X
  
  [33X[0;0YRead [3Xfilename[103X, a line by line profile which was previously generated by GAP,
  using  ProfileLineByLine  or  CoverageLineByLine  functions from core GAP. A
  parsed  profile  can  be transformed into a human-readable form using either
  [2XOutputAnnotatedCodeCoverageFiles[102X ([14X2.3-1[114X) or [2XOutputFlameGraph[102X ([14X2.2-1[114X)[133X
  
  [1X2.1-2 MergeLineByLineProfiles[101X
  
  [33X[1;0Y[29X[2XMergeLineByLineProfiles[102X( [3Xfilenames[103X ) [32X function[133X
  
  [33X[0;0YRead  [3Xfilenames[103X,  a  list  of  line  by  line profiles which were previously
  generated  by  GAP,  using ProfileLineByLine or CoverageLineByLine functions
  from  core  GAP. The elements of [3Xfilenames[103X can be either filenames, or files
  previously parsed by [2XReadLineByLineProfile[102X ([14X2.1-1[114X).[133X
  
  
  [1X2.2 [33X[0;0YGenerating flame graphs[133X[101X
  
  [33X[0;0YA 'flame graph' is a method of visualising where time is spent by a program.[133X
  
  [1X2.2-1 OutputFlameGraph[101X
  
  [33X[1;0Y[29X[2XOutputFlameGraph[102X( [3Xcodecover[103X[, [3Xfilename[103X] ) [32X function[133X
  
  [33X[0;0YGenerate  an  'svg'  file  which  represents  a  'flame  graph', a method of
  visualising where time is spent by a program.[133X
  
  [33X[0;0Y[3Xcodecover[103X    should    either    be    a    profile   previously   read   by
  [11XReadLineByLineProfile[111X, or the filename of a profile.[133X
  
  [33X[0;0YThe  flame  graph input will be written to [3Xfilename[103X (or returned as a string
  if [3Xfilename[103X is not present).[133X
  
  [1X2.2-2 OutputFlameGraphInput[101X
  
  [33X[1;0Y[29X[2XOutputFlameGraphInput[102X( [3Xcodecover[103X[, [3Xfilename[103X] ) [32X function[133X
  
  [33X[0;0YGenerate the input required to draw a 'flame graph', a method of visualising
  where time is spent by a program. One program for drawing flame graphs using
  this output can be found at [7Xhttps://github.com/brendangregg/FlameGraph[107X[133X
  
  [33X[0;0Y[3Xcodecover[103X    should    either    be    a    profile   previously   read   by
  [11XReadLineByLineProfile[111X, or the filename of a profile.[133X
  
  [33X[0;0YThe  flame  graph input will be written to [3Xfilename[103X (or returned as a string
  if [3Xfilename[103X is not present).[133X
  
  
  [1X2.3 [33X[0;0YGenerating coverage reports[133X[101X
  
  [1X2.3-1 OutputAnnotatedCodeCoverageFiles[101X
  
  [33X[1;0Y[29X[2XOutputAnnotatedCodeCoverageFiles[102X( [3Xcodecover[103X[, [3Xindir[103X], [3Xoutdir[103X ) [32X function[133X
  
  [33X[0;0YTakes  a  previously  generated  profile  and outputs HTML which shows which
  lines  of code were executed, and (if this was originally recorded) how long
  was spent executing these lines of code.[133X
  
  [33X[0;0Y[3Xcodecover[103X    should    either    be    a    profile   previously   read   by
  [11XReadLineByLineProfile[111X, or the filename of a profile which will first be read
  with [11XReadLineByLineProfile[111X.[133X
  
  [33X[0;0YFiles will be written to the directory [3Xoutdir[103X.[133X
  
  [33X[0;0YThe  optional  second  argument  gives  a  filter,  only  information  about
  filenames starting with [3Xindir[103X will be outputted.[133X
  
  [1X2.3-2 OutputJsonCoverage[101X
  
  [33X[1;0Y[29X[2XOutputJsonCoverage[102X( [3Xcover[103X, [3Xoutfile[103X ) [32X function[133X
  
  [33X[0;0YTakes  a previously generated profile and outputs a json coverage file which
  is amongst other things accepted by codecov.io.[133X
  
  [33X[0;0Y[3Xcodecover[103X    should    either    be    a    profile   previously   read   by
  [11XReadLineByLineProfile[111X, or the filename of a profile which will first be read
  with [11XReadLineByLineProfile[111X.[133X
  
  [33X[0;0YThe output will be written to the file [3Xoutfile[103X.[133X
  
  [1X2.3-3 OutputCoverallsJsonCoverage[101X
  
  [33X[1;0Y[29X[2XOutputCoverallsJsonCoverage[102X( [3Xcover[103X, [3Xoutfile[103X, [3Xpathtoremove[103X[, [3Xopt[103X] ) [32X function[133X
  
  [33X[0;0YTakes  a previously generated profile and outputs a json coverage file which
  is accepted by coveralls.io.[133X
  
  [33X[0;0Y[3Xcover[103X  should  either be a profile previously read by [11XReadLineByLineProfile[111X,
  or   the   filename   of   a   profile   which   will  first  be  read  with
  [11XReadLineByLineProfile[111X.  [3Xpathtoremove[103X  is  the path to the tested repository;
  this  path  prefix will be removed from all filenames in [3Xcover[103X. Finally, [3Xopt[103X
  is  a  record.  Its  key/value pairs are directly inserted into the produced
  JSON,  in  the  form  of  a  JSON  dictionary.  This  can be used to set the
  [10Xservice_name[110X,  [10Xservice_job_id[110X, and more. If this record is not given, we try
  to  guess  the  correct  values  based  on  the  environment (currently only
  supported for Travis and AppVeyor).[133X
  
  [33X[0;0YThe output will be written to the file [3Xoutfile[103X.[133X
  
  
  [1X2.4 [33X[0;0YMiscellaneous[133X[101X
  
  [1X2.4-1 LineByLineProfileFunction[101X
  
  [33X[1;0Y[29X[2XLineByLineProfileFunction[102X( [3Xfunction[103X, [3Xarguments[103X ) [32X function[133X
  
  [33X[0;0YCalls  [3Xfunction[103X  with  the  list  of  arguments  [3Xarguments[103X, and opens a time
  profile of the resulting call in the default web browser.[133X
  
  [1X2.4-2 ProfileFile[101X
  
  [33X[1;0Y[29X[2XProfileFile[102X( [3Xfile[103X[, [3Xopts[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YTests  the  file  with name [3Xfile[103X in another GAP session, and produces a code
  coverage  report  of  lines  that were executed in the process. If [3Xfile[103X ends
  with [10X.tst[110X it will be called with [10XTest[110X; otherwise, it will be run directly.[133X
  
  [33X[0;0YThe  optional  argument  [3Xopts[103X should be a record, and may contain any of the
  following components:[133X
  
  [30X    [33X[0;6Y[10Xoutdir[110X:  a  string denoting the directory into which the HTML files of
        the report will be placed (a temporary directory by default);[133X
  
  [30X    [33X[0;6Y[10Xindir[110X: a string such that only file paths beginning with [10Xindir[110X will be
        profiled (default [10X""[110X);[133X
  
  [30X    [33X[0;6Y[10XshowOutput[110X:  a  boolean  denoting  whether to print test output to the
        screen (default [10Xtrue[110X);[133X
  
  [30X    [33X[0;6Y[10Xopen[110X:  a  boolean denoting whether to open the report in a web browser
        on completion (default [10Xfalse[110X).[133X
  
  [33X[0;0YThis function returns the location of an HTML file containing the report.[133X
  
  [1X2.4-3 ProfilePackage[101X
  
  [33X[1;0Y[29X[2XProfilePackage[102X( [3Xpkg_name[103X[, [3Xopts[103X] ) [32X function[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YIf  [3Xpkg_name[103X  is  the  name of an installed package, then this function runs
  that  package's  test  suite  and  produces a report on the code coverage of
  files  inside  the  package.  The string returned denotes the location of an
  HTML file containing the report. The optional argument [3Xopts[103X behaves the same
  as in [2XProfileFile[102X ([14X2.4-2[114X).[133X
  
