11e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#!/usr/bin/perl
21e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#  ********************************************************************
31e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#  * COPYRIGHT:
41e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#  * Copyright (c) 2002-2008, International Business Machines
51e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#  * Corporation and others. All Rights Reserved.
61e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#  ********************************************************************
71e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany
81e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany#use strict;
91e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany
101e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanyuse lib '../perldriver';
111e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany
121e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanyrequire "../perldriver/Common.pl";
131e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany
141e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanyuse PerfFramework;
15d6567c5166412f6acdde851e767c26f332d51d3dKostya Serebryany
161e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanymy $options = {
1764ce2db7c838cd95315f7a4428e8a628eaa3e2fcAlexey Samsonov	       "title"=>"Unicode String performance regression: ICU (".$ICUPreviousVersion." and ".$ICULatestVersion.")",
181e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany           "headers"=>"ICU".$ICUPreviousVersion." ICU".$ICULatestVersion,
19895b3872acb5bcccb1769ea69d37dd33c722f99dAlexander Potapenko	       "operationIs"=>"Unicode String",
208a34d384255f9bf4c2a9b03a4df81b9af57124d8Alexander Potapenko	       "passes"=>"10",
211e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany	       "time"=>"5",
221e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany	       #"outputType"=>"HTML",
231e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany	       "dataDir"=>$CollationDataPath,
24ae4d9caa4f47fa6abcd641719e9f520622940c17Alexey Samsonov           "outputDir"=>"../results"
251e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany	      };
261e316d7f488a75312539629e9d937e156280eeb6Alexander Potapenko
278a34d384255f9bf4c2a9b03a4df81b9af57124d8Alexander Potapenko# programs
289b993e8cd0f8964782ee93524603d0c53adc2249Kostya Serebryany
291e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanymy $p1; # Previous
30ef14ff6512d7b2e20aa3206dff820b5f90285420Kostya Serebryanymy $p2; # Latest
3159dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko
329107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryanyif ($OnWindows) {
33c549dd7b5fa5fb97270f57067797224cee0429f2Kostya Serebryany	$p1 = $ICUPathPrevious."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Previous
34a874fe5b5d67152e4e737498d532eec80940bdcdKostya Serebryany    $p2 = $ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Latest
351e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany} else {
36d55f5f8c413622db4bd28b5cca9bfeb4d61564e0Kostya Serebryany	$p1 = $ICUPathPrevious."/ustrperf/stringperf -b -u"; # Previous
3764ce2db7c838cd95315f7a4428e8a628eaa3e2fcAlexey Samsonov    $p2 = $ICUPathLatest."/ustrperf/stringperf -b -u"; # Latest
381e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany}
391e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryany
401e172b4bdec57329bf904f063a29f99cddf2d85fKostya Serebryanymy $dataFiles = {
413f4c3875c42078e22c7e5356c5746fd18756d958Kostya Serebryany		 "",
429107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		 [
439107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Asian.txt",
449107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Chinese.txt",
459107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Japanese.txt",
469107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Japanese_h.txt",
479107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Japanese_k.txt",
489107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Korean.txt",
499107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Latin.txt",
509107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_SerbianSH.txt",
519107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_SerbianSR.txt",
529107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "TestNames_Thai.txt",
539107c26bd88fc9cf44a2cd7d6967eb830ac63be3Kostya Serebryany		  "Testnames_Russian.txt",
5438dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov		  "th18057.txt",
5538dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov		  "thesis.txt",
5638dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov		  "vfear11a.txt",
5738dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov		 ]
5838dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov		};
5938dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov
6038dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonov
6138dd4ed885e714c376466f6fe0d69f5f22d37014Alexey Samsonovmy $tests = {
6259dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"Object Construction(empty string)",      ["$p1 TestCtor"         , "$p2 TestCtor"         ],
6359dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"Object Construction(single char)",       ["$p1 TestCtor1"        , "$p2 TestCtor1"        ],
643f46cf42b0f8e0667a3bea88cf871ebd4dc0ecdfAlexey Samsonov"Object Construction(another string)",    ["$p1 TestCtor2"        , "$p2 TestCtor2"        ],
6559dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"Object Construction(string literal)",    ["$p1 TestCtor3"        , "$p2 TestCtor3"        ],
6659dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"String Assignment(helper)",     		  ["$p1 TestAssign"       , "$p2 TestAssign"       ],
673f4c3875c42078e22c7e5356c5746fd18756d958Kostya Serebryany"String Assignment(string literal)",      ["$p1 TestAssign1"      , "$p2 TestAssign1"      ],
6859dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"String Assignment(another string)",      ["$p1 TestAssign2"      , "$p2 TestAssign2"      ],
693f4c3875c42078e22c7e5356c5746fd18756d958Kostya Serebryany"Get String or Character",      		  ["$p1 TestGetch"        , "$p2 TestGetch"        ],
7059dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"Concatenation",   						  ["$p1 TestCatenate"     , "$p2 TestCatenate"     ],
7159dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"String Scanning(char)",     		      ["$p1 TestScan"         , "$p2 TestScan"         ],
7259dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"String Scanning(string)",       		  ["$p1 TestScan1"        , "$p2 TestScan1"        ],
7359dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko"String Scanning(char set)",       	      ["$p1 TestScan2"        , "$p2 TestScan2"        ],
7459dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko};
7559dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko
7659dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko
7759dc578df0de177b44c8c78f69d73735e38e5c14Alexander PotapenkorunTests($options, $tests, $dataFiles);
7859dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko
7959dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko
8059dc578df0de177b44c8c78f69d73735e38e5c14Alexander Potapenko