s/BenchmarkReportJSON.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 18 Mar 2016 22:41:49 +0000
changeset 312 c9a8fa71d8fc
parent 301 df951cc9a173
permissions -rw-r--r--
Web: Fixed filtering by tags in "Results" page "Results" page not allow for filtering by tags. * If both, configuration and tags are specified, only reports for specified configurations AND with at least one of the specified tags are shown. * If only tags are specified, then all reports on all configurations having at keast one of specified tags are shown. Kudos to Jan Kurs for forcing me to fix this :-)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:calipel/s' }"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
285
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 262
diff changeset
     3
"{ NameSpace: Smalltalk }"
0cf54ee76de5 Normalized Windows OS identification string with Pharo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 262
diff changeset
     4
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
BenchmarkReport subclass:#BenchmarkReportJSON
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'json'
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'CalipeL-S-Core-Reports'
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!BenchmarkReportJSON methodsFor:'accessing'!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
stream:something
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    stream := something.
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    json := BenchmarkReportJSONWriter on: stream.
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    "Created: / 12-06-2013 / 14:22:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
! !
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
!BenchmarkReportJSON methodsFor:'writing'!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
write
89
b37be3ddfeed Added timestamp to BenchmarkResult.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    25
    json writeDictionaryWith:[ 
190
ab1b88f52b93 Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    26
        json writeKey: 'tags' value: self name.
180
df8e7dcbfd8d Removed --machineid and added --name parameter to identify benchmark run.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
    27
        json writeElementSeparator.
89
b37be3ddfeed Added timestamp to BenchmarkResult.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    28
        json writeKey: 'timestamp' value: result timestamp printISO8601.
b37be3ddfeed Added timestamp to BenchmarkResult.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    29
        json writeElementSeparator.
88
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    30
        json writeKey: 'configuration' valueWith: [ self writeConfiguration ].
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    31
        json writeElementSeparator.
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
        json writeKey: 'outcomes' valueWith: [ self writeOutcomes ]
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    ].
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    "Created: / 12-06-2013 / 14:03:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
ab1b88f52b93 Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    36
    "Modified: / 19-09-2013 / 23:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
writeBenchmark: benchmark
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    json writeDictionaryWith:[
90
af50db15da25 Added name, id and description to benchmark annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
    41
        json writeKey: 'name' value: benchmark name.
af50db15da25 Added name, id and description to benchmark annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
    42
        json writeElementSeparator.
af50db15da25 Added name, id and description to benchmark annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
    43
        json writeKey: 'description' value: benchmark description.
af50db15da25 Added name, id and description to benchmark annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
    44
        json writeElementSeparator.
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
        json writeKey: 'class' value: benchmark instance class name.
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
        json writeElementSeparator.
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        json writeKey: 'selector' value: benchmark selector.
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    ]
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    "Created: / 12-06-2013 / 14:10:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90
af50db15da25 Added name, id and description to benchmark annotation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 89
diff changeset
    51
    "Modified: / 23-06-2013 / 02:27:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
88
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    54
writeConfiguration
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    55
    json writeDictionaryWith: [
190
ab1b88f52b93 Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    56
        description notNil ifTrue:[
ab1b88f52b93 Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    57
            json writeKey: 'description' value: self description.
194
55deffb7d7e7 Bug fix in BenchmarkReportJSON>>#writeConfiguration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    58
            json writeElementSeparator.
190
ab1b88f52b93 Added option --description to describe current configuration. --name renamed to --tags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    59
        ].
88
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    60
        json writeKey: 'language'   value: 'Smalltalk'.
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    61
        json writeElementSeparator.
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    62
        json writeKey: 'runtime'    value: BenchmarkPlatform current configurationStringRuntime.
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    63
        json writeElementSeparator.
125
1449209198c1 Fixes for machine id handling an JSON output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 122
diff changeset
    64
        json writeKey: 'os'         value: BenchmarkPlatform current configurationStringOS.
122
9ad7296fc59a Added machine ID configuration value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 96
diff changeset
    65
        json writeElementSeparator.
195
6bb215884ead Fixed typo in JSON report
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    66
        json writeKey: 'machineid'   value: (BenchmarkPlatform current configurationStringMachineId)
88
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    67
    ].
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    68
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    69
    "Created: / 22-06-2013 / 22:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
194
55deffb7d7e7 Bug fix in BenchmarkReportJSON>>#writeConfiguration
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    70
    "Modified: / 08-11-2013 / 21:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
88
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    71
!
7939ec1b572b Added configuration identification into JSON report (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    72
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
writeFooter
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    "superclass BenchmarkReport says that I am responsible to implement this method"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    "Modified: / 12-06-2013 / 14:14:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
writeHeader
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    "superclass BenchmarkReport says that I am responsible to implement this method"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Modified: / 12-06-2013 / 14:14:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    85
writeMeasurement: measurement
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    86
    measurement value ~~ BenchmarkMeasurementValueNotAvailable instance ifTrue:[  
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    87
        json writeDictionaryWith:[
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    88
            json writeKey: 'instrument' valueWith: [ self writeMeasurementInstrument: measurement instrument ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    89
            json writeElementSeparator.
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    90
            json writeKey: 'value' value: measurement value
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    91
        ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    92
    ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    93
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    94
    "Created: / 24-11-2014 / 23:41:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    95
    "Modified: / 01-12-2014 / 03:04:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    96
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    97
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    98
writeMeasurementInstrument: instrument
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
    99
    json writeDictionaryWith:[
301
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   100
        json writeKey: 'name' value: instrument measurementInstrumentName.
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   101
        json writeElementSeparator.
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   102
        json writeKey: 'class' value: instrument class name.
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   103
        json writeElementSeparator.
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   104
        json writeKey: 'unit' value: instrument measurementUnit.        
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   105
    ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   106
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   107
    "Created: / 24-11-2014 / 23:46:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
301
df951cc9a173 Added BenchmarkExamplesInstrument and class comments on measurement instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
   108
    "Modified: / 22-10-2015 / 09:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   109
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   110
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   111
writeMeasurements: measurements
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   112
    json writeArrayWith:[
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   113
        measurements do:[:run | 
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   114
            json writeArrayWith:[
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   115
                run do:[:measurement |  
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   116
                    self writeMeasurement: measurement
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   117
                ] separatedBy:[  
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   118
                    json writeElementSeparator
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   119
                ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   120
            ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   121
        ] separatedBy:[ 
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   122
            json writeElementSeparator
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   123
        ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   124
    ].
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   125
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   126
    "Created: / 24-11-2014 / 23:37:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   127
!
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   128
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
writeOutcome:outcome
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    json writeDictionaryWith:[
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
        json writeKey: 'benchmark' valueWith: [ self writeBenchmark: outcome benchmark ].
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
        json writeElementSeparator.
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   133
        json writeKey: 'measurements' valueWith: [ self writeMeasurements: outcome measurements ].
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
        json writeElementSeparator.        
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
        json writeKey: 'parameters' valueWith: [ self writeParameters: outcome ].
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   136
        json writeElementSeparator.        
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   137
        "For backward compatibility, will wanish"
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   138
        json writeKey: 'times' value: outcome times.
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    ]
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
262
8d2849dd3227 Added support for (user-defined) benchmark instruments.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 195
diff changeset
   141
    "Modified: / 24-11-2014 / 23:36:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
writeOutcomes
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    "raise an error: must be redefined in concrete subclass(es)"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    json writeArrayWith:[
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
        result 
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
           outcomesDo: [:outcome| self writeOutcome: outcome] 
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
           separatedBy:[json writeElementSeparator]
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    ]
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    "Created: / 11-06-2013 / 23:39:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
    "Modified (format): / 12-06-2013 / 14:06:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
writeParameters: outcome
142
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   157
    json writeDictionaryWith: [
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   158
        outcome parameters do:[:paramAndValue |
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   159
            json writeKey: paramAndValue key name value: paramAndValue value 
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   160
        ] separatedBy:[
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   161
            json writeElementSeparator
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   162
        ]
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   163
    ]
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
    "Created: / 12-06-2013 / 14:10:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
142
c69d1eb92d91 Include parameters and their values in JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   166
    "Modified: / 30-07-2013 / 23:58:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
! !
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
!BenchmarkReportJSON class methodsFor:'documentation'!
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
version_HG
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
    ^ '$Changeset: <not expanded> $'
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
! !
00d2eaa41853 Initial version of JSON report.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175