GENHTML(1) LCOV GENHTML(1) (NAME) genhtml - genhtml (NAME) genhtml HTML LCOV - . (SYNOPSIS) genhtml [ -h | --help ] [ --version ] [ -q | --quiet ] [ -v | --verbose ] [ --debug ] [ --validate ] [ -s | --show-details ] [ -f | --frames ] [ -b | --baseline-file baseline-file-pattern ] [ -o | --output-directory output-directory ] [ --header-title banner ] [ --footer string ] [ -t | --title title ] [ -d | --description-file description-file ] [ -k | --keep-descriptions ] [ -c | --css-file css-file ] [ -p | --prefix prefix ] [ --no-prefix ] [ --build-directory directory ] [ --source-directory dirname ] [ --no-source ] [ --no-html ] [ --num-spaces num ] [ --highlight ] [ --legend ] [ --html-prolog prolog-file ] [ --html-epilog epilog-file ] [ --html-extension extension ] [ --html-gzip ] [ --sort-tables ] [ --no-sort ] [ --function-coverage ] [ --no-function-coverage ] [ --branch-coverage ] [ --no-branch-coverage ] [ --mcdc-coverage ] [ --demangle-cpp [ param ] ] [ --msg-log [ log_file_name ] ] [ --ignore-errors errors ] [ --expect-message-count message_type=expr[,message_type=expr..] ] [ --keep-going ] [ --config-file config-file ] [ --profile [ profile-file ] ] [ --history-script callback ] [ --rc keyword = value ] [ --precision num ] [ --missed ] [ --merge-aliases ] [ --suppress-aliases ] [ --forget-test-names ] [ --dark-mode ] [ --baseline-title title ] [ --baseline-date date ] [ --current-date date ] [ --diff-file diff-file ] [ --annotate-script script ] [ --context-script script ] [ --criteria-script script ] [ --version-script script ] [ --resolve-script script ] [ --select-script script ] [ --simplify-script script ] [ --unreachable-script module ] [ --checksum ] [ --fail-under-branches percentage ] [ --fail-under-lines percentage ] [ --new-file-as-baseline ] [ --elide-path-mismatch ] [ --synthesize-missing ] [ --date-bins day[,day,...] ] [ --date-labels string[,string,...] ] [ --show-owners [ all ] ] [ --show-noncode ] [ --show-zero-columns ] [ --show-navigation ] [ --show-proportions ] [ --simplified-colors ] [ --hierarchical ] [ --flat ] [ --filter filters ] [ --include glob_pattern ] [ --exclude glob_pattern ] [ --erase-functions regexp_pattern ] [ --substitute regexp_pattern ] [ --omit-lines regexp_pattern ] [ --parallel | -j [ integer ] ] [ --memory integer_num_Mb ] [ --tempdir dirname ] [ --preserve ] [ --save ] [ --sort-input ] [ --serialize serialize_output_file ] tracefile_pattern(s) genhtml HTML (coverage) (tracefiles) geninfo lcov () (glob) tracefile_pattern . tracefile geninfo(1) . : o (baseline) o (<<>> "binning") / https://arxiv.org/abs/2008.07947 . (Differential coverage) - (baseline) - . genhtml : 1. baseline-files --baseline-file 2. (patch) (unified format) --diff-file . tracefile_pattern baseline-file glob . tracefiles baseline-files : 1. (Test coverage results): (1) (0) (#) . #ifdef. 2. (Source code changes): (+ =>) (=> -) . diff-file genhtml . ( ): UNC Uncovered New Code ( ) (+ => 0): . LBC Lost Baseline Coverage ( ) (1 => 0): . UIC Uncovered Included Code ( ) (# => 0): . UBC Uncovered Baseline Code ( ) (0 => 0): . GBC Gained Baseline Coverage ( ) (0 => 1): . GIC Gained Included Coverage ( ) (# => 1): . GNC Gained New Coverage ( ) (+ => 1): . CBC Covered Baseline Code ( ) (1 => 1): . EUB Excluded Uncovered Baseline ( ) (0 => #): . ECB Excluded Covered Baseline ( ) (1 => #): . DUB Deleted Uncovered Baseline ( ) (0 => -): . : . DCB Deleted Covered Baseline ( ) (1 => -): . : . . --simplified-colors <<>> (covered) << >> (uncovered) ..SS (Date and owner binning) . . (baseline coverage) . --annotate-script . . ( --date-bins ). (Script conventions) genhtml . . : --annotate-script --context-script --criteria-script --history-script --resolve-script --select-script --simplify-script --unreachable-script --version-script : 1. (callback) .pm Perl . Perl . "new" ( ) . : $callback_obj = packagename ->new(perl_module_file, args); version-script $version = $callback_obj->extract_version($source_file_ename); $match = $version->check_version($old_version, $new_version, $source_file_name); $match (true) (false) . $version . *$|TOOL_NAME|_HOME/share/lcov/support-scripts/gitversion.pm $|TOOL_NAME|_HOME/share/lcov/support-scripts/getp4version.pm . annotate-script ($status, $array) = $callback_obj->annotate($source_file_name); : $status . $status "system(..)" . $array : [$text, $abbrev, $full_name, $when, $changelist]. : $text ( ). $abbrev << >> . HTML . . "NONE" . $full_name << >> (tooltips) . genhtml_annotate_tooltip lcovrc(5) . $fullname undef . $when "NONE" . $changelist (commit) "NONE" . $|TOOL_NAME|_HOME/share/lcov/support-scripts/gitblame.pm $|TOOL_NAME|_HOME/share/lcov/support-scripts/p4annotate.pm . context-script $hash = $callback_obj->context(); $hash (hash) / . profile . "profile" lcovrc(5) . Perl - - . . . Perl . (constructor) context-script ( ) - . .info . $|TOOL_NAME|_HOME/share/lcov/support-scripts/context.pm . criteria-script ($status, $array) = $callback_obj->check_criteria($obj_name, $type, $json); : $obj_name "top" . $type - "file" "directory" "top". $json JSON - . $status annotate . $array ( ) genhtml . . $|TOOL_NAME|_HOME/share/lcov/support-scripts/criteria.pm . history-script $cpu_seconds = $callback_obj->history($element_name) $cpu_seconds $element_name undef . scripts/history.pm -profile genhtml . - ( ). resolve-script $newpath = $callback_obj->resolve($source_file_name) $newpath undef . simplify-script $new_func_name = $callback_obj->simplify($orig_func_name) $new_func_name $orig_func_name ( /demangled) . << >> (function detail) . unreachable-script $data_changed = $callback_obj->exclude($type, $source, $summary, $testdata); $data_changed $type "branch" "mcdc" $source "ReadCurrentSource" $summary $testdata . .../scripts/unreach.pm / MC/DC . . . . -unreachable-script Perl . . 2. split_char ( lcovrc(5) ) . . . . "list" : . : "split_char" genhtml . 3. - . : - . 4. genhtml . : genhtml --annotate-script /bin/script.sh --annotate-script arg0 ... (callback) : genhtml --annotate-script "/bin/script.sh arg0" ... genhtml --annotate-script /bin/script.sh,arg0 ... . genhtml : /bin/script.sh arg0 *source_file_name* genhtml --annotate-script */bin/myMoodule.pm* --annotate-script arg0 --annotate-script arg1 ... genhtml --annotate-script */bin/myMoodule.pm,arg0,arg1* genhtml : $annotateCallback = myModule->new(arg0, arg1); - arg0 arg1 - : ($status, $arrayRef) = $annotateCallback(*source_file_name*); (annotation) . genhtml --annotate-script */bin/myMoodule.pm* --annotate-script arg0,arg1 ... genhtml callback : $annotateCallback = myModule->new("arg0,arg1"); "arg0,arg1" . genhtml --annotate-script */bin/myMoodule.pm,arg0* --annotate-script arg1 ... genhtml /bin/mymodule.pm,arg0 . --parallel . (reentrant) (synchronization) . callback perl : o ( ) o callback ( ) . : callback . - - genhtml ( lcov geninfo) : o $callback->start() . - . . o my $data = $callback->save() . $data $callback->save() (reap ) $callback->restore() . o $callback->restore($data) . $data $callback->save() . (/ .) o $callback->finalize() . . finalize() . $callback->save() $callback->restore() . $callback->start() $callback->finalize() : . Perl . ( ) - / . --criteria-script genhtml - . --version-script / . HTML --output-directory . tracefile baseline-file <<.gz>> GZIP gunzip . <<.info>> <> ( ). --version-script --annotate-script --criteria-script . --substitute --resolve-script / . check_existence_before_callback --version-script --annotate-script . lcovrc(5) . --diff-file (unified diff) . --css-file HTML . . - - - . : genhtml_hi_limit genhtml_med_limit : genhtml_line_hi_limit genhtml_line_med_limit genhtml_branch_hi_limit genhtml_branch_med_limit genhtml_function_hi_limit genhtml_function_med_limit lcovrc(5) . 0% 100% 0% 100% . 0% 100% . gcov(1) . genhtml . MC/DC --branch-coverage --mcdc-coverage MC/DC - lcov . branch_coverage mcdc_coverage lcovrc(5) . (OPTIONS) () genhtml - lcovrc(5) . -h, --help . --version . -v, --verbose (verbosity) . - . -quiet . -q, --quiet . <<>> - . --debug << >>. lcov . --validate HTML . LCOV_VALIDATE = 1 . HTML . --flat, --hierarchical HTML. HTML : 1. (top-level): 2. (directory): 3. (source file detail): . --hierarchical ( Microsoft Windows). --flat HTML : 1. (top-level): 2. (source file detail): . <<>> (flat) - . << >> ( -select-script ). - <<>> . . --flat --hierarchical . lcovrc : genhtml_hierarchical = 1 genhtml_flat_view = 1 lcovrc(5) . -f, --frames HTML () . frameset << >> . . GD.pm ( ). genhtml_frames lcovrc . firefox chrome <<>> - <> ( - --show-navigation ) <> ( ) . << >> . -s, --show-details . genhtml : o <<>> (detailed) o (coverpoints) (testcase) . . <<>> genhtml <<>> ( genhtml -flat ) <<>> ( genhtml -hierarchical ) . . -b baseline-file-pattern, --baseline-file baseline-file-pattern baseline-file-pattern (baseline) . --baseline-file - . baseline-file-pattern tracefile-patterns . baseline-file-pattern genhtml <<.info>> . info_file_extension man(5) lcovrc . -baseline-file-pattern diff unified diff --diff-file . diff genhtml <> <> . : gcc gcc llvm . --baseline-title title title . --baseline-date date date . baseline-file-pattern . ..TP --current-date date date . tracefile . --diff-file diff-file diff-file baseline-file-pattern tracefile(s). : o (differential coverage report) ( --filter ) current coverage data ( ) baseline coverage data ( --baseline-file ) . diff-file . o (callback) --version-script . - . "universal diff" --diff-file <> <> . <> <> : scripts/p4udiff scripts/gitdiff `p4' `git' ( ) . p4udiff changelist <> <> (check in) . "gitdiff --help" "p4udiff --help" . : diff [optional header strings] === file_path p4diff/gitdiff `path mismatch' . --elide-path-mismatch --build-directory . --diff-file --baseline-file . baseline_files ( ) diff_file : `baseline' `current' . baseline_files diff_file . diff_file baseline_files ( ) ( diff_file ) GIC () UIC () GNC UNC . --annotate-script script script . genhtml . genhtml HTML (date bin) . . <> . genhtml_annotate_tooltip lcovrc(5) . script . --ignore-errors genhtml . --synthesize-missing genhtml . genhtml ( ). P4USER P4CLIENT P4PORT - Jenkins (check out) sandbox . Perforce (<>) git (<>) : scripts/p4annotate scripts/gitblame (check in) - . P4 (shelve) git . Script considerations . script genhtml : script [additional_parameters] source_file_name script additional_parameters ( Script conventions ) source_file_name script source_file_name : commit_id | author_data | date | source_code commit_id NONE . commit_id NONE genhtml << >> << >> . author_data . annotate-script author_data : o string: ` ' ( `owner' HTML ) ` ' ( tooltip) o abbrev_string;full_name: author_data ` ' ` ' - - (`;') . (`External') `owner' . ( gitblame .) date W3CDTF (--
T::) source_code 0 () . --criteria-script script script . genhtml . genhtml . genhtml . : scripts/criteria <> ( ). (<<(GNC + GIC + CBC) / (GNC + GIC + CBC + UNC + UIC + UBC)>>) lcov --fail-under-lines - . . : (top-level) . criteria_callback_levels `top' `directory' `file' . : genhtml --rc criteria_callback_levels=directory,top ... criteria_callback_data . . "date" "owner" . : genhtml --rc criteria_callback_data=date,owner ... lcovrc(5) . (Script considerations) . script (leaf-directory) : script [additional_parameters] "name " " type" "coverage_data" : script additional_parameters ( (Script conventions) ) name <> type <> <> <> coverage_data JSON . (callback) Perl JSON . JSON : { "": { "found": , "hit": , "": , ... }, "": { "" : { "found": , "hit": , "": , ... }, ... }, ... } : type <> <> <> bin_type (per-bin) <> <> <> (date-bin) <> <> (owner-bin) bin_id date-bin owner-bin . found hit (hit) category ( (Differential coverage) ) (bins) . 0 () . (error log) . genhtml . --version-script script script . genhtml HTML (version ID) ( --filter ). . (i.e. lcov/geninfo ) . . (job) - e.g. / . .info ( ) - - compute_file_version = 1 . lcov --add-tracefile . lcovrc(5) . Perforce ( <>) ( <>) md5 ( <>) : scripts/getp4version scripts/gitversion scripts/get_signature / . (Script considerations) . <