From: Mike Bayer Date: Sun, 14 Jul 2019 15:43:29 +0000 (-0400) Subject: Add profile sort option to test suite X-Git-Tag: rel_1_4_0b1~798 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be9f433ae38d04a8a52d86df09b760dbbfc6cd3e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Add profile sort option to test suite I use the nfl sort a lot to see what calling changes are happening between two versions in order to identify the offending code, so add it as a command line option. Change-Id: Ia1ab6dd98012a78298b325bb5c7c050fa9b767c2 --- diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py index 4593f14314..859d1d7799 100644 --- a/lib/sqlalchemy/testing/plugin/plugin_base.py +++ b/lib/sqlalchemy/testing/plugin/plugin_base.py @@ -101,6 +101,13 @@ def setup_options(make_option): dest="nomemory", help="Don't run memory profiling tests", ) + make_option( + "--profile-sort", + type="string", + default="cumulative", + dest="profilesort", + help="Type of sort for profiling standard output", + ) make_option( "--postgresql-templatedb", type="string", @@ -474,7 +481,8 @@ def _setup_profiling(options, file_config): from sqlalchemy.testing import profiling profiling._profile_stats = profiling.ProfileStatsFile( - file_config.get("sqla_testing", "profile_file") + file_config.get("sqla_testing", "profile_file"), + sort=options.profilesort, ) diff --git a/lib/sqlalchemy/testing/profiling.py b/lib/sqlalchemy/testing/profiling.py index a75549027e..bfc4997e13 100644 --- a/lib/sqlalchemy/testing/profiling.py +++ b/lib/sqlalchemy/testing/profiling.py @@ -65,7 +65,7 @@ class ProfileStatsFile(object): """ - def __init__(self, filename): + def __init__(self, filename, sort="cumulative"): self.force_write = ( config.options is not None and config.options.force_write_profiles ) @@ -77,6 +77,7 @@ class ProfileStatsFile(object): self.data = collections.defaultdict( lambda: collections.defaultdict(dict) ) + self.sort = sort self._read() if self.write: # rewrite for the case where features changed, @@ -277,7 +278,7 @@ def count_functions(variance=0.05): line_no, expected_count = expected print(("Pstats calls: %d Expected %s" % (callcount, expected_count))) - stats.sort_stats("cumulative") + stats.sort_stats(_profile_stats.sort) stats.print_stats() if _profile_stats.force_write: