185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#!/usr/bin/perl
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  ********************************************************************
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  * COPYRIGHT:
485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#  * Copyright (c) 2003-2008, International Business Machines Corporation and
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  * others. All Rights Reserved.
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  ********************************************************************
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho#use strict;
1085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho
1185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Horequire "../perldriver/Common.pl";
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruuse lib '../perldriver';
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruuse PerfFramework;
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querumy $options = {
1885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho	       "title"=>"Unicode String performance: ICU ".$ICULatestVersion." vs. STDLib",
1985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho	       "headers"=>"StdLib ICU".$ICULatestVersion,
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	       "operationIs"=>"Unicode String",
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	       "timePerOperationIs"=>"Time per Unicode String",
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	       "passes"=>"5",
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	       "time"=>"2",
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	       #"outputType"=>"HTML",
2585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho	       "dataDir"=>$CollationDataPath,
2685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho           "outputDir"=>"../results"
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru	      };
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# programs
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# tests will be done for all the programs. Results will be stored and connected
3285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Homy $p;
3385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Hoif ($OnWindows) {
3485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho	$p = $ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -l -u";
3585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho} else {
3685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho	$p = $ICUPathLatest."/ustrperf/stringperf -l -u";
3785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho}
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querumy $tests = {
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Object Construction(empty string)",      ["$p TestStdLibCtor"         , "$p TestCtor"         ],
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Object Construction(single char)",       ["$p TestStdLibCtor1"        , "$p TestCtor1"        ],
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Object Construction(another string)",    ["$p TestStdLibCtor2"        , "$p TestCtor2"        ],
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Object Construction(string literal)",    ["$p TestStdLibCtor3"        , "$p TestCtor3"        ],
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Assignment(helper)",     		  ["$p TestStdLibAssign"       , "$p TestAssign"       ],
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Assignment(string literal)",      ["$p TestStdLibAssign1"      , "$p TestAssign1"      ],
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Assignment(another string)",      ["$p TestStdLibAssign2"      , "$p TestAssign2"      ],
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Get String or Character",      		  ["$p TestStdLibGetch"        , "$p TestGetch"        ],
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"Concatenation",   						  ["$p TestStdLibCatenate"     , "$p TestCatenate"     ],
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Scanning(char)",     		      ["$p TestStdLibScan"         , "$p TestScan"         ],
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Scanning(string)",       		  ["$p TestStdLibScan1"        , "$p TestScan1"        ],
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru"String Scanning(char set)",       	      ["$p TestStdLibScan2"        , "$p TestScan2"        ],
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querumy $dataFiles = {
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		 "",
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		 [
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Asian.txt",
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Chinese.txt",
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Simplified_Chinese.txt",
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Japanese_h.txt",
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Japanese_k.txt",
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Korean.txt",
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Latin.txt",
64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_SerbianSH.txt",
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_SerbianSR.txt",
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "TestNames_Thai.txt",
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "Testnames_Russian.txt",
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		  "th18057.txt",
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		 ]
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru		};
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QuerurunTests($options, $tests, $dataFiles);
73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# The whole command line would be something like:
75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# 	stringperf.exe -p 5 -t 2 -f c:/src/data/perf/TestNames_Asian.txt -l -u TestStdLibCatenate