Table of Contents
1
Code Coverage
pgBackRest aims to have complete function/branch/line coverage for the core C code in /src.
Function/line coverage is complete with no exceptions.
Branch coverage excludes branches inside macros and assert() calls. Macros have their own unit tests so they do not need to be tested everywhere they appear. Asserts are not expected to have complete branch coverage since they test cases that should always be true.
Directory Functions Branches Lines
build/common 12/12 (100.0%) 28/28 (100.0%) 142/142 (100.0%)
build/config 30/30 (100.0%) 450/450 (100.0%) 956/956 (100.0%)
build/error 6/6 (100.0%) 26/26 (100.0%) 78/78 (100.0%)
build/help 12/12 (100.0%) 128/128 (100.0%) 235/235 (100.0%)
build/postgres 6/6 (100.0%) 52/52 (100.0%) 123/123 (100.0%)
command 9/9 (100.0%) 72/72 (100.0%) 158/158 (100.0%)
command/annotate 1/1 (100.0%) 12/12 (100.0%) 33/33 (100.0%)
command/archive 13/13 (100.0%) 76/76 (100.0%) 223/223 (100.0%)
command/archive/get 9/9 (100.0%) 196/196 (100.0%) 466/466 (100.0%)
command/archive/push 12/12 (100.0%) 132/132 (100.0%) 406/406 (100.0%)
command/backup 36/36 (100.0%) 538/538 (100.0%) 1265/1265 (100.0%)
command/check 8/8 (100.0%) 62/62 (100.0%) 136/136 (100.0%)
command/control 4/4 (100.0%) 32/32 (100.0%) 59/59 (100.0%)
command/expire 10/10 (100.0%) 240/240 (100.0%) 397/397 (100.0%)
command/help 5/5 (100.0%) 132/132 (100.0%) 241/241 (100.0%)
command/info 12/12 (100.0%) 330/330 (100.0%) 676/676 (100.0%)
command/local 1/1 (100.0%) --- 7/7 (100.0%)
command/remote 1/1 (100.0%) 6/6 (100.0%) 20/20 (100.0%)
command/repo 9/9 (100.0%) 108/108 (100.0%) 233/233 (100.0%)
command/restore 28/28 (100.0%) 596/596 (100.0%) 1161/1161 (100.0%)
command/server 6/6 (100.0%) 24/24 (100.0%) 88/88 (100.0%)
command/stanza 5/5 (100.0%) 106/106 (100.0%) 135/135 (100.0%)
command/verify 21/21 (100.0%) 316/316 (100.0%) 753/753 (100.0%)
common 176/176 (100.0%) 600/600 (100.0%) 1995/1995 (100.0%)
common/compress 11/11 (100.0%) 24/24 (100.0%) 103/103 (100.0%)
common/compress/bz2 13/13 (100.0%) 20/20 (100.0%) 177/177 (100.0%)
common/compress/gz 13/13 (100.0%) 22/22 (100.0%) 169/169 (100.0%)
common/compress/lz4 15/15 (100.0%) 24/24 (100.0%) 180/180 (100.0%)
common/compress/zst 13/13 (100.0%) 12/12 (100.0%) 150/150 (100.0%)
common/crypto 28/28 (100.0%) 80/80 (100.0%) 491/491 (100.0%)
common/io 53/53 (100.0%) 160/160 (100.0%) 658/658 (100.0%)
common/io/filter 31/31 (100.0%) 92/92 (100.0%) 388/388 (100.0%)
common/io/http 47/47 (100.0%) 250/250 (100.0%) 711/711 (100.0%)
common/io/socket 22/22 (100.0%) 34/34 (100.0%) 287/287 (100.0%)
common/io/tls 34/34 (100.0%) 98/98 (100.0%) 512/512 (100.0%)
common/type 329/329 (100.0%) 852/852 (100.0%) 4237/4237 (100.0%)
config 88/88 (100.0%) 888/888 (100.0%) 1746/1746 (100.0%)
db 24/24 (100.0%) 126/126 (100.0%) 433/433 (100.0%)
info 93/93 (100.0%) 846/846 (100.0%) 2366/2366 (100.0%)
postgres 33/33 (100.0%) 112/112 (100.0%) 390/390 (100.0%)
postgres/interface 1/1 (100.0%) --- 2/2 (100.0%)
protocol 55/55 (100.0%) 232/232 (100.0%) 959/959 (100.0%)
storage 53/53 (100.0%) 228/228 (100.0%) 775/775 (100.0%)
storage/azure 25/25 (100.0%) 110/110 (100.0%) 531/531 (100.0%)
storage/cifs 2/2 (100.0%) --- 18/18 (100.0%)
storage/gcs 32/32 (100.0%) 116/116 (100.0%) 655/655 (100.0%)
storage/posix 25/25 (100.0%) 155/156 (99.36%) 463/463 (100.0%)
storage/remote 30/30 (100.0%) 106/106 (100.0%) 735/735 (100.0%)
storage/s3 30/30 (100.0%) 142/142 (100.0%) 723/723 (100.0%)
TOTAL 1532/1532 (100.0%) 8991/8992 (99.99%) 27845/27845 (100.0%)
The C unit test modules in /test/src/module also have complete function/line coverage but are not included in the report.