Bug 27429 - [dwz, testsuite] mode 4 in checksum_ref_die not exercised in test-suite
Summary: [dwz, testsuite] mode 4 in checksum_ref_die not exercised in test-suite
Status: RESOLVED FIXED
Alias: None
Product: dwz
Classification: Unclassified
Component: default (show other bugs)
Version: unspecified
: P2 enhancement
Target Milestone: ---
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-16 22:13 UTC by Tom de Vries
Modified: 2021-03-08 13:26 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom de Vries 2021-02-16 22:13:26 UTC
The function checksum_ref_die has four different modes.

I added mode detection at the start of the function, to see which would be triggered by the testsuite.

Modes 1, 2 and 3 are all triggered.

But not mode 4, also not in the external test suite.

This:
...
@@ -4306,7 +4321,7 @@ checksum_ref_die (dw_cu_ref cu, dw_die_ref top_die, dw_die_ref die,
                    }                                                                                 
                }                                                                                     
            }                                                                                         
-         if (minidx != -1U)                                                                          
+         if (false && minidx != -1U)                                                                 
            {                                                                                         
              idx = 0;                                                                                
              checksum_ref_die (die_cu (arr[minidx]), arr[minidx],                                    
...
forces to use mode 4 instead of mode 3.

No issues found in test-suite.

This slows down the external testsuite.  These tests pass:
...
PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/kernel-32.sh
PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/pr24204.sh
PASS: /home/vries/dwz/dwz.git/testsuite/dwz-external.tests/pr24195.sh
...
but kernel.sh is either hanging or very slow.  I presume the same will happen with kernel-multifile.sh.