7789714560
There's an ordering issue with hotifying and folding when we have multiple foldable results with children. This was hard to notice since most of the recursive scripts have unique results, but it _is_ an issue for perf.py/perfbd.py, which rely on result folding to merge samples. The fix is to fold _before_ hotifying. We could fold multiple times to avoid changing the behavior of the result scripts, but instead I've just moved the folding in the table renderer up into the relevant main functions. This means 1. we only fold once, and 2. folding affects outputted csv/json files. I'm a bit on the fence about this behavior change, but it is a bit more consistent with how -r/--hot, -z/--depth, etc, affect both table and csv/json results consistently. Maybe we should move towards the table render always reflecting the csv/json results? Most csv/json usage is with -q/--quiet anyways... --- This does create a new risk in that the table renderer can hide results if they aren't folded first. To hopefully avoid this I've added an assert in the table renderer if it notices results being hidden.