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