caliper icon indicating copy to clipboard operation
caliper copied to clipboard

Unit tests for caliper-core: Improve Coverage

Open davidkel opened this issue 1 year ago • 4 comments

current report shows

--------------------------------------------------------------|----------|----------|----------|----------|----------------|
File                                                          |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
--------------------------------------------------------------|----------|----------|----------|----------|----------------|
All files                                                     |     48.7 |    39.91 |    41.18 |    48.74 |                |
 caliper-core                                                 |      100 |      100 |      100 |      100 |                |
  index.js                                                    |      100 |      100 |      100 |      100 |                |
 caliper-core/lib/common/config                               |     80.7 |    65.52 |      100 |     80.7 |                |
  Config.js                                                   |    76.09 |    58.33 |      100 |    76.09 |... 267,268,290 |
  config-util.js                                              |      100 |      100 |      100 |      100 |                |
 caliper-core/lib/common/core                                 |    82.81 |       90 |    71.88 |    81.77 |                |
  connector-base.js                                           |    86.54 |    83.33 |    55.56 |    86.54 |... 3,64,66,166 |
  connector-interface.js                                      |    18.18 |      100 |        0 |    18.18 |... 8,86,96,105 |
  transaction-statistics-collector.js                         |    96.15 |    93.75 |    98.21 |     95.7 |360,387,410,415 |
  transaction-status.js                                       |       48 |      100 |    40.91 |       48 |... 194,203,211 |
 caliper-core/lib/common/messages                             |    55.63 |     9.62 |    22.45 |    55.63 |                |
  assignIdMessage.js                                          |       60 |        0 |        0 |       60 |          33,41 |
  assignedMessage.js                                          |       75 |        0 |        0 |       75 |             32 |
  connectedMessage.js                                         |       75 |        0 |        0 |       75 |             32 |
  exitMessage.js                                              |       80 |        0 |        0 |       80 |             32 |
  initializeMessage.js                                        |       80 |        0 |        0 |       80 |             32 |
  message.js                                                  |    42.11 |     12.5 |    11.11 |    42.11 |... 140,141,144 |
  parse.js                                                    |    40.54 |        0 |        0 |    40.54 |... 72,74,76,78 |
  prepareMessage.js                                           |    21.43 |        0 |        0 |    21.43 |... ,98,106,114 |
  preparedMessage.js                                          |       75 |        0 |        0 |       75 |             32 |
  readyMessage.js                                             |       75 |        0 |        0 |       75 |             32 |
  registerMessage.js                                          |       80 |        0 |        0 |       80 |             32 |
  testMessage.js                                              |    68.42 |      100 |       60 |    68.42 |... 106,122,138 |
  testResultMessage.js                                        |       75 |        0 |        0 |       75 |             33 |
  txResetMessage.js                                           |       75 |        0 |        0 |       75 |             33 |
  txUpdateMessage.js                                          |       60 |        0 |        0 |       60 |          33,35 |
  workerMetricsMessage.js                                     |      100 |      100 |      100 |      100 |                |
 caliper-core/lib/common/messengers                           |    33.33 |      100 |     12.5 |    33.33 |                |
  messenger-interface.js                                      |    33.33 |      100 |     12.5 |    33.33 |... 81,90,91,92 |
 caliper-core/lib/common/messengers/mqtt                      |        0 |        0 |        0 |        0 |                |
  factory.js                                                  |        0 |      100 |        0 |        0 |... 28,37,40,41 |
  mqtt-messenger.js                                           |        0 |        0 |        0 |        0 |... 154,157,162 |
 caliper-core/lib/common/messengers/process                   |     37.5 |        0 |       25 |     37.5 |                |
  factory.js                                                  |      100 |      100 |      100 |      100 |                |
  process-messenger.js                                        |       25 |        0 |    14.29 |       25 |... 88,89,90,91 |
 caliper-core/lib/common/prometheus                           |    55.36 |    68.63 |       35 |    54.55 |                |
  prometheus-query-client.js                                  |    16.33 |        0 |        0 |    16.33 |... 156,159,169 |
  prometheus-query-helper.js                                  |    85.71 |    79.55 |      100 |    85.25 |... 163,169,170 |
 caliper-core/lib/common/utils                                |    63.83 |    43.81 |    48.15 |    63.83 |                |
  benchmark-validator.js                                      |       15 |        0 |        0 |       15 |... 63,72,81,90 |
  constants.js                                                |      100 |      100 |      100 |      100 |                |
  log-formats.js                                              |     96.3 |    88.89 |      100 |     96.3 |             56 |
  logging-util.js                                             |    67.18 |    48.72 |    83.33 |    67.18 |... 395,396,397 |
  version.js                                                  |    22.22 |      100 |        0 |    22.22 |... 55,64,73,81 |
 caliper-core/lib/manager                                     |     7.06 |        0 |        0 |     7.06 |                |
  caliper-engine.js                                           |     7.06 |        0 |        0 |     7.06 |... 181,188,189 |
 caliper-core/lib/manager/charts                              |    98.59 |    86.96 |      100 |    98.59 |                |
  chart-builder.js                                            |    98.59 |    86.96 |      100 |    98.59 |            210 |
 caliper-core/lib/manager/monitors                            |    53.79 |    35.25 |    39.29 |    53.96 |                |
  monitor-docker.js                                           |    68.07 |    33.85 |    61.11 |     68.1 |... 411,412,415 |
  monitor-interface.js                                        |       50 |      100 |       20 |       50 |    38,45,52,60 |
  monitor-process.js                                          |     6.72 |        0 |        0 |     6.78 |... 305,315,326 |
  monitor-prometheus.js                                       |    91.78 |       65 |      100 |    91.78 |... 176,177,181 |
  monitor-utilities.js                                        |     62.5 |    42.86 |       40 |    63.64 |... ,65,114,134 |
 caliper-core/lib/manager/orchestrators                       |    16.79 |     1.28 |     9.52 |    16.88 |                |
  monitor-orchestrator.js                                     |    20.37 |        0 |        0 |    20.37 |... 142,143,155 |
  round-orchestrator.js                                       |     6.31 |        0 |        0 |     6.36 |... 251,252,254 |
  worker-orchestrator.js                                      |    20.94 |     2.86 |    14.29 |    21.03 |... 549,551,557 |
 caliper-core/lib/manager/report                              |    31.41 |    18.42 |    22.73 |    31.41 |                |
  report-builder.js                                           |    12.12 |        0 |     8.33 |    12.12 |... 372,373,376 |
  report.js                                                   |    52.17 |    63.64 |       40 |    52.17 |... 226,227,237 |
 caliper-core/lib/manager/test-observers                      |     4.55 |        0 |        0 |     4.65 |                |
  default-observer.js                                         |        0 |        0 |        0 |        0 |... 252,269,272 |
  null-observer.js                                            |        0 |      100 |        0 |        0 |... 71,79,88,91 |
  observer-interface.js                                       |        0 |      100 |        0 |        0 |... 71,79,87,92 |
  test-observer.js                                            |    31.58 |        0 |        0 |    31.58 |... 69,77,85,93 |
 caliper-core/lib/worker                                      |     47.4 |    25.49 |    31.25 |    47.89 |                |
  caliper-worker.js                                           |       82 |    46.43 |    66.67 |    83.67 |... 165,203,204 |
  worker-message-handler.js                                   |     9.78 |        0 |        0 |     9.78 |... 256,258,265 |
 caliper-core/lib/worker/rate-control                         |    46.96 |    45.93 |    46.88 |    47.77 |                |
  compositeRate.js                                            |        0 |        0 |        0 |        0 |... 251,264,267 |
  fixedFeedbackRate.js                                        |    63.16 |    58.33 |       75 |    63.16 |... 101,102,103 |
  fixedLoad.js                                                |       90 |    83.33 |       75 |       90 |       72,73,86 |
  fixedRate.js                                                |      100 |    83.33 |       75 |      100 |             41 |
  linearRate.js                                               |      100 |      100 |    83.33 |      100 |                |
  maxRate.js                                                  |    98.11 |    86.36 |    85.71 |    98.11 |            182 |
  noRate.js                                                   |      100 |      100 |       75 |      100 |                |
  rateControl.js                                              |    92.86 |       50 |      100 |    92.86 |             54 |
  rateInterface.js                                            |    81.82 |      100 |    33.33 |    81.82 |          44,52 |
  recordRate.js                                               |    44.62 |    31.25 |     37.5 |    45.31 |... 158,161,163 |
  replayRate.js                                               |        0 |        0 |        0 |        0 |... 143,163,166 |
 caliper-core/lib/worker/tx-observers                         |    68.82 |    71.43 |    54.35 |    69.23 |                |
  internal-tx-observer.js                                     |    26.09 |        0 |        0 |    27.27 |... 70,71,75,76 |
  logging-tx-observer.js                                      |        0 |        0 |        0 |        0 |... 62,65,78,81 |
  prometheus-manager-tx-observer.js                           |      100 |    94.59 |      100 |      100 |        156,167 |
  prometheus-push-tx-observer.js                              |    81.67 |    70.59 |    77.78 |    83.05 |... ,74,113,114 |
  prometheus-tx-observer.js                                   |    77.78 |       75 |    85.71 |    77.78 |... 107,109,110 |
  tx-observer-dispatch.js                                     |    19.23 |        0 |        0 |    19.23 |... 102,105,106 |
  tx-observer-interface.js                                    |    82.61 |       50 |    42.86 |    82.61 |   56,84,92,100 |
 caliper-core/lib/worker/workload                             |    17.39 |      100 |        0 |    17.39 |                |
  workloadModuleBase.js                                       |    15.79 |      100 |        0 |    15.79 |... 84,85,86,95 |
  workloadModuleInterface.js                                  |       25 |      100 |        0 |       25 |       32,40,48 |
 caliper-core/lib/worker/workload/declarative                 |    33.33 |        0 |    18.18 |    33.33 |                |
  contract-function-parameter.js                              |      100 |      100 |      100 |      100 |                |
  contract-function.js                                        |    22.22 |      100 |        0 |    22.22 |... 38,39,40,42 |
  contract.js                                                 |     37.5 |      100 |        0 |     37.5 | 28,29,30,32,39 |
  declarative-workload-module-base.js                         |    27.27 |        0 |        0 |    27.27 |... 65,74,82,91 |
 caliper-core/lib/worker/workload/declarative/value-providers |    99.21 |      100 |      100 |    99.21 |                |
  formatted-string-value-provider.js                          |      100 |      100 |      100 |      100 |                |
  list-element-value-provider.js                              |      100 |      100 |      100 |      100 |                |
  parameter-reference-value-provider.js                       |      100 |      100 |      100 |      100 |                |
  uniform-random-list-item-value-provider.js                  |      100 |      100 |      100 |      100 |                |
  uniform-random-value-provider.js                            |      100 |      100 |      100 |      100 |                |
  value-provider-factory.js                                   |      100 |      100 |      100 |      100 |                |
  value-provider-interface.js                                 |    85.71 |      100 |      100 |    85.71 |             45 |
  variable-reference-value-provider.js                        |      100 |      100 |      100 |      100 |                |
--------------------------------------------------------------|----------|----------|----------|----------|----------------|

Which highlights areas to focus on. 100% may not be achievable but we should strive to get to between 90-100 % for each file

davidkel avatar Apr 24 '24 08:04 davidkel

New tests should not assume that the code is actually correct. It's expected that if the tests finds bugs or relevant situations where unexpected behaviour occurs then the code should also be fixed.

davidkel avatar May 06 '24 09:05 davidkel

@davidkel I've been working on adding test suites for packages/caliper-core/lib/worker/rate-control/compositeRate.js. However, I've been facing some technical difficulties related to testing. I'll open a PR for it soon and link the errors too in details.

Sweetdevil144 avatar May 11 '24 18:05 Sweetdevil144

@davidkel I am working on rate-control/replayRate.js

rahat2134 avatar May 13 '24 13:05 rahat2134

Some progress made now

--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------
File                                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                                                                                                         
--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------
All files                                   |   54.76 |    44.32 |   49.65 |   55.02 |                                                                                                                           
 caliper-core                               |     100 |      100 |     100 |     100 |                                                                                                                           
  index.js                                  |     100 |      100 |     100 |     100 |                                                                                                                           
 caliper-core/lib/common/config             |    80.7 |    65.51 |     100 |    80.7 |                                                                                                                           
  Config.js                                 |   76.08 |    58.33 |     100 |   76.08 | 184,208,212,247-248,253,260-261,267-268,290                                                                               
  config-util.js                            |     100 |      100 |     100 |     100 |                                                                                                                           
 caliper-core/lib/common/core               |   82.47 |       90 |   71.87 |   81.76 |                                                                                                                           
  connector-base.js                         |   85.18 |    83.33 |   55.55 |   86.53 | 43-66,166                                                                                                                 
  connector-interface.js                    |   18.18 |      100 |       0 |   18.18 | 31-105                                                                                                                    
  transaction-statistics-collector.js       |   96.15 |    93.75 |   98.21 |   95.69 | 360,387,410,415                                                                                                           
  transaction-status.js                     |      48 |      100 |    40.9 |      48 | 44-60,119,135-160,176-211                                                                                                 
 caliper-core/lib/common/messages           |    68.3 |       50 |   51.02 |    68.3 |                                                                                                                           
  assignIdMessage.js                        |      60 |        0 |       0 |      60 | 33-41                                                                                                                     
  assignedMessage.js                        |     100 |      100 |     100 |     100 |                                                                                                                           
  connectedMessage.js                       |     100 |      100 |     100 |     100 |                                                                                                                           
  exitMessage.js                            |      80 |        0 |       0 |      80 | 32                                                                                                                        
  initializeMessage.js                      |      80 |        0 |       0 |      80 | 32                                                                                                                        
  message.js                                |   94.73 |      100 |   88.88 |   94.73 | 107                                                                                                                       
  parse.js                                  |   40.54 |        0 |       0 |   40.54 | 39-78                                                                                                                     
  prepareMessage.js                         |   21.42 |        0 |       0 |   21.42 | 33-114                                                                                                                    
  preparedMessage.js                        |     100 |      100 |     100 |     100 |                                                                                                                           
  readyMessage.js                           |     100 |      100 |     100 |     100 |                                                                                                                           
  registerMessage.js                        |      80 |        0 |       0 |      80 | 32                                                                                                                        
  testMessage.js                            |   68.42 |      100 |      60 |   68.42 | 42,82-90,106,122,138                                                                                                      
  testResultMessage.js                      |     100 |      100 |     100 |     100 |                                                                                                                           
  txResetMessage.js                         |     100 |      100 |     100 |     100 |                                                                                                                           
  txUpdateMessage.js                        |     100 |      100 |     100 |     100 |                                                                                                                           
  workerMetricsMessage.js                   |     100 |      100 |     100 |     100 |                                                                                                                           
 caliper-core/lib/common/messengers         |   33.33 |      100 |    12.5 |   33.33 |                                                                                                                           
  messenger-interface.js                    |   33.33 |      100 |    12.5 |   33.33 | 40-92                                                                                                                     
 caliper-core/lib/common/messengers/mqtt    |       0 |        0 |       0 |       0 |                                                                                                                           
  factory.js                                |       0 |      100 |       0 |       0 | 17-41                                                                                                                     
  mqtt-messenger.js                         |       0 |        0 |       0 |       0 | 17-162                                                                                                                    
 caliper-core/lib/common/messengers/process |    37.5 |        0 |      25 |    37.5 |                                                                                                                           
  factory.js                                |     100 |      100 |     100 |     100 |                                                                                                                           
  process-messenger.js                      |      25 |        0 |   14.28 |      25 | 49-91                                                                                                                     
 caliper-core/lib/common/prometheus         |   55.35 |    68.62 |      35 |   54.54 |                                                                                                                           
  prometheus-query-client.js                |   16.32 |        0 |       0 |   16.32 | 37-169                                                                                                                    
  prometheus-query-helper.js                |   85.71 |    79.54 |     100 |   85.24 | 109-112,134-135,141,163,169-170                                                                                           
 caliper-core/lib/common/utils              |   49.34 |    36.44 |    40.9 |   49.47 |                                                                                                                           
  benchmark-validator.js                    |      35 |     5.55 |      40 |      35 | 45-90                                                                                                                     
  caliper-utils.js                          |   32.12 |    26.71 |   30.76 |   32.29 | ...46,250,262-408,427-428,446-486,509-510,514-515,519-520,524-525,529-530,534-538,542-546,550-554,558-562,566-570,574,578 
  constants.js                              |     100 |      100 |     100 |     100 |                                                                                                                           
  log-formats.js                            |   96.29 |    88.88 |     100 |   96.29 | 56                                                                                                                        
  logging-util.js                           |    68.7 |    53.84 |   83.33 |    68.7 | 61-95,138-144,209,260,287,295,318-347,353,377-381,393-397                                                                 
  version.js                                |   22.22 |      100 |       0 |   22.22 | 28-81                                                                                                                     
 caliper-core/lib/manager                   |   65.11 |    58.33 |     100 |   65.11 |                                                                                                                           
  caliper-engine.js                         |   65.11 |    58.33 |     100 |   65.11 | 54-57,60-63,69-72,79,99,108,115-118,127,134-137,146,158-162,167                                                           
 caliper-core/lib/manager/charts            |   98.59 |    86.95 |     100 |   98.59 |                                                                                                                           
  chart-builder.js                          |   98.59 |    86.95 |     100 |   98.59 | 210                                                                                                                       
 caliper-core/lib/manager/monitors          |   53.36 |    35.25 |   39.28 |   53.95 |                                                                                                                           
  monitor-docker.js                         |   67.83 |    33.84 |   61.11 |   68.09 | 72-78,83,100,114,118,121-124,137,165,181,184-185,196,201,213-219,229-277,351-354,401-415                                  
  monitor-interface.js                      |      50 |      100 |      20 |      50 | 38-60                                                                                                                     
  monitor-process.js                        |     6.5 |        0 |       0 |    6.77 | 35-326                                                                                                                    
  monitor-prometheus.js                     |   91.78 |       65 |     100 |   91.78 | 50,57,175-181                                                                                                             
  monitor-utilities.js                      |    62.5 |    42.85 |      40 |   63.63 | 31-65,114,134                                                                                                             
 caliper-core/lib/manager/orchestrators     |   16.75 |     1.28 |    9.52 |   16.87 |                                                                                                                           
  monitor-orchestrator.js                   |   20.37 |        0 |       0 |   20.37 | 39-155                                                                                                                    
  round-orchestrator.js                     |     6.3 |        0 |       0 |    6.36 | 37-254                                                                                                                    
  worker-orchestrator.js                    |   20.85 |     2.85 |   14.28 |   21.03 | 91-401,440-502,519-557                                                                                                    
 caliper-core/lib/manager/report            |   30.45 |    18.42 |   22.72 |   31.41 |                                                                                                                           
  report-builder.js                         |   11.42 |        0 |    8.33 |   12.12 | 30-39,127-376                                                                                                             
  report.js                                 |   52.17 |    63.63 |      40 |   52.17 | 48-75,124-128,178-237                                                                                                     
 caliper-core/lib/manager/test-observers    |    4.51 |        0 |       0 |    4.65 |                                                                                                                           
  default-observer.js                       |       0 |        0 |       0 |       0 | 18-272                                                                                                                    
  null-observer.js                          |       0 |      100 |       0 |       0 | 18-91                                                                                                                     
  observer-interface.js                     |       0 |      100 |       0 |       0 | 17-92                                                                                                                     
  test-observer.js                          |   31.57 |        0 |       0 |   31.57 | 32-93                                                                                                                     
 caliper-core/lib/worker                    |   96.87 |    72.54 |   93.75 |   97.89 |                                                                                                                           
  caliper-worker.js                         |      97 |    67.85 |   86.66 |   98.97 | 62                                                                                                                        
  worker-message-handler.js                 |   96.73 |    78.26 |     100 |   96.73 | 187,213,238                                                                                                               
 caliper-core/lib/worker/rate-control       |   59.05 |    60.28 |   53.96 |   59.85 |                                                                                                                           
  compositeRate.js                          |       0 |        0 |       0 |       0 | 16-267                                                                                                                    
  fixedFeedbackRate.js                      |     100 |    95.83 |      75 |     100 | 49                                                                                                                        
  fixedLoad.js                              |      90 |    83.33 |      75 |      90 | 72-73,86                                                                                                                  
  fixedRate.js                              |     100 |    83.33 |      75 |     100 | 41                                                                                                                        
  linearRate.js                             |     100 |      100 |   83.33 |     100 |                                                                                                                           
  maxRate.js                                |   98.11 |    86.36 |   85.71 |   98.11 | 182                                                                                                                       
  noRate.js                                 |     100 |      100 |      75 |     100 |                                                                                                                           
  rateControl.js                            |   92.85 |       50 |     100 |   92.85 | 54                                                                                                                        
  rateInterface.js                          |   81.81 |      100 |   33.33 |   81.81 | 44-52                                                                                                                     
  recordRate.js                             |   95.83 |    86.36 |     100 |   95.65 | 163-164,169                                                                                                               
  replayRate.js                             |       0 |        0 |       0 |       0 | 17-166                                                                                                                    
 caliper-core/lib/worker/tx-observers       |   93.21 |    86.36 |   93.47 |    93.5 |                                                                                                                           
  internal-tx-observer.js                   |     100 |      100 |     100 |     100 |                                                                                                                           
  logging-tx-observer.js                    |     100 |    83.33 |     100 |     100 | 35                                                                                                                        
  prometheus-manager-tx-observer.js         |     100 |    94.59 |     100 |     100 | 156-167                                                                                                                   
  prometheus-push-tx-observer.js            |   81.66 |    70.58 |   77.77 |   83.05 | 67-74,113-114                                                                                                             
  prometheus-tx-observer.js                 |   92.06 |    96.87 |   85.71 |   92.06 | 106-111                                                                                                                   
  tx-observer-dispatch.js                   |   93.75 |      100 |     100 |   93.75 | 48-49                                                                                                                     
  tx-observer-interface.js                  |   96.55 |       60 |     100 |   96.55 | 100                                                                                                                       
 caliper-core/lib/worker/workload           |   17.39 |      100 |       0 |   17.39 |                                                                                                                           
  workloadModuleBase.js                     |   15.78 |      100 |       0 |   15.78 | 28-95                                                                                                                     
  workloadModuleInterface.js                |      25 |      100 |       0 |      25 | 32-48                                                                                                                     
--------------------------------------------|---------|----------|---------|---------|---------------------------------------------------------------------------------------------------------------------------

davidkel avatar Feb 18 '25 14:02 davidkel