• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/perl
2#  ********************************************************************
3#  * Copyright (C) 2016 and later: Unicode, Inc. and others.
4#  *License & terms of use: http://www.unicode.org/copyright.html#License
5#  ********************************************************************
6#  ********************************************************************
7#  * COPYRIGHT:
8#  * Copyright (c) 2002-2013, International Business Machines
9#  * Corporation and others. All Rights Reserved.
10#  ********************************************************************
11
12#use strict;
13
14use lib '../perldriver';
15
16require "../perldriver/Common.pl";
17
18use PerfFramework;
19
20my $options = {
21    "title"=>"Unicode String performance regression: ICU (".$ICUPreviousVersion." and ".$ICULatestVersion.")",
22    "headers"=>"ICU".$ICUPreviousVersion." ICU".$ICULatestVersion,
23    "operationIs"=>"Unicode String",
24    "passes"=>"10",
25    "time"=>"5",
26    #"outputType"=>"HTML",
27    "dataDir"=>$CollationDataPath,
28    "outputDir"=>"../results"
29};
30
31# programs
32
33my $p1; # Previous
34my $p2; # Latest
35
36if ($OnWindows) {
37    $p1 = "cd ".$ICUPrevious."/bin && ".$ICUPathPrevious."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Previous
38    $p2 = "cd ".$ICULatest."/bin && ".$ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Latest
39} else {
40    $p1 = "LD_LIBRARY_PATH=".$ICUPrevious."/source/lib:".$ICUPrevious."/source/tools/ctestfw ".$ICUPathPrevious."/ustrperf/stringperf -b -u"; # Previous
41    $p2 = "LD_LIBRARY_PATH=".$ICULatest."/source/lib:".$ICULatest."/source/tools/ctestfw ".$ICUPathLatest."/ustrperf/stringperf -b -u"; # Latest
42}
43
44my $dataFiles = {
45    "",
46    [
47        "TestNames_Asian.txt",
48        "TestNames_Chinese.txt",
49        "TestNames_Japanese.txt",
50        "TestNames_Japanese_h.txt",
51        "TestNames_Japanese_k.txt",
52        "TestNames_Korean.txt",
53        "TestNames_Latin.txt",
54        "TestNames_SerbianSH.txt",
55        "TestNames_SerbianSR.txt",
56        "TestNames_Thai.txt",
57        "Testnames_Russian.txt",
58        "th18057.txt",
59        "thesis.txt",
60        "vfear11a.txt",
61    ]
62};
63
64
65my $tests = {
66    "Object Construction(empty string)",      ["$p1,TestCtor"         , "$p2,TestCtor"         ],
67    "Object Construction(single char)",       ["$p1,TestCtor1"        , "$p2,TestCtor1"        ],
68    "Object Construction(another string)",    ["$p1,TestCtor2"        , "$p2,TestCtor2"        ],
69    "Object Construction(string literal)",    ["$p1,TestCtor3"        , "$p2,TestCtor3"        ],
70    "String Assignment(helper)",              ["$p1,TestAssign"       , "$p2,TestAssign"       ],
71    "String Assignment(string literal)",      ["$p1,TestAssign1"      , "$p2,TestAssign1"      ],
72    "String Assignment(another string)",      ["$p1,TestAssign2"      , "$p2,TestAssign2"      ],
73    "Get String or Character",                ["$p1,TestGetch"        , "$p2,TestGetch"        ],
74    "Concatenation",                          ["$p1,TestCatenate"     , "$p2,TestCatenate"     ],
75    "String Scanning(char)",                  ["$p1,TestScan"         , "$p2,TestScan"         ],
76    "String Scanning(string)",                ["$p1,TestScan1"        , "$p2,TestScan1"        ],
77    "String Scanning(char set)",              ["$p1,TestScan2"        , "$p2,TestScan2"        ],
78};
79
80
81runTests($options, $tests, $dataFiles);
82
83
84