@@ -308,6 +308,46 @@ def validatePTR(deq): # construct from delta encoded quantiles string
308
308
1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"""
309
309
map (validatePTR , delta_encoded_quantiles .split ('\n ' )[1 :])
310
310
311
+ def test_init_meta (self ):
312
+ # #,TEST,SAMPLES,MIN(μs),MAX(μs),MEAN(μs),SD(μs),MEDIAN(μs),…
313
+ # …PAGES,ICS,YIELD
314
+ log = '1,Ackermann,200,715,1281,726,47,715,7,29,15'
315
+ r = PerformanceTestResult (log .split (',' ), meta = True )
316
+ self .assertEqual ((r .test_num , r .name ), ('1' , 'Ackermann' ))
317
+ self .assertEqual (
318
+ (r .num_samples , r .min , r .max , r .mean , r .sd , r .median ),
319
+ (200 , 715 , 1281 , 726 , 47 , 715 ))
320
+ self .assertEqual ((r .mem_pages , r .involuntary_cs , r .yield_count ),
321
+ (7 , 29 , 15 ))
322
+ # #,TEST,SAMPLES,MIN(μs),MAX(μs),MEAN(μs),SD(μs),MEDIAN(μs),MAX_RSS(B),…
323
+ # …PAGES,ICS,YIELD
324
+ log = '1,Ackermann,200,715,1951,734,97,715,36864,9,50,15'
325
+ r = PerformanceTestResult (log .split (',' ), memory = True , meta = True )
326
+ self .assertEqual (
327
+ (r .num_samples , r .min , r .max , r .mean , r .sd , r .median ),
328
+ (200 , 715 , 1951 , 734 , 97 , 715 ))
329
+ self .assertEqual (
330
+ (r .mem_pages , r .involuntary_cs , r .yield_count , r .max_rss ),
331
+ (9 , 50 , 15 , 36864 ))
332
+ # #,TEST,SAMPLES,MIN(μs),MAX(μs),PAGES,ICS,YIELD
333
+ log = '1,Ackermann,200,715,3548,8,31,15'
334
+ r = PerformanceTestResult (log .split (',' ), quantiles = True , meta = True )
335
+ self .assertEqual ((r .num_samples , r .min , r .max ), (200 , 715 , 3548 ))
336
+ self .assertEqual ((r .samples .count , r .samples .min , r .samples .max ),
337
+ (2 , 715 , 3548 ))
338
+ self .assertEqual ((r .mem_pages , r .involuntary_cs , r .yield_count ),
339
+ (8 , 31 , 15 ))
340
+ # #,TEST,SAMPLES,MIN(μs),MAX(μs),MAX_RSS(B),PAGES,ICS,YIELD
341
+ log = '1,Ackermann,200,715,1259,32768,8,28,15'
342
+ r = PerformanceTestResult (
343
+ log .split (',' ), quantiles = True , memory = True , meta = True )
344
+ self .assertEqual ((r .num_samples , r .min , r .max ), (200 , 715 , 1259 ))
345
+ self .assertEqual ((r .samples .count , r .samples .min , r .samples .max ),
346
+ (2 , 715 , 1259 ))
347
+ self .assertEquals (r .max_rss , 32768 )
348
+ self .assertEqual ((r .mem_pages , r .involuntary_cs , r .yield_count ),
349
+ (8 , 28 , 15 ))
350
+
311
351
def test_repr (self ):
312
352
log_line = '1,AngryPhonebook,20,10664,12933,11035,576,10884'
313
353
r = PerformanceTestResult (log_line .split (',' ))
@@ -517,6 +557,33 @@ def test_parse_delta_quantiles(self):
517
557
# last 3 ventiles were outliers and were excluded from the sample
518
558
(200 , 214 , 215 , 18 ))
519
559
560
+ def test_parse_meta (self ):
561
+ r = LogParser .results_from_string (
562
+ '#,TEST,SAMPLES,MIN(μs),MAX(μs),MEAN(μs),SD(μs),MEDIAN(μs),' +
563
+ 'PAGES,ICS,YIELD\n ' +
564
+ '0,B,1,2,2,2,0,2,7,29,15' )['B' ]
565
+ self .assertEqual (
566
+ (r .min , r .mem_pages , r .involuntary_cs , r .yield_count ),
567
+ (2 , 7 , 29 , 15 ))
568
+ r = LogParser .results_from_string (
569
+ '#,TEST,SAMPLES,MIN(μs),MAX(μs),MEAN(μs),SD(μs),MEDIAN(μs),' +
570
+ 'MAX_RSS(B),PAGES,ICS,YIELD\n ' +
571
+ '0,B,1,3,3,3,0,3,36864,9,50,15' )['B' ]
572
+ self .assertEqual (
573
+ (r .min , r .mem_pages , r .involuntary_cs , r .yield_count , r .max_rss ),
574
+ (3 , 9 , 50 , 15 , 36864 ))
575
+ r = LogParser .results_from_string (
576
+ '#,TEST,SAMPLES,MIN(μs),MAX(μs),PAGES,ICS,YIELD\n ' +
577
+ '0,B,1,4,4,8,31,15' )['B' ]
578
+ self .assertEqual ((r .min , r .mem_pages , r .involuntary_cs , r .yield_count ),
579
+ (4 , 8 , 31 , 15 ))
580
+ r = LogParser .results_from_string (
581
+ '#,TEST,SAMPLES,MIN(μs),MAX(μs),MAX_RSS(B),PAGES,ICS,YIELD\n ' +
582
+ '0,B,1,5,5,32768,8,28,15' )['B' ]
583
+ self .assertEqual (
584
+ (r .min , r .mem_pages , r .involuntary_cs , r .yield_count , r .max_rss ),
585
+ (5 , 8 , 28 , 15 , 32768 ))
586
+
520
587
def test_parse_results_verbose (self ):
521
588
"""Parse multiple performance test results with 2 sample formats:
522
589
single line for N = 1; two lines for N > 1.
0 commit comments