Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QUIC Server - Testing - Coverage review #533

Closed
Tracked by #52
hlandau opened this issue Apr 26, 2024 · 9 comments
Closed
Tracked by #52

QUIC Server - Testing - Coverage review #533

hlandau opened this issue Apr 26, 2024 · 9 comments
Assignees
Labels
QUIC R2 Chosen for QUIC R2 feature package QUIC

Comments

@hlandau
Copy link
Member

hlandau commented Apr 26, 2024

Currently, based on this:
https://coveralls.io/github/openssl/openssl?branch=master

Our testing coverage hits 79.67% of our code

Note, this is based of the head of the master branch, as we do not run coverage analysis on any feature branch

Based on our policy, we can't go down in coverage between releases, and I would expect that, given the size of the feature branch, our overall coverage will likely decrease when we merge. We should be prepared for that eventuality, and the need to identify missed test paths and code additional tests between our merge date and beta freeze.

@hlandau hlandau added QUIC QUIC R2 Chosen for QUIC R2 feature package labels Apr 26, 2024
@vavroch2010 vavroch2010 added this to the 3.5.0 milestone Jan 17, 2025
@github-project-automation github-project-automation bot moved this to Pre-Refinement in Development Board Jan 17, 2025
@vavroch2010
Copy link

Run coveralls on a feature branch

@vavroch2010 vavroch2010 moved this from Pre-Refinement to Todo in Development Board Jan 17, 2025
@t8m
Copy link
Member

t8m commented Jan 22, 2025

The current coverage of the 3.4 branch is 67.81%
The current coverage of the master branch is 67.78%
The current coverage of the feature/quic-server branch is 67.70%

That is 0.08% coverage drop from the master branch and additional 0.03% coverage drop between 3.4 and master branch.

We are still expecting the server-side fuzz testing to be done which can hopefully fix the drop from master.

@t8m t8m self-assigned this Jan 22, 2025
@t8m t8m moved this from Todo to Waiting Review in Development Board Jan 22, 2025
@vavroch2010 vavroch2010 moved this from Waiting Review to Todo in Development Board Jan 22, 2025
@andrewkdinh
Copy link

andrewkdinh commented Jan 22, 2025

Waiting to see how quic server fuzz testing from #384 increases code coverage

@t8m
Copy link
Member

t8m commented Jan 24, 2025

This is the current coverage report for the feature/quic-server branch:

quic-server-lcov.zip

There are some obvious gaps. So we could write some quicapi test tests.

@nhorman
Copy link
Contributor

nhorman commented Feb 3, 2025

Some interesting data:

I ran a local coverage test on the mater branch, and again on the quic-server branch (adding in the quic-server fuzzer and few obvious fixes). a diff of the output of the coverage files run through lcov --list is as follows:

--- ./results	2025-02-03 13:47:21.400399903 -0500
+++ ../worktrees/old/results	2025-02-03 13:47:03.806343379 -0500
@@ -3,3 +3,3 @@
 ================================================================================
-[/home/nhorman/git/openssl/]
+[/home/nhorman/git/worktrees/old/]
 apps/asn1parse.c                               | 1.7%   120| 0.0%   2|    -    0
@@ -7,4 +7,4 @@
 apps/ciphers.c                                 | 2.9%    70| 0.0%   1|    -    0
-apps/cmp.c                                     | 3.5%  1376| 0.0%  45|    -    0
-apps/cms.c                                     | 1.6%   572| 0.0%   6|    -    0
+apps/cmp.c                                     | 3.5%  1358| 0.0%  46|    -    0
+apps/cms.c                                     | 1.6%   573| 0.0%   6|    -    0
 apps/crl.c                                     | 0.9%   110| 0.0%   1|    -    0
@@ -22,3 +22,3 @@
 apps/gendsa.c                                  | 1.7%    59| 0.0%   1|    -    0
-apps/genpkey.c                                 | 2.7%   188| 0.0%   5|    -    0
+apps/genpkey.c                                 | 2.8%   181| 0.0%   5|    -    0
 apps/genrsa.c                                  | 1.2%    85| 0.0%   1|    -    0
@@ -29,9 +29,9 @@
 apps/lib/app_params.c                          | 5.7%    53| 0.0%   3|    -    0
-apps/lib/app_provider.c                        |35.5%    31| 0.0%   9|    -    0
+apps/lib/app_provider.c                        |29.0%    31| 0.0%   9|    -    0
 apps/lib/app_rand.c                            |38.5%    13| 0.0%   3|    -    0
 apps/lib/app_x509.c                            |12.5%    48| 0.0%   6|    -    0
-apps/lib/apps.c                                |11.6%  1129| 0.0% 111|    -    0
+apps/lib/apps.c                                |11.7%  1113| 0.0% 110|    -    0
 apps/lib/apps_opt_printf.c                     |20.0%     5| 0.0%   1|    -    0
 apps/lib/apps_ui.c                             |11.7%    94| 0.0%  10|    -    0
-apps/lib/cmp_mock_srv.c                        |14.2%   197| 0.0%  21|    -    0
+apps/lib/cmp_mock_srv.c                        |14.0%   193| 0.0%  21|    -    0
 apps/lib/columns.c                             |11.1%     9| 0.0%   1|    -    0
@@ -45,3 +45,3 @@
 apps/lib/s_cb.c                                | 9.6%   428| 0.0%  33|    -    0
-apps/lib/s_socket.c                            | 3.2%   157| 0.0%   5|    -    0
+apps/lib/s_socket.c                            | 3.3%   153| 0.0%   5|    -    0
 apps/lib/tlssrp_depr.c                         |90.0%    10| 0.0%   1|    -    0
@@ -95,3 +95,3 @@
 crypto/asn1/a_i2d_fp.c                         |14.3%    35| 0.0%   4|    -    0
-crypto/asn1/a_int.c                            |15.8%   209| 0.0%  30|    -    0
+crypto/asn1/a_int.c                            |15.9%   207| 0.0%  30|    -    0
 crypto/asn1/a_mbstr.c                          | 6.8%   147| 0.0%   9|    -    0
@@ -103,3 +103,3 @@
 crypto/asn1/a_strnid.c                         |17.8%    73| 0.0%  12|    -    0
-crypto/asn1/a_time.c                           | 9.4%   267| 0.0%  23|    -    0
+crypto/asn1/a_time.c                           | 9.2%   271| 0.0%  23|    -    0
 crypto/asn1/a_type.c                           |10.9%    55| 0.0%   6|    -    0
@@ -122,3 +122,3 @@
 crypto/asn1/d2i_param.c                        | 7.4%    27| 0.0%   2|    -    0
-crypto/asn1/d2i_pr.c                           | 6.5%   107| 0.0%   7|    -    0
+crypto/asn1/d2i_pr.c                           | 6.7%   105| 0.0%   7|    -    0
 crypto/asn1/d2i_pu.c                           | 4.2%    24| 0.0%   1|    -    0
@@ -137,3 +137,3 @@
 crypto/asn1/t_spki.c                           | 4.2%    24| 0.0%   1|    -    0
-crypto/asn1/tasn_dec.c                         | 3.2%   464| 0.0%  15|    -    0
+crypto/asn1/tasn_dec.c                         | 3.2%   462| 0.0%  15|    -    0
 crypto/asn1/tasn_enc.c                         | 3.3%   276| 0.0%   9|    -    0
@@ -178,3 +178,3 @@
 crypto/bio/bio_meth.c                          |43.1%    72| 0.0%  18|    -    0
-crypto/bio/bio_print.c                         | 2.7%   442| 0.0%  12|    -    0
+crypto/bio/bio_print.c                         | 2.7%   446| 0.0%  12|    -    0
 crypto/bio/bio_sock.c                          |29.5%    44| 0.0%   8|    -    0
@@ -186,3 +186,3 @@
 crypto/bio/bss_dgram.c                         | 7.4%   312| 0.0%  20|    -    0
-crypto/bio/bss_dgram_pair.c                    | 9.9%   446| 0.0%  39|    -    0
+crypto/bio/bss_dgram_pair.c                    | 9.8%   457| 0.0%  40|    -    0
 crypto/bio/bss_fd.c                            |    -     0|    -   0|    -    0
@@ -203,3 +203,3 @@
 crypto/bn/bn_err.c                             |25.0%     4| 0.0%   1|    -    0
-crypto/bn/bn_exp.c                             | 2.6%   457| 0.0%  12|    -    0
+crypto/bn/bn_exp.c                             | 2.4%   452| 0.0%  11|    -    0
 crypto/bn/bn_exp2.c                            | 1.2%    86| 0.0%   1|    -    0
@@ -244,4 +244,4 @@
 crypto/cmp/cmp_asn.c                           |69.0%   248| 0.0%  84|    -    0
-crypto/cmp/cmp_client.c                        | 4.3%   399| 0.0%  17|    -    0
-crypto/cmp/cmp_ctx.c                           |20.0%   375| 0.0%  73|    -    0
+crypto/cmp/cmp_client.c                        | 4.3%   398| 0.0%  17|    -    0
+crypto/cmp/cmp_ctx.c                           |20.1%   373| 0.0%  73|    -    0
 crypto/cmp/cmp_err.c                           |25.0%     4| 0.0%   1|    -    0
@@ -251,5 +251,5 @@
 crypto/cmp/cmp_local.h                         | 400%     3| 0.0%  12|    -    0
-crypto/cmp/cmp_msg.c                           | 9.4%   470| 0.0%  41|    -    0
-crypto/cmp/cmp_protect.c                       | 4.9%   122| 0.0%   6|    -    0
-crypto/cmp/cmp_server.c                        | 6.8%   310| 0.0%  21|    -    0
+crypto/cmp/cmp_msg.c                           | 9.4%   456| 0.0%  42|    -    0
+crypto/cmp/cmp_protect.c                       | 4.2%   119| 0.0%   5|    -    0
+crypto/cmp/cmp_server.c                        | 6.9%   304| 0.0%  21|    -    0
 crypto/cmp/cmp_status.c                        |10.8%    93| 0.0%  10|    -    0
@@ -257,3 +257,3 @@
 crypto/cmp/cmp_vfy.c                           | 5.3%   341| 0.0%  17|    -    0
-crypto/cms/cms_asn1.c                          |43.6%   110| 0.0%  40|    -    0
+crypto/cms/cms_asn1.c                          |43.1%   109| 0.0%  39|    -    0
 crypto/cms/cms_att.c                           |53.5%    43| 0.0%   8|    -    0
@@ -269,3 +269,3 @@
 crypto/cms/cms_kari.c                          | 8.5%   188| 0.0%  14|    -    0
-crypto/cms/cms_lib.c                           |15.3%   268| 0.0%  33|    -    0
+crypto/cms/cms_lib.c                           |14.9%   268| 0.0%  33|    -    0
 crypto/cms/cms_local.h                         | 400%     1| 0.0%   4|    -    0
@@ -273,3 +273,3 @@
 crypto/cms/cms_rsa.c                           | 6.7%   105| 0.0%   7|    -    0
-crypto/cms/cms_sd.c                            | 8.8%   434| 0.0%  31|    -    0
+crypto/cms/cms_sd.c                            | 8.8%   433| 0.0%  31|    -    0
 crypto/cms/cms_smime.c                         | 8.9%   349| 0.0%  24|    -    0
@@ -289,5 +289,5 @@
 crypto/conf/conf_ssl.c                         | 9.1%    66| 0.0%   6|    -    0
-crypto/context.c                               |11.2%   276| 0.0%  30|    -    0
+crypto/context.c                               |11.3%   275| 0.0%  30|    -    0
 crypto/core_algorithm.c                        | 6.5%    62| 0.0%   4|    -    0
-crypto/core_fetch.c                            |15.9%    44| 0.0%   7|    -    0
+crypto/core_fetch.c                            |16.3%    43| 0.0%   7|    -    0
 crypto/core_namemap.c                          |14.4%   174| 0.0%  24|    -    0
@@ -295,5 +295,5 @@
 crypto/cpuid.c                                 |45.5%    11| 0.0%   3|    -    0
-crypto/crmf/crmf_asn.c                         | 386%    29| 0.0%  38|    -    0
+crypto/crmf/crmf_asn.c                         | 382%    28| 0.0%  37|    -    0
 crypto/crmf/crmf_err.c                         |25.0%     4| 0.0%   1|    -    0
-crypto/crmf/crmf_lib.c                         |24.1%   187| 0.0%  22|    -    0
+crypto/crmf/crmf_lib.c                         |28.5%   137| 0.0%  19|    -    0
 crypto/crmf/crmf_local.h                       |    -     0|    -   0|    -    0
@@ -421,3 +421,3 @@
 crypto/encode_decode/encoder_err.c             |    -     0|    -   0|    -    0
-crypto/encode_decode/encoder_lib.c             | 8.5%   283| 0.0%  22|    -    0
+crypto/encode_decode/encoder_lib.c             | 9.9%   212| 0.0%  19|    -    0
 crypto/encode_decode/encoder_local.h           | 550%     2| 0.0%  11|    -    0
@@ -455,3 +455,3 @@
 crypto/err/err_prn.c                           | 7.8%    90| 0.0%   7|    -    0
-crypto/err/err_save.c                          | 5.9%    68| 0.0%   4|    -    0
+crypto/err/err_save.c                          | 6.0%    67| 0.0%   4|    -    0
 crypto/ess/ess_asn1.c                          | 333%     9| 0.0%  13|    -    0
@@ -498,3 +498,3 @@
 crypto/evp/evp_err.c                           |25.0%     4| 0.0%   1|    -    0
-crypto/evp/evp_fetch.c                         |12.9%   224| 0.0%  29|    -    0
+crypto/evp/evp_fetch.c                         |13.2%   219| 0.0%  29|    -    0
 crypto/evp/evp_key.c                           | 8.2%    61| 0.0%   3|    -    0
@@ -507,3 +507,3 @@
 crypto/evp/exchange.c                          | 9.4%   235| 0.0%  20|    -    0
-crypto/evp/kdf_lib.c                           |29.6%    54| 0.0%  10|    -    0
+crypto/evp/kdf_lib.c                           |32.0%    50| 0.0%   9|    -    0
 crypto/evp/kdf_meth.c                          |12.9%   101| 0.0%  11|    -    0
@@ -617,3 +617,3 @@
 crypto/param_build_set.c                       |15.5%    58| 0.0%   9|    -    0
-crypto/params.c                                |11.1%   687| 0.0%  70|    -    0
+crypto/params.c                                |11.0%   688| 0.0%  70|    -    0
 crypto/params_dup.c                            | 7.3%   109| 0.0%   8|    -    0
@@ -625,3 +625,3 @@
 crypto/pem/pem_info.c                          | 5.9%    85| 0.0%   2|    -    0
-crypto/pem/pem_lib.c                           | 5.9%   441| 0.0%  22|    -    0
+crypto/pem/pem_lib.c                           | 5.5%   435| 0.0%  20|    -    0
 crypto/pem/pem_oth.c                           | 8.3%    12| 0.0%   1|    -    0
@@ -659,3 +659,3 @@
 crypto/property/defn_cache.c                   |34.6%    52| 0.0%  16|    -    0
-crypto/property/property.c                     |21.9%   333| 0.0%  72|    -    0
+crypto/property/property.c                     |22.2%   329| 0.0%  72|    -    0
 crypto/property/property_err.c                 |25.0%     4| 0.0%   1|    -    0
@@ -667,3 +667,3 @@
 crypto/provider_conf.c                         | 9.9%   162| 0.0%  16|    -    0
-crypto/provider_core.c                         |13.7%   761| 0.0%  93|    -    0
+crypto/provider_core.c                         |13.8%   746| 0.0%  93|    -    0
 crypto/provider_local.h                        | 600%     1| 0.0%   6|    -    0
@@ -693,3 +693,3 @@
 crypto/rsa/rsa_acvp_test_params.c              | 6.5%    77| 0.0%   5|    -    0
-crypto/rsa/rsa_ameth.c                         |20.3%   177| 0.0%  22|    -    0
+crypto/rsa/rsa_ameth.c                         |20.5%   176| 0.0%  22|    -    0
 crypto/rsa/rsa_asn1.c                          |69.7%    33| 0.0%  15|    -    0
@@ -758,3 +758,3 @@
 crypto/threads_lib.c                           |    -     0|    -   0|    -    0
-crypto/threads_pthread.c                       |18.5%   195| 0.0%  35|    -    0
+crypto/threads_pthread.c                       |19.0%   189| 0.0%  35|    -    0
 crypto/time.c                                  |20.0%     5| 0.0%   1|    -    0
@@ -794,3 +794,3 @@
 crypto/x509/t_req.c                            | 6.4%    47| 0.0%   1|    -    0
-crypto/x509/t_x509.c                           | 7.3%   191| 0.0%  11|    -    0
+crypto/x509/t_x509.c                           | 7.3%   192| 0.0%  11|    -    0
 crypto/x509/v3_aaa.c                           |75.0%    24| 0.0%   6|    -    0
@@ -810,3 +810,3 @@
 crypto/x509/v3_cpols.c                         |50.7%    71| 0.0%  14|    -    0
-crypto/x509/v3_crld.c                          |60.9%    69| 0.0%  13|    -    0
+crypto/x509/v3_crld.c                          | 103%    32| 0.0%   9|    -    0
 crypto/x509/v3_enum.c                          |    -     0|    -   0|    -    0
@@ -831,3 +831,3 @@
 crypto/x509/v3_prn.c                           | 6.5%    77| 0.0%   4|    -    0
-crypto/x509/v3_purp.c                          |13.4%   388| 0.0%  41|    -    0
+crypto/x509/v3_purp.c                          |15.3%   333| 0.0%  36|    -    0
 crypto/x509/v3_rolespec.c                      |50.0%    24| 0.0%   4|    -    0
@@ -847,3 +847,3 @@
 crypto/x509/x509_att.c                         |18.8%   128| 0.0%  20|    -    0
-crypto/x509/x509_cmp.c                         |19.4%   165| 0.0%  23|    -    0
+crypto/x509/x509_cmp.c                         |19.5%   164| 0.0%  23|    -    0
 crypto/x509/x509_d2.c                          |42.9%    21| 0.0%   3|    -    0
@@ -853,3 +853,3 @@
 crypto/x509/x509_local.h                       | 533%     3| 0.0%  12|    -    0
-crypto/x509/x509_lu.c                          |27.2%   294| 0.0%  45|    -    0
+crypto/x509/x509_lu.c                          |27.4%   292| 0.0%  44|    -    0
 crypto/x509/x509_meth.c                        |    -     0|    -   0|    -    0
@@ -863,3 +863,3 @@
 crypto/x509/x509_vfy.c                         |10.8%  1181| 0.0%  95|    -    0
-crypto/x509/x509_vpm.c                         |29.1%   165| 0.0%  32|    -    0
+crypto/x509/x509_vpm.c                         |28.8%   163| 0.0%  31|    -    0
 crypto/x509/x509aset.c                         |    -     0|    -   0|    -    0
@@ -897,5 +897,5 @@
 include/internal/qlog_events.h                 | 0.0%     7|    -   0|    -    0
-include/internal/quic_demux.h                  | 367%     3| 0.0%   8|    -    0
-include/internal/quic_reactor.h                |20.0%     5| 0.0%   1|    -    0
-include/internal/quic_stream_map.h             |25.5%    47| 0.0%  12|    -    0
+include/internal/quic_demux.h                  | 333%     3| 0.0%   9|    -    0
+include/internal/quic_reactor.h                |16.7%     6| 0.0%   1|    -    0
+include/internal/quic_stream_map.h             |26.1%    46| 0.0%  12|    -    0
 include/internal/quic_types.h                  |25.0%    16| 0.0%   4|    -    0
@@ -906,5 +906,6 @@
 include/internal/ring_buf.h                    | 9.2%   119| 0.0%  11|    -    0
+include/internal/rio_notifier.h                |50.0%     2| 0.0%   1|    -    0
 include/internal/time.h                        |37.5%    64| 0.0%  24|    -    0
 include/internal/to_hex.h                      |33.3%     6| 0.0%   2|    -    0
-include/internal/uint_set.h                    |1300%     1| 0.0%  12|    -    0
+include/internal/uint_set.h                    |1300%     1| 0.0%  13|    -    0
 include/internal/unicode.h                     |50.0%     4| 0.0%   2|    -    0
@@ -913,3 +914,2 @@
 include/openssl/bio.h                          | 400%     1| 0.0%   4|    -    0
-include/openssl/byteorder.h                    |25.0%    48| 0.0%  12|    -    0
 include/openssl/cmp.h                          | 380%     5| 0.0%  17|    -    0
@@ -936,4 +936,4 @@
 include/openssl/x509_vfy.h                     | 950%     2| 0.0%   9|    -    0
-include/openssl/x509v3.h                       | 400%    21| 0.0%  59|    -    0
-providers/baseprov.c                           | 9.1%    55| 0.0%   5|    -    0
+include/openssl/x509v3.h                       | 420%    20| 0.0%  55|    -    0
+providers/baseprov.c                           | 9.3%    54| 0.0%   5|    -    0
 providers/common/bio_prov.c                    |21.9%    96| 0.0%  15|    -    0
@@ -948,3 +948,3 @@
 providers/common/include/prov/providercommon.h |50.0%     2| 0.0%   1|    -    0
-providers/common/provider_ctx.c                |40.0%    30| 0.0%   9|    -    0
+providers/common/provider_ctx.c                |30.8%    26| 0.0%   8|    -    0
 providers/common/provider_err.c                |25.0%     4| 0.0%   1|    -    0
@@ -955,6 +955,6 @@
 providers/common/securitycheck_fips.c          |17.1%    35| 0.0%   6|    -    0
-providers/defltprov.c                          | 6.8%    73| 0.0%   5|    -    0
+providers/defltprov.c                          | 6.9%    72| 0.0%   5|    -    0
 providers/fips/fips_entry.c                    |50.0%     2| 0.0%   1|    -    0
 providers/fips/fipsindicator.c                 |22.0%    41| 0.0%   9|    -    0
-providers/fips/fipsprov.c                      |14.0%   265| 0.0%  33|    -    0
+providers/fips/fipsprov.c                      |14.0%   264| 0.0%  33|    -    0
 providers/fips/include...s_indicator_params.inc| 100%    28| 0.0%  24|    -    0
@@ -973,3 +973,3 @@
 providers/implementati...rs/cipher_aes_gcm_hw.c|21.4%    14| 0.0%   3|    -    0
-providers/implementati...s/cipher_aes_gcm_siv.c|19.4%    93| 0.0%  17|    -    0
+providers/implementati...s/cipher_aes_gcm_siv.c|19.1%    94| 0.0%  17|    -    0
 providers/implementati...s/cipher_aes_gcm_siv.h|22.2%     9| 0.0%   2|    -    0
@@ -1036,3 +1036,3 @@
 providers/implementati...ciphers/ciphercommon.c| 8.1%   259| 0.0%  20|    -    0
-providers/implementati...s/ciphercommon_block.c|10.6%    47| 0.0%   5|    -    0
+providers/implementati...s/ciphercommon_block.c|11.1%    45| 0.0%   5|    -    0
 providers/implementati...ers/ciphercommon_ccm.c| 8.4%   179| 0.0%  14|    -    0
@@ -1064,6 +1064,6 @@
 providers/implementati...decode_spki2typespki.c| 9.4%    53| 0.0%   4|    -    0
-providers/implementati...ecode/encode_key2any.c|94.7%   471| 0.0% 374|    -    0
+providers/implementati...ecode/encode_key2any.c|94.6%   464| 0.0% 367|    -    0
 providers/implementati...code/encode_key2blob.c|46.4%    28| 0.0%   8|    -    0
 providers/implementati...decode/encode_key2ms.c|35.6%    59| 0.0%  11|    -    0
-providers/implementati...code/encode_key2text.c|17.3%   284| 0.0%  31|    -    0
+providers/implementati...code/encode_key2text.c|14.6%   355| 0.0%  34|    -    0
 providers/implementati...ode/endecoder_common.c|17.1%    41| 0.0%   7|    -    0
@@ -1082,3 +1082,3 @@
 providers/implementations/kdfs/pvkkdf.c        |19.7%    61| 0.0%   7|    -    0
-providers/implementations/kdfs/scrypt.c        | 9.1%   208| 0.0%  18|    -    0
+providers/implementations/kdfs/scrypt.c        | 9.2%   206| 0.0%  18|    -    0
 providers/implementations/kdfs/sshkdf.c        | 8.6%   151| 0.0%  12|    -    0
@@ -1093,3 +1093,3 @@
 providers/implementations/keymgmt/dsa_kmgmt.c  |10.2%   284| 0.0%  26|    -    0
-providers/implementations/keymgmt/ec_kmgmt.c   | 8.6%   524| 0.0%  40|    -    0
+providers/implementations/keymgmt/ec_kmgmt.c   | 8.5%   527| 0.0%  40|    -    0
 providers/implementations/keymgmt/ecx_kmgmt.c  |15.1%   358| 0.0%  50|    -    0
@@ -1105,3 +1105,3 @@
 providers/implementations/macs/siphash_prov.c  |17.9%    78| 0.0%  14|    -    0
-providers/implementations/rands/drbg.c         | 8.5%   330| 0.0%  28|    -    0
+providers/implementations/rands/drbg.c         | 8.5%   331| 0.0%  28|    -    0
 providers/implementations/rands/drbg_ctr.c     | 8.7%   332| 0.0%  28|    -    0
@@ -1134,22 +1134,25 @@
 ssl/quic/qlog.c                                |13.5%   326| 0.0%  41|    -    0
-ssl/quic/qlog_event_helpers.c                  | 4.8%   291| 0.0%  14|    -    0
-ssl/quic/quic_ackm.c                           |15.7%   497| 0.0%  72|    -    0
+ssl/quic/qlog_event_helpers.c                  | 4.7%   296| 0.0%  14|    -    0
+ssl/quic/quic_ackm.c                           |15.4%   505| 0.0%  73|    -    0
 ssl/quic/quic_cfq.c                            |13.5%   170| 0.0%  23|    -    0
-ssl/quic/quic_channel.c                        | 9.2%  1300| 0.0% 108|    -    0
-ssl/quic/quic_demux.c                          |13.4%   142| 0.0%  16|    -    0
-ssl/quic/quic_engine.c                         |27.1%    48| 0.0%  13|    -    0
+ssl/quic/quic_channel.c                        | 9.2%  1365| 0.0% 112|    -    0
+ssl/quic/quic_demux.c                          |11.8%   152| 0.0%  17|    -    0
+ssl/quic/quic_engine.c                         |27.4%    62| 0.0%  16|    -    0
 ssl/quic/quic_fc.c                             |20.1%   164| 0.0%  28|    -    0
 ssl/quic/quic_fifd.c                           | 7.0%   128| 0.0%   9|    -    0
-ssl/quic/quic_impl.c                           |12.7%  1200| 0.0% 122|    -    0
-ssl/quic/quic_lcidm.c                          |28.0%   189| 0.0%  51|    -    0
-ssl/quic/quic_method.c                         | 100%     2| 0.0%   2|    -    0
-ssl/quic/quic_port.c                           |19.2%   193| 0.0%  33|    -    0
+ssl/quic/quic_impl.c                           |11.5%  1560| 0.0% 156|    -    0
+ssl/quic/quic_lcidm.c                          |27.2%   202| 0.0%  53|    -    0
+ssl/quic/quic_method.c                         | 100%     3| 0.0%   3|    -    0
+ssl/quic/quic_obj.c                            |12.7%    55| 0.0%   7|    -    0
+ssl/quic/quic_obj_local.h                      |35.7%    14| 0.0%   5|    -    0
+ssl/quic/quic_port.c                           |12.2%   484| 0.0%  56|    -    0
 ssl/quic/quic_rcidm.c                          |21.2%   179| 0.0%  37|    -    0
-ssl/quic/quic_reactor.c                        |19.8%    81| 0.0%  16|    -    0
-ssl/quic/quic_record_rx.c                      |13.4%   410| 0.0%  52|    -    0
-ssl/quic/quic_record_shared.c                  | 6.5%   153| 0.0%  10|    -    0
-ssl/quic/quic_record_tx.c                      |15.4%   345| 0.0%  45|    -    0
+ssl/quic/quic_reactor.c                        |16.2%   130| 0.0%  21|    -    0
+ssl/quic/quic_reactor_wait_ctx.c               |28.6%    35| 0.0%  10|    -    0
+ssl/quic/quic_record_rx.c                      |12.9%   410| 0.0%  52|    -    0
+ssl/quic/quic_record_shared.c                  | 6.3%   158| 0.0%  10|    -    0
+ssl/quic/quic_record_tx.c                      |14.9%   355| 0.0%  46|    -    0
 ssl/quic/quic_record_util.c                    |15.9%    82| 0.0%  13|    -    0
 ssl/quic/quic_rstream.c                        |12.1%   116| 0.0%  14|    -    0
-ssl/quic/quic_rx_depack.c                      | 6.2%   437| 0.0%  26|    -    0
+ssl/quic/quic_rx_depack.c                      | 6.1%   442| 0.0%  26|    -    0
 ssl/quic/quic_sf_list.c                        | 6.5%   169| 0.0%  11|    -    0
@@ -1160,12 +1163,12 @@
 ssl/quic/quic_stream_map.c                     |17.7%   316| 0.0%  50|    -    0
-ssl/quic/quic_thread_assist.c                  |10.5%    57| 0.0%   6|    -    0
-ssl/quic/quic_tls.c                            |16.2%   216| 0.0%  23|    -    0
-ssl/quic/quic_trace.c                          |21.4%   112| 0.0%   8|    -    0
+ssl/quic/quic_thread_assist.c                  |11.5%    52| 0.0%   6|    -    0
+ssl/quic/quic_tls.c                            |16.1%   218| 0.0%  23|    -    0
+ssl/quic/quic_trace.c                          | 8.1%   297| 0.0%  22|    -    0
 ssl/quic/quic_tserver.c                        |17.5%   189| 0.0%  29|    -    0
-ssl/quic/quic_txp.c                            | 6.4%   951| 0.0%  60|    -    0
+ssl/quic/quic_txp.c                            | 6.8%   969| 0.0%  65|    -    0
 ssl/quic/quic_txpim.c                          |14.5%   110| 0.0%  16|    -    0
 ssl/quic/quic_types.c                          |20.0%     5| 0.0%   1|    -    0
-ssl/quic/quic_wire.c                           |12.5%   495| 0.0%  62|    -    0
-ssl/quic/quic_wire_pkt.c                       | 3.9%   411| 0.0%  16|    -    0
-ssl/quic/uint_set.c                            |10.0%   100| 0.0%  10|    -    0
+ssl/quic/quic_wire.c                           |12.5%   496| 0.0%  62|    -    0
+ssl/quic/quic_wire_pkt.c                       | 3.8%   419| 0.0%  16|    -    0
+ssl/quic/uint_set.c                            | 9.6%   104| 0.0%  10|    -    0
 ssl/record/methods/dtls_meth.c                 | 6.2%   241| 0.0%  14|    -    0
@@ -1175,3 +1178,3 @@
 ssl/record/methods/tls1_meth.c                 | 2.2%   228| 0.0%   5|    -    0
-ssl/record/methods/tls_common.c                | 6.8%   791| 0.0%  54|    -    0
+ssl/record/methods/tls_common.c                | 6.8%   790| 0.0%  54|    -    0
 ssl/record/methods/tls_multib.c                |30.8%    13| 0.0%   4|    -    0
@@ -1182,6 +1185,8 @@
 ssl/record/record.h                            | 100%     4| 0.0%   4|    -    0
-ssl/rio/poll_immediate.c                       | 3.3%    30| 0.0%   1|    -    0
+ssl/rio/poll_builder.c                         |20.0%    30| 0.0%   4|    -    0
+ssl/rio/poll_immediate.c                       | 5.9%   119| 0.0%   7|    -    0
+ssl/rio/rio_notifier.c                         |18.5%    27| 0.0%   5|    -    0
 ssl/s3_enc.c                                   | 6.4%   188| 0.0%  12|    -    0
 ssl/s3_lib.c                                   | 5.7%   757| 0.0%  40|    -    0
-ssl/s3_msg.c                                   | 4.3%    70| 0.0%   3|    -    0
+ssl/s3_msg.c                                   | 4.4%    68| 0.0%   3|    -    0
 ssl/ssl_asn1.c                                 | 6.0%   166| 0.0%  10|    -    0
@@ -1194,3 +1199,3 @@
 ssl/ssl_init.c                                 |31.8%    22| 0.0%   5|    -    0
-ssl/ssl_lib.c                                  |15.9%  2518| 0.0% 284|    -    0
+ssl/ssl_lib.c                                  |16.1%  2592| 0.0% 304|    -    0
 ssl/ssl_local.h                                |77.1%    35| 0.0%  22|    -    0
@@ -1210,6 +1215,6 @@
 ssl/statem/statem_lib.c                        | 4.8%   959| 0.0%  44|    -    0
-ssl/statem/statem_srvr.c                       | 3.8%  1518| 0.0%  49|    -    0
+ssl/statem/statem_srvr.c                       | 3.8%  1516| 0.0%  49|    -    0
 ssl/t1_enc.c                                   | 3.8%   235| 0.0%   9|    -    0
 ssl/t1_lib.c                                   | 5.7%  1603| 0.0%  89|    -    0
-ssl/t1_trce.c                                  | 6.8%   340| 0.0%  15|    -    0
+ssl/t1_trce.c                                  | 6.0%   386| 0.0%  16|    -    0
 ssl/tls13_enc.c                                | 4.9%   327| 0.0%  16|    -    0
@@ -1218,2 +1223,2 @@
 ================================================================================
-                                         Total:|12.8%  146k| 0.0% 14k|    -    0
+                                         Total:|12.7%  147k| 0.0% 14k|    -    0

@nhorman
Copy link
Contributor

nhorman commented Feb 3, 2025

ok, this is getting a bit strange.

I've run lcov locally using the ubuntu 24.04 container (to make generation on par with what CI is doing). Results linked below
https://drive.google.com/file/d/1xLUTIEFl4BoIPqurnGQmr9FZjZ8vVddr/view?usp=drive_link

In the comparison, quic-server is doing better than its counter part on the master branch overall (81.1% on quic-server vs 78.8% on master), and overall the coverage report shows that the quic-server branch has 66.6% coverage vs 66.3% on master

However, neither of those values approaches what coveralls is reporting in the most recent master branch (67.752%), so to go by those values we're lagging what coveralls reports as the most recent coverage number, but I would have expected the master branch to match that value, not be .4% lower). So I'm left wondering what to do here, or how to track down additional testing needs as it seems lcov has some reliability issues.

@Sashan
Copy link

Sashan commented Feb 4, 2025

I took a look at the details. Many missed lines can be accounted for error handling. I wonder if it would make sense to annotate error handling branches in code (search for LCOV_EXCL_) This way we can make such reports more useful. In my opinion missing coverage for regular case is worse then lines not executed because tests does not hit the error case. This will help us to effectively find any missing test cases for regular code paths. Then we can get back to error handling and think of some strategy how to test it. However I'm sceptical here. It's too much effort for little gain.

@nhorman
Copy link
Contributor

nhorman commented Feb 4, 2025

I think thats a good idea. I also think it would be worthwhile to investigate the possibility of finding a unit test framework that includes mocking so that we more directly cover those error paths when warranted. I've been experimenting with CMock, but so far it fails to understand lots of our macro usage

@nhorman
Copy link
Contributor

nhorman commented Feb 7, 2025

I ran coverage using the updated workflow @quarckster created, it shows different results:
https://coveralls.io/builds/72120393

That puts us about 0.1% ahead of the master branch.

The obvious big gap in quic based on the above run is in quic_trace.c, as we don't run any quic test with ssl tracing enabled. We could increase the coverage here fairly easily by enabling ssl tracing in the quic_multistream_test

@github-project-automation github-project-automation bot moved this from Todo to Done in Development Board Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
QUIC R2 Chosen for QUIC R2 feature package QUIC
Projects
Status: Done
Development

No branches or pull requests

6 participants