Index: lnt/lnttool/main.py =================================================================== --- lnt/lnttool/main.py +++ lnt/lnttool/main.py @@ -424,11 +424,13 @@ @action_profile.command("getFunctions") @click.argument("input", type=click.Path(exists=True)) -def command_get_functions(input): +@click.option("--sortkeys", is_flag=True) +def command_get_functions(input, sortkeys): """print the functions in a profile""" import json import lnt.testing.profile.profile as profile - print(json.dumps(profile.Profile.fromFile(input).getFunctions())) + print(json.dumps(profile.Profile.fromFile(input).getFunctions(), + sort_keys=sortkeys)) @action_profile.command("getCodeForFunction") Index: tests/lnttool/Profile.py =================================================================== --- tests/lnttool/Profile.py +++ tests/lnttool/Profile.py @@ -4,8 +4,8 @@ # RUN: lnt profile getTopLevelCounters %S/Inputs/test.lntprof | FileCheck --check-prefix=CHECK-GETTLC %s # CHECK-GETTLC: {"cycles": 12345.0, "branch-misses": 200.0} -# RUN: lnt profile getFunctions %S/Inputs/test.lntprof | FileCheck --check-prefix=CHECK-GETFUNCTIONS %s -# CHECK-GETFUNCTIONS: {"fn1": {"length": 2, "counters": {"cycles": 45.0, "branch-misses": 10.0}}} +# RUN: lnt profile getFunctions --sortkeys %S/Inputs/test.lntprof | FileCheck --check-prefix=CHECK-GETFUNCTIONS %s +# CHECK-GETFUNCTIONS: {"fn1": {"counters": {"branch-misses": 10.0, "cycles": 45.0}, "length": 2}} # RUN: lnt profile getCodeForFunction %S/Inputs/test.lntprof fn1 | FileCheck --check-prefix=CHECK-GETFN1 %s # CHECK-GETFN1: [{}, 1048576, "add r0, r0, r0"], [{"cycles": 100.0}, 1048580, "sub r1, r0, r0"]]