sl@0
|
1 |
// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
|
sl@0
|
2 |
// All rights reserved.
|
sl@0
|
3 |
// This component and the accompanying materials are made available
|
sl@0
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
sl@0
|
5 |
// which accompanies this distribution, and is available
|
sl@0
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
sl@0
|
7 |
//
|
sl@0
|
8 |
// Initial Contributors:
|
sl@0
|
9 |
// Nokia Corporation - initial contribution.
|
sl@0
|
10 |
//
|
sl@0
|
11 |
// Contributors:
|
sl@0
|
12 |
//
|
sl@0
|
13 |
// Description:
|
sl@0
|
14 |
// Test program for the Standard Unicode Compression Scheme; does nothing in the narrow builds.
|
sl@0
|
15 |
//
|
sl@0
|
16 |
//
|
sl@0
|
17 |
|
sl@0
|
18 |
#include <s32mem.h>
|
sl@0
|
19 |
#include <s32ucmp.h>
|
sl@0
|
20 |
#include <e32test.h>
|
sl@0
|
21 |
|
sl@0
|
22 |
#ifdef _UNICODE
|
sl@0
|
23 |
|
sl@0
|
24 |
const TInt KTestCleanupStack=0x20;
|
sl@0
|
25 |
CTrapCleanup* TheTrapCleanup;
|
sl@0
|
26 |
RTest test(_L("t_storucmp"));
|
sl@0
|
27 |
|
sl@0
|
28 |
static const TUint16 UnicodeData[] =
|
sl@0
|
29 |
{
|
sl@0
|
30 |
0xFEFF, 0x45, 0x6E, 0x67, 0x6C, 0x69, 0x73, 0x68, 0x3A, 0x20, 0x4A, 0x61, 0x63, 0x6B, 0x64, 0x61, // .English: Jackda
|
sl@0
|
31 |
0x77, 0x73, 0x20, 0x6C, 0x6F, 0x76, 0x65, 0x20, 0x6D, 0x79, 0x20, 0x62, 0x69, 0x67, 0x20, 0x73, // ws love my big s
|
sl@0
|
32 |
0x70, 0x68, 0x69, 0x6E, 0x78, 0x20, 0x6F, 0x66, 0x20, 0x71, 0x75, 0x61, 0x72, 0x74, 0x7A, 0x2E, // phinx of quartz.
|
sl@0
|
33 |
0x20, 0x50, 0x61, 0x63, 0x6B, 0x20, 0x6D, 0x79, 0x20, 0x62, 0x6F, 0x78, 0x20, 0x77, 0x69, 0x74, // Pack my box wit
|
sl@0
|
34 |
0x68, 0x20, 0x66, 0x69, 0x76, 0x65, 0x20, 0x64, 0x6F, 0x7A, 0x65, 0x6E, 0x20, 0x6C, 0x69, 0x71, // h five dozen liq
|
sl@0
|
35 |
0x75, 0x6F, 0x72, 0x20, 0x6A, 0x75, 0x67, 0x73, 0x2E, 0x6, 0x6, 0x47, 0x65, 0x72, 0x6D, 0x61, // uor jugs...Germa
|
sl@0
|
36 |
0x6E, 0x3A, 0x20, 0x44, 0x61, 0xDF, 0x20, 0x43, 0x2B, 0x2B, 0x20, 0x73, 0x69, 0x63, 0x68, 0x20, // n: Daß C++ sich
|
sl@0
|
37 |
0x73, 0x6F, 0x20, 0x73, 0x74, 0x61, 0x72, 0x6B, 0x20, 0x76, 0x65, 0x72, 0x62, 0x72, 0x65, 0x69, // so stark verbrei
|
sl@0
|
38 |
0x74, 0x65, 0x74, 0x20, 0x68, 0x61, 0x74, 0x2C, 0x20, 0x6D, 0x61, 0x67, 0x20, 0x76, 0x6F, 0x72, // tet hat, mag vor
|
sl@0
|
39 |
0x20, 0x61, 0x6C, 0x6C, 0x65, 0x6E, 0x20, 0x44, 0x69, 0x6E, 0x67, 0x65, 0x6E, 0x20, 0x7A, 0x77, // allen Dingen zw
|
sl@0
|
40 |
0x65, 0x69, 0x20, 0x47, 0x72, 0xFC, 0x6E, 0x64, 0x65, 0x20, 0x68, 0x61, 0x62, 0x65, 0x6E, 0x3A, // ei Gründe haben:
|
sl@0
|
41 |
0x6, 0x44, 0x69, 0x65, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x6E, // .Die objektorien
|
sl@0
|
42 |
0x74, 0x69, 0x65, 0x72, 0x74, 0x65, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, // tierte Programmi
|
sl@0
|
43 |
0x65, 0x72, 0x75, 0x6E, 0x67, 0x20, 0x69, 0x73, 0x74, 0x20, 0x73, 0x69, 0x63, 0x68, 0x65, 0x72, // erung ist sicher
|
sl@0
|
44 |
0x20, 0x65, 0x69, 0x6E, 0x65, 0x20, 0x61, 0x75, 0x73, 0x67, 0x65, 0x7A, 0x65, 0x69, 0x63, 0x68, // eine ausgezeich
|
sl@0
|
45 |
0x6E, 0x65, 0x74, 0x65, 0x20, 0x41, 0x6C, 0x74, 0x65, 0x72, 0x6E, 0x61, 0x74, 0x69, 0x76, 0x65, // nete Alternative
|
sl@0
|
46 |
0x6, 0x7A, 0x75, 0x20, 0x64, 0x65, 0x6E, 0x20, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6F, // .zu den traditio
|
sl@0
|
47 |
0x6E, 0x65, 0x6C, 0x6C, 0x65, 0x6E, 0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, // nellen Programmi
|
sl@0
|
48 |
0x65, 0x72, 0x74, 0x65, 0x63, 0x68, 0x6E, 0x69, 0x6B, 0x65, 0x6E, 0x2C, 0x20, 0x6D, 0xF6, 0x67, // ertechniken, mög
|
sl@0
|
49 |
0x6C, 0x69, 0x63, 0x68, 0x65, 0x72, 0x77, 0x65, 0x69, 0x73, 0x65, 0x20, 0x66, 0xFC, 0x72, 0x20, // licherweise für
|
sl@0
|
50 |
0x67, 0x72, 0x6F, 0xDF, 0x65, 0x20, 0x53, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2D, 0x50, // große Software-P
|
sl@0
|
51 |
0x72, 0x6F, 0x6A, 0x65, 0x6B, 0x74, 0x65, 0x6, 0x67, 0x65, 0x67, 0x65, 0x6E, 0x77, 0xE4, 0x72, // rojekte.gegenwär
|
sl@0
|
52 |
0x74, 0x69, 0x67, 0x20, 0x64, 0x69, 0x65, 0x20, 0x65, 0x69, 0x6E, 0x7A, 0x69, 0x67, 0x65, 0x20, // tig die einzige
|
sl@0
|
53 |
0x4D, 0xF6, 0x67, 0x6C, 0x69, 0x63, 0x68, 0x6B, 0x65, 0x69, 0x74, 0x2C, 0x20, 0x64, 0x69, 0x65, // Möglichkeit, die
|
sl@0
|
54 |
0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x20, 0x73, 0x6F, 0x77, 0x6F, 0x68, // Programme sowoh
|
sl@0
|
55 |
0x6C, 0x20, 0x65, 0x66, 0x66, 0x65, 0x6B, 0x74, 0x69, 0x76, 0x20, 0x73, 0x63, 0x68, 0x72, 0x65, // l effektiv schre
|
sl@0
|
56 |
0x69, 0x62, 0x65, 0x6E, 0x20, 0x61, 0x6C, 0x73, 0x20, 0x61, 0x75, 0x63, 0x68, 0x20, 0x77, 0x61, // iben als auch wa
|
sl@0
|
57 |
0x72, 0x74, 0x65, 0x6E, 0x6, 0x7A, 0x75, 0x20, 0x6B, 0xF6, 0x6E, 0x6E, 0x65, 0x6E, 0x20, 0x28, // rten.zu können (
|
sl@0
|
58 |
0x75, 0x6E, 0x64, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69, 0x65, 0x6E, 0x74, // und objektorient
|
sl@0
|
59 |
0x69, 0x65, 0x72, 0x74, 0x65, 0x20, 0x56, 0x6F, 0x72, 0x67, 0x65, 0x68, 0x65, 0x6E, 0x73, 0x77, // ierte Vorgehensw
|
sl@0
|
60 |
0x65, 0x69, 0x73, 0x65, 0x6E, 0x20, 0x73, 0x69, 0x6E, 0x64, 0x20, 0x61, 0x75, 0x63, 0x68, 0x20, // eisen sind auch
|
sl@0
|
61 |
0x69, 0x6E, 0x20, 0x76, 0x69, 0x65, 0x6C, 0x65, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x65, 0x72, 0x65, // in vielen andere
|
sl@0
|
62 |
0x6E, 0x6, 0x57, 0x69, 0x73, 0x73, 0x65, 0x6E, 0x73, 0x63, 0x68, 0x61, 0x66, 0x74, 0x73, 0x62, // n.Wissenschaftsb
|
sl@0
|
63 |
0x65, 0x72, 0x65, 0x69, 0x63, 0x68, 0x65, 0x6E, 0x20, 0x65, 0x72, 0x66, 0x6F, 0x6C, 0x67, 0x72, // ereichen erfolgr
|
sl@0
|
64 |
0x65, 0x69, 0x63, 0x68, 0x29, 0x2E, 0x20, 0x5A, 0x75, 0x6D, 0x20, 0x61, 0x6E, 0x64, 0x65, 0x72, // eich). Zum ander
|
sl@0
|
65 |
0x65, 0x6E, 0x20, 0x65, 0x6E, 0x74, 0x68, 0xE4, 0x6C, 0x74, 0x20, 0x43, 0x2B, 0x2B, 0x20, 0x64, // en enthält C++ d
|
sl@0
|
66 |
0x65, 0x6E, 0x20, 0x6B, 0x6F, 0x6D, 0x70, 0x6C, 0x65, 0x74, 0x74, 0x65, 0x6E, 0x6, 0x53, 0x70, // en kompletten.Sp
|
sl@0
|
67 |
0x72, 0x61, 0x63, 0x68, 0x75, 0x6D, 0x66, 0x61, 0x6E, 0x67, 0x20, 0x76, 0x6F, 0x6E, 0x20, 0x43, // rachumfang von C
|
sl@0
|
68 |
0x2C, 0x20, 0x73, 0x6F, 0x20, 0x64, 0x61, 0xDF, 0x20, 0x66, 0xFC, 0x72, 0x20, 0x64, 0x69, 0x65, // , so daß für die
|
sl@0
|
69 |
0x20, 0x50, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, 0x65, 0x72, 0x65, 0x72, 0x20, 0x65, // Programmierer e
|
sl@0
|
70 |
0x69, 0x6E, 0x20, 0x22, 0x67, 0x6C, 0x65, 0x69, 0x74, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x20, 0xDC, // in "gleitender Ü
|
sl@0
|
71 |
0x62, 0x65, 0x72, 0x67, 0x61, 0x6E, 0x67, 0x22, 0x20, 0x6D, 0xF6, 0x67, 0x6C, 0x69, 0x63, 0x68, // bergang" möglich
|
sl@0
|
72 |
0x20, 0x69, 0x73, 0x74, 0x6, 0x75, 0x6E, 0x64, 0x20, 0x61, 0x6C, 0x6C, 0x65, 0x20, 0x43, 0x2D, // ist.und alle C-
|
sl@0
|
73 |
0x52, 0x6F, 0x75, 0x74, 0x69, 0x6E, 0x65, 0x6E, 0x20, 0x75, 0x6E, 0x64, 0x20, 0x43, 0x2D, 0x42, // Routinen und C-B
|
sl@0
|
74 |
0x69, 0x62, 0x6C, 0x69, 0x6F, 0x74, 0x68, 0x65, 0x6B, 0x65, 0x6E, 0x20, 0x77, 0x65, 0x69, 0x74, // ibliotheken weit
|
sl@0
|
75 |
0x65, 0x72, 0x20, 0x76, 0x65, 0x72, 0x77, 0x65, 0x6E, 0x64, 0x65, 0x74, 0x20, 0x77, 0x65, 0x72, // er verwendet wer
|
sl@0
|
76 |
0x64, 0x65, 0x6E, 0x20, 0x6B, 0xF6, 0x6E, 0x6E, 0x65, 0x6E, 0x2E, 0x6, 0x6, 0x53, 0x77, 0x65, // den können...Swe
|
sl@0
|
77 |
0x64, 0x69, 0x73, 0x68, 0x3A, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x20, 0xE4, 0x72, 0x20, 0x75, 0x74, // dish: Java är ut
|
sl@0
|
78 |
0x76, 0x65, 0x63, 0x6B, 0x6C, 0x61, 0x64, 0x20, 0x61, 0x76, 0x20, 0x53, 0x75, 0x6E, 0x2E, 0x20, // vecklad av Sun.
|
sl@0
|
79 |
0x46, 0x72, 0xE5, 0x6E, 0x20, 0x62, 0xF6, 0x72, 0x6A, 0x61, 0x6E, 0x20, 0x76, 0x61, 0x72, 0x20, // Från början var
|
sl@0
|
80 |
0x64, 0x65, 0x74, 0x20, 0x74, 0xE4, 0x6E, 0x6B, 0x74, 0x20, 0x61, 0x74, 0x74, 0x20, 0x73, 0x70, // det tänkt att sp
|
sl@0
|
81 |
0x72, 0xE5, 0x6B, 0x65, 0x74, 0x20, 0x73, 0x6B, 0x75, 0x6C, 0x6C, 0x65, 0x20, 0x61, 0x6E, 0x76, // råket skulle anv
|
sl@0
|
82 |
0xE4, 0x6E, 0x64, 0x61, 0x73, 0x20, 0x69, 0x6E, 0x6F, 0x6D, 0x20, 0x65, 0x6C, 0x65, 0x6B, 0x74, // ändas inom elekt
|
sl@0
|
83 |
0x72, 0x6F, 0x6E, 0x69, 0x6B, 0x20, 0x74, 0x69, 0x6C, 0x6C, 0x6, 0x74, 0x20, 0x65, 0x78, 0x20, // ronik till.t ex
|
sl@0
|
84 |
0x62, 0x72, 0xF6, 0x64, 0x72, 0x6F, 0x73, 0x74, 0x61, 0x72, 0x20, 0x65, 0x6C, 0x6C, 0x65, 0x72, // brödrostar eller
|
sl@0
|
85 |
0x20, 0x74, 0x76, 0xE4, 0x74, 0x74, 0x6D, 0x61, 0x73, 0x6B, 0x69, 0x6E, 0x65, 0x72, 0x2E, 0x20, // tvättmaskiner.
|
sl@0
|
86 |
0x55, 0x74, 0x76, 0x65, 0x63, 0x6B, 0x6C, 0x61, 0x72, 0x6E, 0x61, 0x20, 0x69, 0x6E, 0x73, 0xE5, // Utvecklarna inså
|
sl@0
|
87 |
0x67, 0x20, 0x73, 0x6E, 0x61, 0x62, 0x62, 0x74, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74, // g snabbt att det
|
sl@0
|
88 |
0x20, 0x6B, 0x72, 0xE4, 0x76, 0x64, 0x65, 0x73, 0x20, 0x65, 0x74, 0x74, 0x20, 0x70, 0x6C, 0x61, // krävdes ett pla
|
sl@0
|
89 |
0x74, 0x74, 0x66, 0x6F, 0x72, 0x6D, 0x73, 0x6F, 0x62, 0x65, 0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65, // ttformsoberoende
|
sl@0
|
90 |
0x6, 0x73, 0x70, 0x72, 0xE5, 0x6B, 0x20, 0x66, 0xF6, 0x72, 0x20, 0x61, 0x74, 0x74, 0x20, 0x6B, // .språk för att k
|
sl@0
|
91 |
0x75, 0x6E, 0x6E, 0x61, 0x20, 0x74, 0x69, 0x6C, 0x6C, 0x67, 0x6F, 0x64, 0x6F, 0x73, 0x65, 0x20, // unna tillgodose
|
sl@0
|
92 |
0x64, 0x65, 0x20, 0x6F, 0x6C, 0x69, 0x6B, 0x61, 0x20, 0x62, 0x65, 0x68, 0x6F, 0x76, 0x65, 0x6E, // de olika behoven
|
sl@0
|
93 |
0x20, 0x70, 0xE5, 0x20, 0x65, 0x6C, 0x65, 0x6B, 0x74, 0x72, 0x6F, 0x6E, 0x69, 0x6B, 0x6D, 0x61, // på elektronikma
|
sl@0
|
94 |
0x72, 0x6B, 0x6E, 0x61, 0x64, 0x65, 0x6E, 0x2E, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x73, 0x20, 0x73, // rknaden. Javas s
|
sl@0
|
95 |
0x6B, 0x61, 0x70, 0x61, 0x72, 0x65, 0x20, 0x4A, 0x61, 0x6D, 0x65, 0x73, 0x20, 0x47, 0x6F, 0x73, // kapare James Gos
|
sl@0
|
96 |
0x6C, 0x69, 0x6E, 0x67, 0x6, 0x62, 0xF6, 0x72, 0x6A, 0x61, 0x64, 0x65, 0x20, 0x61, 0x72, 0x62, // ling.började arb
|
sl@0
|
97 |
0x65, 0x74, 0x61, 0x20, 0x75, 0x74, 0x69, 0x66, 0x72, 0xE5, 0x6E, 0x20, 0x43, 0x2B, 0x2B, 0x20, // eta utifrån C++
|
sl@0
|
98 |
0x6B, 0x6F, 0x6D, 0x70, 0x69, 0x6C, 0x61, 0x74, 0x69, 0x6F, 0x72, 0x6E, 0x2E, 0x20, 0x45, 0x66, // kompilatiorn. Ef
|
sl@0
|
99 |
0x74, 0x65, 0x72, 0x20, 0x65, 0x6E, 0x20, 0x74, 0x69, 0x64, 0x20, 0x69, 0x6E, 0x73, 0xE5, 0x67, // ter en tid insåg
|
sl@0
|
100 |
0x20, 0x68, 0x61, 0x6E, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74, 0x6, 0x62, 0xE4, 0x73, // han att det.bäs
|
sl@0
|
101 |
0x74, 0x61, 0x20, 0x76, 0x6F, 0x72, 0x65, 0x20, 0x61, 0x74, 0x74, 0x20, 0x73, 0x6B, 0x61, 0x70, // ta vore att skap
|
sl@0
|
102 |
0x61, 0x20, 0x65, 0x74, 0x74, 0x20, 0x6E, 0x79, 0x74, 0x74, 0x20, 0x73, 0x70, 0x72, 0xE5, 0x6B, // a ett nytt språk
|
sl@0
|
103 |
0x20, 0x73, 0x6F, 0x6D, 0x20, 0x76, 0x61, 0x72, 0x20, 0x6E, 0xE4, 0x72, 0x61, 0x20, 0x62, 0x65, // som var nära be
|
sl@0
|
104 |
0x73, 0x6C, 0xE4, 0x6B, 0x74, 0x61, 0x74, 0x20, 0x6D, 0x65, 0x64, 0x20, 0x43, 0x2B, 0x2B, 0x2E, // släktat med C++.
|
sl@0
|
105 |
0x20, 0x44, 0x65, 0x74, 0x20, 0x66, 0xF6, 0x72, 0x73, 0x74, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x6E, // Det första namn
|
sl@0
|
106 |
0x65, 0x74, 0x20, 0x73, 0x6F, 0x6D, 0x20, 0x74, 0x65, 0x73, 0x74, 0x61, 0x64, 0x65, 0x73, 0x20, // et som testades
|
sl@0
|
107 |
0x66, 0xF6, 0x72, 0x6, 0x70, 0x61, 0x74, 0x65, 0x6E, 0x74, 0x20, 0x76, 0x61, 0x72, 0x20, 0x4F, // för.patent var O
|
sl@0
|
108 |
0x61, 0x6B, 0x2C, 0x20, 0x64, 0x65, 0x74, 0x74, 0x61, 0x20, 0x6D, 0x69, 0x73, 0x73, 0x6C, 0x79, // ak, detta missly
|
sl@0
|
109 |
0x63, 0x6B, 0x61, 0x64, 0x65, 0x73, 0x20, 0x2D, 0x20, 0x6F, 0x63, 0x68, 0x20, 0x64, 0x65, 0x74, // ckades - och det
|
sl@0
|
110 |
0x20, 0x6E, 0x79, 0x61, 0x20, 0x6E, 0x61, 0x6D, 0x6E, 0x65, 0x74, 0x20, 0x62, 0x6C, 0x65, 0x76, // nya namnet blev
|
sl@0
|
111 |
0x20, 0x4A, 0x61, 0x76, 0x61, 0x2E, 0x6, 0x53, 0x70, 0x72, 0xE5, 0x6B, 0x65, 0x74, 0x20, 0x69, // Java..Språket i
|
sl@0
|
112 |
0x6E, 0x74, 0x72, 0x6F, 0x64, 0x75, 0x63, 0x65, 0x72, 0x61, 0x64, 0x65, 0x73, 0x20, 0x69, 0x20, // ntroducerades i
|
sl@0
|
113 |
0x31, 0x39, 0x39, 0x35, 0x2E, 0x20, 0x53, 0x70, 0x72, 0xE5, 0x6B, 0x65, 0x74, 0x73, 0x20, 0x66, // 1995. Språkets f
|
sl@0
|
114 |
0x72, 0x61, 0x6D, 0x67, 0xE5, 0x6E, 0x67, 0x20, 0x62, 0x65, 0x72, 0x6F, 0x72, 0x20, 0x6D, 0x79, // ramgång beror my
|
sl@0
|
115 |
0x63, 0x6B, 0x65, 0x74, 0x20, 0x70, 0xE5, 0x20, 0x61, 0x74, 0x74, 0x20, 0x64, 0x65, 0x74, 0x20, // cket på att det
|
sl@0
|
116 |
0xE4, 0x72, 0x6, 0x70, 0x6C, 0x61, 0x74, 0x74, 0x66, 0x6F, 0x72, 0x6D, 0x73, 0x6F, 0x62, 0x65, // är.plattformsobe
|
sl@0
|
117 |
0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65, 0x2E, 0x20, 0x4A, 0x61, 0x76, 0x61, 0x20, 0x6B, 0x61, 0x6E, // roende. Java kan
|
sl@0
|
118 |
0x20, 0x62, 0x65, 0x73, 0x6B, 0x72, 0x69, 0x76, 0x61, 0x73, 0x20, 0x73, 0x6F, 0x6D, 0x20, 0x65, // beskrivas som e
|
sl@0
|
119 |
0x6E, 0x6B, 0x65, 0x6C, 0x74, 0x2C, 0x20, 0x6F, 0x62, 0x6A, 0x65, 0x6B, 0x74, 0x6F, 0x72, 0x69, // nkelt, objektori
|
sl@0
|
120 |
0x65, 0x6E, 0x74, 0x65, 0x72, 0x61, 0x74, 0x2C, 0x20, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, // enterat, distrib
|
sl@0
|
121 |
0x75, 0x65, 0x72, 0x61, 0x74, 0x2C, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, // uerat, interpret
|
sl@0
|
122 |
0x65, 0x72, 0x61, 0x6E, 0x64, 0x65, 0x2C, 0x6, 0x72, 0x6F, 0x62, 0x75, 0x73, 0x74, 0x2C, 0x20, // erande,.robust,
|
sl@0
|
123 |
0x73, 0xE4, 0x6B, 0x65, 0x72, 0x74, 0x2C, 0x20, 0x70, 0x6C, 0x61, 0x74, 0x74, 0x66, 0x6F, 0x72, // säkert, plattfor
|
sl@0
|
124 |
0x6D, 0x73, 0x6F, 0x62, 0x65, 0x72, 0x6F, 0x65, 0x6E, 0x64, 0x65, 0x2C, 0x20, 0x70, 0x6F, 0x72, // msoberoende, por
|
sl@0
|
125 |
0x74, 0x61, 0x62, 0x65, 0x6C, 0x74, 0x20, 0x6F, 0x63, 0x68, 0x20, 0x64, 0x79, 0x6E, 0x61, 0x6D, // tabelt och dynam
|
sl@0
|
126 |
0x69, 0x73, 0x6B, 0x74, 0x20, 0x73, 0x70, 0x72, 0xE5, 0x6B, 0x2E, 0x6, 0x6, 0x52, 0x75, 0x73, // iskt språk...Rus
|
sl@0
|
127 |
0x73, 0x69, 0x61, 0x6E, 0x3A, 0x20, 0x415, 0x432, 0x440, 0x43E, 0x43F, 0x430, 0x2C, 0x20, 0x41F, 0x440, // sian: ......, ..
|
sl@0
|
128 |
0x43E, 0x433, 0x440, 0x430, 0x43C, 0x43C, 0x43D, 0x43E, 0x435, 0x20, 0x43E, 0x431, 0x435, 0x441, 0x43F, 0x435,
|
sl@0
|
129 |
0x447, 0x435, 0x43D, 0x438, 0x435, 0x20, 0x2B, 0x20, 0x418, 0x43D, 0x442, 0x435, 0x440, 0x43D, 0x435, 0x442, // ..... + ........
|
sl@0
|
130 |
0x3A, 0x6, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x432, 0x20, 0x433, 0x43B, 0x43E, 0x431, // :.Unicode . ....
|
sl@0
|
131 |
0x430, 0x43B, 0x44C, 0x43D, 0x44B, 0x445, 0x20, 0x43C, 0x430, 0x441, 0x448, 0x442, 0x430, 0x431, 0x430, 0x445,
|
sl@0
|
132 |
0x20, 0x20, 0x6, 0x417, 0x430, 0x440, 0x435, 0x433, 0x438, 0x441, 0x442, 0x440, 0x438, 0x440, 0x443, 0x439,
|
sl@0
|
133 |
0x442, 0x435, 0x441, 0x44C, 0x20, 0x441, 0x435, 0x439, 0x447, 0x430, 0x441, 0x20, 0x43D, 0x430, 0x20, 0x414,
|
sl@0
|
134 |
0x435, 0x441, 0x44F, 0x442, 0x443, 0x44E, 0x20, 0x41C, 0x435, 0x436, 0x434, 0x443, 0x43D, 0x430, 0x440, 0x43E,
|
sl@0
|
135 |
0x434, 0x43D, 0x443, 0x44E, 0x20, 0x41A, 0x43E, 0x43D, 0x444, 0x435, 0x440, 0x435, 0x43D, 0x446, 0x438, 0x44E,
|
sl@0
|
136 |
0x20, 0x43F, 0x43E, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2C, 0x20, 0x43A, 0x43E, 0x442, // .. Unicode, ...
|
sl@0
|
137 |
0x43E, 0x440, 0x430, 0x44F, 0x6, 0x441, 0x43E, 0x441, 0x442, 0x43E, 0x438, 0x442, 0x441, 0x44F, 0x20, 0x31, // .............. 1
|
sl@0
|
138 |
0x30, 0x2D, 0x31, 0x32, 0x20, 0x43C, 0x430, 0x440, 0x442, 0x430, 0x20, 0x31, 0x39, 0x39, 0x37, 0x20, // 0-12 ..... 1997
|
sl@0
|
139 |
0x433, 0x43E, 0x434, 0x430, 0x20, 0x432, 0x20, 0x41C, 0x430, 0x439, 0x43D, 0x446, 0x435, 0x20, 0x432, 0x20,
|
sl@0
|
140 |
0x413, 0x435, 0x440, 0x43C, 0x430, 0x43D, 0x438, 0x438, 0x2E, 0x20, 0x41A, 0x43E, 0x43D, 0x444, 0x435, 0x440, // ......... ......
|
sl@0
|
141 |
0x435, 0x43D, 0x446, 0x438, 0x44F, 0x20, 0x441, 0x43E, 0x431, 0x435, 0x440, 0x435, 0x442, 0x20, 0x448, 0x438,
|
sl@0
|
142 |
0x440, 0x43E, 0x43A, 0x438, 0x439, 0x20, 0x43A, 0x440, 0x443, 0x433, 0x6, 0x44D, 0x43A, 0x441, 0x43F, 0x435,
|
sl@0
|
143 |
0x440, 0x442, 0x43E, 0x432, 0x20, 0x43F, 0x43E, 0x20, 0x432, 0x43E, 0x43F, 0x440, 0x43E, 0x441, 0x430, 0x43C,
|
sl@0
|
144 |
0x20, 0x433, 0x43B, 0x43E, 0x431, 0x430, 0x43B, 0x44C, 0x43D, 0x43E, 0x433, 0x43E, 0x20, 0x418, 0x43D, 0x442,
|
sl@0
|
145 |
0x435, 0x440, 0x43D, 0x435, 0x442, 0x430, 0x20, 0x438, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, // ...... . Unicode
|
sl@0
|
146 |
0x2C, 0x20, 0x43B, 0x43E, 0x43A, 0x430, 0x43B, 0x438, 0x437, 0x430, 0x446, 0x438, 0x438, 0x20, 0x438, 0x20, // , ........... .
|
sl@0
|
147 |
0x438, 0x43D, 0x442, 0x435, 0x440, 0x43D, 0x430, 0x446, 0x438, 0x43E, 0x43D, 0x430, 0x43B, 0x438, 0x437, 0x430,
|
sl@0
|
148 |
0x446, 0x438, 0x438, 0x2C, 0x6, 0x432, 0x43E, 0x43F, 0x43B, 0x43E, 0x449, 0x435, 0x43D, 0x438, 0x44E, 0x20, // ...,...........
|
sl@0
|
149 |
0x438, 0x20, 0x43F, 0x440, 0x438, 0x43C, 0x435, 0x43D, 0x435, 0x43D, 0x438, 0x44E, 0x20, 0x55, 0x6E, 0x69, // . .......... Uni
|
sl@0
|
150 |
0x63, 0x6F, 0x64, 0x65, 0x20, 0x432, 0x20, 0x440, 0x430, 0x437, 0x43B, 0x438, 0x447, 0x43D, 0x44B, 0x445, // code . .........
|
sl@0
|
151 |
0x20, 0x43E, 0x43F, 0x435, 0x440, 0x430, 0x446, 0x438, 0x43E, 0x43D, 0x43D, 0x44B, 0x445, 0x20, 0x441, 0x438,
|
sl@0
|
152 |
0x441, 0x442, 0x435, 0x43C, 0x430, 0x445, 0x20, 0x438, 0x20, 0x43F, 0x440, 0x43E, 0x433, 0x440, 0x430, 0x43C,
|
sl@0
|
153 |
0x43C, 0x43D, 0x44B, 0x445, 0x6, 0x43F, 0x440, 0x438, 0x43B, 0x43E, 0x436, 0x435, 0x43D, 0x438, 0x44F, 0x445,
|
sl@0
|
154 |
0x2C, 0x20, 0x448, 0x440, 0x438, 0x444, 0x442, 0x430, 0x445, 0x2C, 0x20, 0x432, 0x435, 0x440, 0x441, 0x442, // , ......., .....
|
sl@0
|
155 |
0x43A, 0x435, 0x20, 0x438, 0x20, 0x43C, 0x43D, 0x43E, 0x433, 0x43E, 0x44F, 0x437, 0x44B, 0x447, 0x43D, 0x44B,
|
sl@0
|
156 |
0x445, 0x20, 0x43A, 0x43E, 0x43C, 0x43F, 0x44C, 0x44E, 0x442, 0x435, 0x440, 0x43D, 0x44B, 0x445, 0x20, 0x441,
|
sl@0
|
157 |
0x438, 0x441, 0x442, 0x435, 0x43C, 0x430, 0x445, 0x2E, 0x20, 0x20, 0x6, 0x41A, 0x43E, 0x433, 0x434, 0x430, // ........ ......
|
sl@0
|
158 |
0x20, 0x43C, 0x438, 0x440, 0x20, 0x436, 0x435, 0x43B, 0x430, 0x435, 0x442, 0x20, 0x43E, 0x431, 0x449, 0x430,
|
sl@0
|
159 |
0x442, 0x44C, 0x441, 0x44F, 0x2C, 0x20, 0x43E, 0x43D, 0x20, 0x43E, 0x431, 0x449, 0x430, 0x435, 0x442, 0x441, // ...., .. .......
|
sl@0
|
160 |
0x44F, 0x20, 0x43D, 0x430, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x20, 0x6, 0x6, // . .. Unicode ..
|
sl@0
|
161 |
0x41, 0x72, 0x61, 0x62, 0x69, 0x63, 0x3A, 0x20, 0x623, 0x648, 0x631, 0x648, 0x628, 0x627, 0x2C, 0x20, // Arabic: ......,
|
sl@0
|
162 |
0x628, 0x631, 0x645, 0x62C, 0x64A, 0x627, 0x62A, 0x20, 0x627, 0x644, 0x62D, 0x627, 0x633, 0x648, 0x628, 0x20,
|
sl@0
|
163 |
0x2B, 0x20, 0x627, 0x646, 0x62A, 0x631, 0x646, 0x64A, 0x62A, 0x20, 0x3A, 0x6, 0x62A, 0x635, 0x628, 0x62D, // + ....... :.....
|
sl@0
|
164 |
0x20, 0x639, 0x627, 0x644, 0x645, 0x64A, 0x627, 0x20, 0x645, 0x639, 0x20, 0x64A, 0x648, 0x646, 0x64A, 0x643,
|
sl@0
|
165 |
0x648, 0x62F, 0x20, 0x20, 0x6, 0x62A, 0x633, 0x62C, 0x651, 0x644, 0x20, 0x627, 0x644, 0x622, 0x646, 0x20,
|
sl@0
|
166 |
0x644, 0x62D, 0x636, 0x648, 0x631, 0x20, 0x627, 0x644, 0x645, 0x624, 0x62A, 0x645, 0x631, 0x20, 0x627, 0x644,
|
sl@0
|
167 |
0x62F, 0x648, 0x644, 0x64A, 0x20, 0x627, 0x644, 0x639, 0x627, 0x634, 0x631, 0x20, 0x644, 0x64A, 0x648, 0x646,
|
sl@0
|
168 |
0x64A, 0x643, 0x648, 0x62F, 0x2C, 0x20, 0x627, 0x644, 0x630, 0x64A, 0x20, 0x633, 0x64A, 0x639, 0x642, 0x62F, // ...., .... .....
|
sl@0
|
169 |
0x20, 0x641, 0x64A, 0x20, 0x31, 0x30, 0x2D, 0x31, 0x32, 0x6, 0x622, 0x630, 0x627, 0x631, 0x20, 0x31, // .. 10-12..... 1
|
sl@0
|
170 |
0x39, 0x39, 0x37, 0x20, 0x628, 0x645, 0x62F, 0x64A, 0x646, 0x629, 0x20, 0x645, 0x627, 0x64A, 0x646, 0x62A, // 997 ...... .....
|
sl@0
|
171 |
0x633, 0x2C, 0x20, 0x623, 0x644, 0x645, 0x627, 0x646, 0x64A, 0x627, 0x2E, 0x20, 0x648, 0x633, 0x64A, 0x62C, // ., ........ ....
|
sl@0
|
172 |
0x645, 0x639, 0x20, 0x627, 0x644, 0x645, 0x624, 0x62A, 0x645, 0x631, 0x20, 0x628, 0x64A, 0x646, 0x20, 0x62E,
|
sl@0
|
173 |
0x628, 0x631, 0x627, 0x621, 0x20, 0x645, 0x646, 0x20, 0x643, 0x627, 0x641, 0x629, 0x20, 0x642, 0x637, 0x627,
|
sl@0
|
174 |
0x639, 0x627, 0x62A, 0x6, 0x627, 0x644, 0x635, 0x646, 0x627, 0x639, 0x629, 0x20, 0x639, 0x644, 0x649, 0x20,
|
sl@0
|
175 |
0x627, 0x644, 0x634, 0x628, 0x643, 0x629, 0x20, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645, 0x64A, 0x629, 0x20,
|
sl@0
|
176 |
0x627, 0x646, 0x62A, 0x631, 0x646, 0x64A, 0x62A, 0x20, 0x648, 0x64A, 0x648, 0x646, 0x64A, 0x643, 0x648, 0x62F,
|
sl@0
|
177 |
0x2C, 0x20, 0x62D, 0x64A, 0x62B, 0x20, 0x633, 0x62A, 0x62A, 0x645, 0x2C, 0x20, 0x639, 0x644, 0x649, 0x20, // , ... ...., ...
|
sl@0
|
178 |
0x627, 0x644, 0x635, 0x639, 0x64A, 0x62F, 0x64A, 0x646, 0x6, 0x627, 0x644, 0x62F, 0x648, 0x644, 0x64A, 0x20,
|
sl@0
|
179 |
0x648, 0x627, 0x644, 0x645, 0x62D, 0x644, 0x64A, 0x20, 0x639, 0x644, 0x649, 0x20, 0x62D, 0x62F, 0x20, 0x633,
|
sl@0
|
180 |
0x648, 0x627, 0x621, 0x20, 0x645, 0x646, 0x627, 0x642, 0x634, 0x629, 0x20, 0x633, 0x628, 0x644, 0x20, 0x627,
|
sl@0
|
181 |
0x633, 0x62A, 0x62E, 0x62F, 0x627, 0x645, 0x20, 0x64A, 0x648, 0x646, 0x643, 0x648, 0x62F, 0x20, 0x641, 0x64A,
|
sl@0
|
182 |
0x20, 0x627, 0x644, 0x646, 0x638, 0x645, 0x20, 0x627, 0x644, 0x642, 0x627, 0x626, 0x645, 0x629, 0x6, 0x648,
|
sl@0
|
183 |
0x641, 0x64A, 0x645, 0x627, 0x20, 0x64A, 0x62E, 0x635, 0x20, 0x627, 0x644, 0x62A, 0x637, 0x628, 0x64A, 0x642,
|
sl@0
|
184 |
0x627, 0x62A, 0x20, 0x627, 0x644, 0x62D, 0x627, 0x633, 0x648, 0x628, 0x64A, 0x629, 0x2C, 0x20, 0x627, 0x644, // .. ........., ..
|
sl@0
|
185 |
0x62E, 0x637, 0x648, 0x637, 0x2C, 0x20, 0x62A, 0x635, 0x645, 0x64A, 0x645, 0x20, 0x627, 0x644, 0x646, 0x635, // ...., ..... ....
|
sl@0
|
186 |
0x648, 0x635, 0x20, 0x648, 0x627, 0x644, 0x62D, 0x648, 0x633, 0x628, 0x629, 0x20, 0x645, 0x62A, 0x639, 0x62F,
|
sl@0
|
187 |
0x62F, 0x629, 0x20, 0x627, 0x644, 0x644, 0x63A, 0x627, 0x62A, 0x2E, 0x20, 0x20, 0x6, 0x639, 0x646, 0x62F, // .. ....... ....
|
sl@0
|
188 |
0x645, 0x627, 0x20, 0x64A, 0x631, 0x64A, 0x62F, 0x20, 0x627, 0x644, 0x639, 0x627, 0x644, 0x645, 0x20, 0x623,
|
sl@0
|
189 |
0x646, 0x20, 0x64A, 0x62A, 0x643, 0x644, 0x651, 0x645, 0x2C, 0x20, 0x641, 0x647, 0x648, 0x20, 0x64A, 0x62A, // . ......, ... ..
|
sl@0
|
190 |
0x62D, 0x62F, 0x651, 0x62B, 0x20, 0x628, 0x644, 0x63A, 0x629, 0x20, 0x64A, 0x648, 0x646, 0x64A, 0x643, 0x648,
|
sl@0
|
191 |
0x62F, 0x2E, 0x20, 0x20, 0x6, 0x6, 0x43, 0x68, 0x69, 0x6E, 0x65, 0x73, 0x65, 0x20, 0x28, 0x73, // .. ..Chinese (s
|
sl@0
|
192 |
0x69, 0x6D, 0x70, 0x6C, 0x69, 0x66, 0x69, 0x65, 0x64, 0x29, 0x3B, 0x20, 0x6B27, 0x6D32, 0xFF0C, 0x8F6F, // implified); ....
|
sl@0
|
193 |
0x4EF6, 0xFF0B, 0x4E92, 0x8054, 0x7F51, 0x6, 0x7528, 0x7EDF, 0x4E00, 0x7801, 0x20, 0x28, 0x55, 0x6E, 0x69, 0x63, // .......... (Unic
|
sl@0
|
194 |
0x6F, 0x64, 0x65, 0x29, 0x20, 0x8D70, 0x904D, 0x4E16, 0x754C, 0x20, 0x20, 0x6, 0x5C06, 0x4E8E, 0x31, 0x39, // ode) .... ...19
|
sl@0
|
195 |
0x39, 0x37, 0x5E74, 0x20, 0x33, 0x20, 0x6708, 0x31, 0x30, 0x65E5, 0xFF0D, 0x31, 0x32, 0x65E5, 0x5728, 0x5FB7, // 97. 3 .10..12...
|
sl@0
|
196 |
0x56FD, 0x20, 0x4D, 0x61, 0x69, 0x6E, 0x7A, 0x20, 0x5E02, 0x4E3E, 0x884C, 0x7684, 0x7B2C, 0x5341, 0x5C4A, 0x7EDF, // . Mainz ........
|
sl@0
|
197 |
0x4E00, 0x7801, 0x56FD, 0x9645, 0x7814, 0x8BA8, 0x4F1A, 0x73B0, 0x5728, 0x5F00, 0x59CB, 0x6CE8, 0x518C, 0x3002, 0x6, 0x672C,
|
sl@0
|
198 |
0x6B21, 0x4F1A, 0x8BAE, 0x5C06, 0x6C47, 0x96C6, 0x5404, 0x65B9, 0x9762, 0x7684, 0x4E13, 0x5BB6, 0x3002, 0x6D89, 0x53CA, 0x7684,
|
sl@0
|
199 |
0x9886, 0x57DF, 0x5305, 0x62EC, 0xFF1A, 0x56FD, 0x9645, 0x4E92, 0x8054, 0x7F51, 0x548C, 0x7EDF, 0x4E00, 0x7801, 0xFF0C, 0x56FD,
|
sl@0
|
200 |
0x9645, 0x5316, 0x548C, 0x672C, 0x5730, 0x5316, 0xFF0C, 0x6, 0x7EDF, 0x4E00, 0x7801, 0x5728, 0x64CD, 0x4F5C, 0x7CFB, 0x7EDF,
|
sl@0
|
201 |
0x548C, 0x5E94, 0x7528, 0x8F6F, 0x4EF6, 0x4E2D, 0x7684, 0x5B9E, 0x73B0, 0xFF0C, 0x5B57, 0x578B, 0xFF0C, 0x6587, 0x672C, 0x683C,
|
sl@0
|
202 |
0x5F0F, 0x4EE5, 0x53CA, 0x591A, 0x6587, 0x79CD, 0x8BA1, 0x7B97, 0x7B49, 0x3002, 0x20, 0x20, 0x6, 0x5F53, 0x4E16, 0x754C,
|
sl@0
|
203 |
0x9700, 0x8981, 0x6C9F, 0x901A, 0x65F6, 0xFF0C, 0x8BF7, 0x7528, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0xFF01, // ........Unicode.
|
sl@0
|
204 |
0x20, 0x20, 0x6, 0x6, 0x43, 0x68, 0x69, 0x6E, 0x65, 0x73, 0x65, 0x20, 0x28, 0x74, 0x72, 0x61, // ..Chinese (tra
|
sl@0
|
205 |
0x64, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x6C, 0x29, 0x20, 0x6B50, 0x6D32, 0xFF0C, 0x8EDF, 0x9AD4, 0x53CA, // ditional) ......
|
sl@0
|
206 |
0x7DB2, 0x969B, 0x7DB2, 0x8DEF, 0xFF1A, 0x6, 0x8B93, 0x7D71, 0x4E00, 0x78BC, 0xFF08, 0x55, 0x6E, 0x69, 0x63, 0x6F, // ...........Unico
|
sl@0
|
207 |
0x64, 0x65, 0xFF09, 0x9818, 0x4F60, 0x9032, 0x5165, 0x5168, 0x4E16, 0x754C, 0x20, 0x20, 0x6, 0x4F60, 0x73FE, 0x5728, // de........ ....
|
sl@0
|
208 |
0x5C31, 0x61C9, 0x5831, 0x540D, 0x5C07, 0x5728, 0xFF11, 0xFF19, 0xFF19, 0xFF17, 0x5E74, 0xFF13, 0x6708, 0xFF11, 0xFF10, 0x81F3,
|
sl@0
|
209 |
0xFF11, 0xFF12, 0x65E5, 0x65BC, 0x5FB7, 0x570B, 0x7F8E, 0x59FF, 0x57CE, 0xFF08, 0x4D, 0x61, 0x69, 0x6E, 0x7A, 0xFF09, // ..........Mainz.
|
sl@0
|
210 |
0x6, 0x53EC, 0x958B, 0x7684, 0x7B2C, 0x5341, 0x5C46, 0x570B, 0x969B, 0x7D71, 0x4E00, 0x78BC, 0x7814, 0x8A0E, 0x6703, 0x3002,
|
sl@0
|
211 |
0x672C, 0x6B21, 0x7814, 0x8A0E, 0x6703, 0x5C07, 0x9080, 0x8ACB, 0x591A, 0x4F4D, 0x696D, 0x754C, 0x5C08, 0x5BB6, 0x7814, 0x8A0E,
|
sl@0
|
212 |
0x95DC, 0x65BC, 0x5168, 0x7403, 0x7DB2, 0x969B, 0x7DB2, 0x8DEF, 0x53CA, 0x7D71, 0x4E00, 0x78BC, 0x767C, 0x5C55, 0x3001, 0x6,
|
sl@0
|
213 |
0x570B, 0x969B, 0x5316, 0x53CA, 0x672C, 0x571F, 0x5316, 0x3001, 0x652F, 0x63F4, 0x7D71, 0x4E00, 0x78BC, 0x7684, 0x4F5C, 0x696D,
|
sl@0
|
214 |
0x7CFB, 0x7D71, 0x53CA, 0x61C9, 0x7528, 0x7A0B, 0x5F0F, 0x3001, 0x5B57, 0x578B, 0x3001, 0x6587, 0x5B57, 0x6392, 0x7248, 0x3001,
|
sl@0
|
215 |
0x96FB, 0x8166, 0x591A, 0x570B, 0x8A9E, 0x6587, 0x5316, 0x7B49, 0x591A, 0x9805, 0x8AB2, 0x984C, 0x3002, 0x20, 0x20, 0x6,
|
sl@0
|
216 |
0x7576, 0x4E16, 0x754C, 0x9700, 0x8981, 0x6E9D, 0x901A, 0x6642, 0xFF0C, 0x8ACB, 0x7528, 0x7D71, 0x4E00, 0x78BC, 0xFF08, 0x55, // ...............U
|
sl@0
|
217 |
0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0xFF09, 0x20, 0x20, 0x6, 0x6, 0x47, 0x65, 0x6F, 0x72, 0x67, // nicode. ..Georg
|
sl@0
|
218 |
0x69, 0x61, 0x6E, 0x3A, 0x20, 0x10D4, 0x10D5, 0x10E0, 0x10DD, 0x10DE, 0x10D0, 0x2C, 0x20, 0x10DE, 0x10E0, 0x10DD, // ian: ......, ...
|
sl@0
|
219 |
0x10D2, 0x10E0, 0x10D0, 0x10DB, 0x10E3, 0x10DA, 0x10D8, 0x20, 0x10E3, 0x10D6, 0x10E0, 0x10E3, 0x10DC, 0x10D5, 0x10D4, 0x10DA,
|
sl@0
|
220 |
0x10E7, 0x10DD, 0x10E4, 0x10D0, 0x20, 0x2B, 0x20, 0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D4, 0x10E2, 0x10D8, // .... + .........
|
sl@0
|
221 |
0x3A, 0x6, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x20, 0x10DB, 0x10D7, 0x10D4, 0x10DA, // :.Unicode-. ....
|
sl@0
|
222 |
0x10E1, 0x20, 0x10DB, 0x10E1, 0x10DD, 0x10E4, 0x10DA, 0x10D8, 0x10DD, 0x10E8, 0x10D8, 0x20, 0x20, 0x6, 0x10D2, 0x10D7,
|
sl@0
|
223 |
0x10EE, 0x10DD, 0x10D5, 0x10D7, 0x20, 0x10D0, 0x10EE, 0x10DA, 0x10D0, 0x10D5, 0x10D4, 0x20, 0x10D2, 0x10D0, 0x10D8, 0x10D0,
|
sl@0
|
224 |
0x10E0, 0x10DD, 0x10D7, 0x20, 0x10E0, 0x10D4, 0x10D2, 0x10D8, 0x10E1, 0x10E2, 0x10E0, 0x10D0, 0x10EA, 0x10D8, 0x10D0, 0x20,
|
sl@0
|
225 |
0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x20, 0x10DB, 0x10D4, 0x10D0, 0x10D7, 0x10D4, // Unicode-.. .....
|
sl@0
|
226 |
0x6, 0x10E1, 0x10D0, 0x10D4, 0x10E0, 0x10D7, 0x10D0, 0x10E8, 0x10DD, 0x10E0, 0x10D8, 0x10E1, 0x10DD, 0x20, 0x10D9, 0x10DD,
|
sl@0
|
227 |
0x10DC, 0x10E4, 0x10D4, 0x10E0, 0x10D4, 0x10DC, 0x10EA, 0x10D8, 0x10D0, 0x10D6, 0x10D4, 0x20, 0x10D3, 0x10D0, 0x10E1, 0x10D0,
|
sl@0
|
228 |
0x10E1, 0x10EC, 0x10E0, 0x10D4, 0x10D1, 0x10D0, 0x10D3, 0x2C, 0x20, 0x10E0, 0x10DD, 0x10DB, 0x10D4, 0x10DA, 0x10D8, 0x10EA, // ......., .......
|
sl@0
|
229 |
0x6, 0x10D2, 0x10D0, 0x10D8, 0x10DB, 0x10D0, 0x10E0, 0x10D7, 0x10D4, 0x10D1, 0x10D0, 0x20, 0x31, 0x30, 0x2D, 0x31, // ........... 10-1
|
sl@0
|
230 |
0x32, 0x20, 0x10DB, 0x10D0, 0x10E0, 0x10E2, 0x10E1, 0x2C, 0x20, 0x10E5, 0x2E, 0x20, 0x10DB, 0x10D0, 0x10D8, 0x10DC, // 2 ....., .. ....
|
sl@0
|
231 |
0x10EA, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10D2, 0x10D4, 0x10E0, 0x10DB, 0x10D0, 0x10DC, 0x10D8, 0x10D0, 0x10E8, 0x10D8, 0x2E, // ..., ...........
|
sl@0
|
232 |
0x6, 0x10D9, 0x10DD, 0x10DC, 0x10E4, 0x10D4, 0x10E0, 0x10D4, 0x10DC, 0x10EA, 0x10D8, 0x10D0, 0x20, 0x10E8, 0x10D4, 0x10F0,
|
sl@0
|
233 |
0x10D9, 0x10E0, 0x10D4, 0x10D1, 0x10E1, 0x20, 0x10D4, 0x10E0, 0x10D7, 0x10D0, 0x10D3, 0x20, 0x10DB, 0x10E1, 0x10DD, 0x10E4,
|
sl@0
|
234 |
0x10DA, 0x10D8, 0x10DD, 0x10E1, 0x20, 0x10D4, 0x10E5, 0x10E1, 0x10DE, 0x10D4, 0x10E0, 0x10E2, 0x10D4, 0x10D1, 0x10E1, 0x20,
|
sl@0
|
235 |
0x10D8, 0x10E1, 0x10D4, 0x10D7, 0x6, 0x10D3, 0x10D0, 0x10E0, 0x10D2, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x20, 0x10E0, 0x10DD,
|
sl@0
|
236 |
0x10D2, 0x10DD, 0x10E0, 0x10D8, 0x10EA, 0x10D0, 0x10D0, 0x20, 0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D4, 0x10E2,
|
sl@0
|
237 |
0x10D8, 0x20, 0x10D3, 0x10D0, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x2C, 0x6, // . .. Unicode-.,.
|
sl@0
|
238 |
0x10D8, 0x10DC, 0x10E2, 0x10D4, 0x10E0, 0x10DC, 0x10D0, 0x10EA, 0x10D8, 0x10DD, 0x10DC, 0x10D0, 0x10DA, 0x10D8, 0x10D6, 0x10D0,
|
sl@0
|
239 |
0x10EA, 0x10D8, 0x10D0, 0x20, 0x10D3, 0x10D0, 0x20, 0x10DA, 0x10DD, 0x10D9, 0x10D0, 0x10DA, 0x10D8, 0x10D6, 0x10D0, 0x10EA,
|
sl@0
|
240 |
0x10D8, 0x10D0, 0x2C, 0x20, 0x55, 0x6E, 0x69, 0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x6, 0x10D2, // .., Unicode-....
|
sl@0
|
241 |
0x10D0, 0x10DB, 0x10DD, 0x10E7, 0x10D4, 0x10DC, 0x10D4, 0x10D1, 0x10D0, 0x20, 0x10DD, 0x10DE, 0x10D4, 0x10E0, 0x10D0, 0x10EA,
|
sl@0
|
242 |
0x10D8, 0x10E3, 0x10DA, 0x20, 0x10E1, 0x10D8, 0x10E1, 0x10E2, 0x10D4, 0x10DB, 0x10D4, 0x10D1, 0x10E1, 0x10D0, 0x2C, 0x20, // ... ..........,
|
sl@0
|
243 |
0x10D3, 0x10D0, 0x20, 0x10D2, 0x10D0, 0x10DB, 0x10DD, 0x10E7, 0x10D4, 0x10DC, 0x10D4, 0x10D1, 0x10D8, 0x10D7, 0x6, 0x10DE,
|
sl@0
|
244 |
0x10E0, 0x10DD, 0x10D2, 0x10E0, 0x10D0, 0x10DB, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10E8, 0x10E0, 0x10D8, 0x10E4, // .........., ....
|
sl@0
|
245 |
0x10E2, 0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2C, 0x20, 0x10E2, 0x10D4, 0x10E5, 0x10E1, 0x10E2, 0x10D4, 0x10D1, 0x10D8, 0x10E1, // ....., .........
|
sl@0
|
246 |
0x20, 0x10D3, 0x10D0, 0x10DB, 0x10E3, 0x10E8, 0x10D0, 0x10D5, 0x10D4, 0x10D1, 0x10D0, 0x10E1, 0x10D0, 0x20, 0x10D3, 0x10D0,
|
sl@0
|
247 |
0x6, 0x10DB, 0x10E0, 0x10D0, 0x10D5, 0x10D0, 0x10DA, 0x10D4, 0x10DC, 0x10DD, 0x10D5, 0x10D0, 0x10DC, 0x20, 0x10D9, 0x10DD,
|
sl@0
|
248 |
0x10DB, 0x10DE, 0x10D8, 0x10E3, 0x10E2, 0x10D4, 0x10E0, 0x10E3, 0x10DA, 0x20, 0x10E1, 0x10D8, 0x10E1, 0x10E2, 0x10D4, 0x10DB,
|
sl@0
|
249 |
0x10D4, 0x10D1, 0x10E8, 0x10D8, 0x2E, 0x20, 0x20, 0x6, 0x10E0, 0x10DD, 0x10D3, 0x10D4, 0x10E1, 0x10D0, 0x10EA, 0x20, // ..... ........
|
sl@0
|
250 |
0x10DB, 0x10E1, 0x10DD, 0x10E4, 0x10DA, 0x10D8, 0x10DD, 0x10E1, 0x20, 0x10E3, 0x10E0, 0x10D7, 0x10D8, 0x10E0, 0x10D7, 0x10DD,
|
sl@0
|
251 |
0x10D1, 0x10D0, 0x20, 0x10E1, 0x10E3, 0x10E0, 0x10E1, 0x2C, 0x20, 0x10D8, 0x10D2, 0x10D8, 0x20, 0x55, 0x6E, 0x69, // .. ...., ... Uni
|
sl@0
|
252 |
0x63, 0x6F, 0x64, 0x65, 0x2D, 0x10D8, 0x10E1, 0x20, 0x10D4, 0x10DC, 0x10D0, 0x10D6, 0x10D4, 0x6, 0x10DA, 0x10D0, // code-.. ........
|
sl@0
|
253 |
0x10DE, 0x10D0, 0x10E0, 0x10D0, 0x10D9, 0x10DD, 0x10D1, 0x10E1, 0x20, 0x20, 0x6, 0x6
|
sl@0
|
254 |
}; // phew!
|
sl@0
|
255 |
|
sl@0
|
256 |
const TInt UnicodeDataSize = sizeof(UnicodeData) / sizeof(UnicodeData[0]);
|
sl@0
|
257 |
|
sl@0
|
258 |
static TBuf8<UnicodeDataSize * 2> CompressedData;
|
sl@0
|
259 |
static TBuf16<UnicodeDataSize * 2> ExpandedData;
|
sl@0
|
260 |
|
sl@0
|
261 |
static void PerformTestL(const TUint16* aData,TInt aDataSize,
|
sl@0
|
262 |
TBool aCompStreamOutput,TBool aCompStreamInput,TBool aCompBreak,
|
sl@0
|
263 |
TBool aExpStreamOutput,TBool aExpStreamInput,TBool aExpBreak)
|
sl@0
|
264 |
{
|
sl@0
|
265 |
test.Printf(_L("compress %d words from %s to %s in %s\n"),aDataSize,
|
sl@0
|
266 |
aCompStreamInput ? _S("stream") : _S("buffer"),
|
sl@0
|
267 |
aCompStreamOutput ? _S("stream") : _S("buffer"),
|
sl@0
|
268 |
aCompBreak ? _S("two sections") : _S("one section"));
|
sl@0
|
269 |
|
sl@0
|
270 |
// Compress
|
sl@0
|
271 |
TPtrC8 comp_input((const TUint8*)aData,aDataSize * 2);
|
sl@0
|
272 |
RDesReadStream comp_input_stream(comp_input);
|
sl@0
|
273 |
TMemoryStreamUnicodeSource comp_input_stream_source(comp_input_stream);
|
sl@0
|
274 |
TMemoryUnicodeSource comp_input_memory_source(aData);
|
sl@0
|
275 |
MUnicodeSource& comp_source = aCompStreamInput ? (MUnicodeSource&)comp_input_stream_source : (MUnicodeSource&)comp_input_memory_source;
|
sl@0
|
276 |
int comp_output_bytes = aCompBreak ? aDataSize / 3 : KMaxTInt;
|
sl@0
|
277 |
int in1 = 0, in2 = 0, out1 = 0, out2 = 0, out3 = 0;
|
sl@0
|
278 |
TUnicodeCompressor compressor;
|
sl@0
|
279 |
if (aCompStreamOutput)
|
sl@0
|
280 |
{
|
sl@0
|
281 |
RDesWriteStream comp_output_stream(CompressedData);
|
sl@0
|
282 |
compressor.CompressL(comp_output_stream,comp_source,comp_output_bytes,aDataSize,&out1,&in1);
|
sl@0
|
283 |
if (aCompBreak)
|
sl@0
|
284 |
compressor.CompressL(comp_output_stream,comp_source,KMaxTInt,aDataSize - in1,&out2,&in2);
|
sl@0
|
285 |
compressor.FlushL(comp_output_stream,KMaxTInt,out3);
|
sl@0
|
286 |
}
|
sl@0
|
287 |
else
|
sl@0
|
288 |
{
|
sl@0
|
289 |
TUint8* p = (TUint8*)CompressedData.Ptr();
|
sl@0
|
290 |
compressor.CompressL(p,comp_source,comp_output_bytes,aDataSize,&out1,&in1);
|
sl@0
|
291 |
if (aCompBreak)
|
sl@0
|
292 |
compressor.CompressL(p + out1,comp_source,KMaxTInt,aDataSize - in1,&out2,&in2);
|
sl@0
|
293 |
compressor.FlushL(p + out1 + out2,KMaxTInt,out3);
|
sl@0
|
294 |
}
|
sl@0
|
295 |
int compressed_size = out1 + out2 + out3;
|
sl@0
|
296 |
CompressedData.SetLength(compressed_size);
|
sl@0
|
297 |
|
sl@0
|
298 |
// Expand
|
sl@0
|
299 |
test.Printf(_L("expand %d bytes from %s to %s in %s\n"),compressed_size,
|
sl@0
|
300 |
aExpStreamInput ? _S("stream") : _S("buffer"),
|
sl@0
|
301 |
aExpStreamOutput ? _S("stream") : _S("buffer"),
|
sl@0
|
302 |
aExpBreak ? _S("two sections") : _S("one section"));
|
sl@0
|
303 |
TPtr8 exp_output((TUint8*)ExpandedData.Ptr(),aDataSize * 2);
|
sl@0
|
304 |
RDesWriteStream exp_output_stream(exp_output);
|
sl@0
|
305 |
TMemoryStreamUnicodeSink exp_output_stream_sink(exp_output_stream);
|
sl@0
|
306 |
TMemoryUnicodeSink exp_output_memory_sink((TUint16*)ExpandedData.Ptr());
|
sl@0
|
307 |
MUnicodeSink& exp_sink = aExpStreamOutput ? (MUnicodeSink&)exp_output_stream_sink : (MUnicodeSink&)exp_output_memory_sink;
|
sl@0
|
308 |
int exp_input_bytes = aExpBreak ? compressed_size / 3 : compressed_size;
|
sl@0
|
309 |
TUnicodeExpander expander;
|
sl@0
|
310 |
in1 = in2 = out1 = out2 = out3 = 0;
|
sl@0
|
311 |
if (aExpStreamInput)
|
sl@0
|
312 |
{
|
sl@0
|
313 |
RDesReadStream exp_input_stream1(CompressedData);
|
sl@0
|
314 |
(void)expander.ExpandedSizeL(exp_input_stream1, CompressedData.Length() );
|
sl@0
|
315 |
RDesReadStream exp_input_stream(CompressedData);
|
sl@0
|
316 |
TRAPD(r, expander.ExpandL(exp_sink,exp_input_stream,KMaxTInt,exp_input_bytes,&out1,&in1));
|
sl@0
|
317 |
test(r==KErrNone);
|
sl@0
|
318 |
if (aExpBreak)
|
sl@0
|
319 |
expander.ExpandL(exp_sink,exp_input_stream,KMaxTInt,compressed_size - exp_input_bytes,&out2,&in2);
|
sl@0
|
320 |
expander.FlushL(exp_sink,KMaxTInt,out3);
|
sl@0
|
321 |
}
|
sl@0
|
322 |
else
|
sl@0
|
323 |
{
|
sl@0
|
324 |
const TUint8* p = CompressedData.Ptr();
|
sl@0
|
325 |
expander.ExpandL(exp_sink,p,KMaxTInt,exp_input_bytes,&out1,&in1);
|
sl@0
|
326 |
if (aExpBreak)
|
sl@0
|
327 |
expander.ExpandL(exp_sink,p + in1,KMaxTInt,compressed_size - exp_input_bytes,&out2,&in2);
|
sl@0
|
328 |
expander.FlushL(exp_sink,KMaxTInt,out3);
|
sl@0
|
329 |
}
|
sl@0
|
330 |
int expanded_size = out1 + out2 + out3;
|
sl@0
|
331 |
ExpandedData.SetLength(expanded_size);
|
sl@0
|
332 |
|
sl@0
|
333 |
// Compare original data with data that was compressed then expanded.
|
sl@0
|
334 |
TPtrC16 original_data(aData,aDataSize);
|
sl@0
|
335 |
test(ExpandedData == original_data);
|
sl@0
|
336 |
}
|
sl@0
|
337 |
|
sl@0
|
338 |
static const TUint16 UnicodeData2[] =
|
sl@0
|
339 |
{
|
sl@0
|
340 |
0x61, 0x62, 0x62, 0x2029
|
sl@0
|
341 |
};
|
sl@0
|
342 |
const TInt UnicodeData2Size = sizeof(UnicodeData2) / sizeof(UnicodeData2[0]);
|
sl@0
|
343 |
|
sl@0
|
344 |
/**
|
sl@0
|
345 |
@SYMTestCaseID SYSLIB-STORE-CT-1218
|
sl@0
|
346 |
@SYMTestCaseDesc Tests for the defect number EDNATHE-4JYFYQ
|
sl@0
|
347 |
@SYMTestPriority High
|
sl@0
|
348 |
@SYMTestActions Compress and expand with a flush.Check for the integrity of the expanded data with the original data
|
sl@0
|
349 |
@SYMTestExpectedResults Test must not fail
|
sl@0
|
350 |
@SYMREQ REQ0000
|
sl@0
|
351 |
*/
|
sl@0
|
352 |
static void TestFlushL()
|
sl@0
|
353 |
{
|
sl@0
|
354 |
test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-CT-1218 "));
|
sl@0
|
355 |
test.Printf(_L("compress into too small buffer then flush (defect EDNATHE-4JYFYQ)\n"));
|
sl@0
|
356 |
|
sl@0
|
357 |
// Compress
|
sl@0
|
358 |
TMemoryUnicodeSource comp_source(UnicodeData2);
|
sl@0
|
359 |
int bytes_needed = TUnicodeCompressor::CompressedSizeL(comp_source,UnicodeData2Size);
|
sl@0
|
360 |
TUnicodeCompressor compressor;
|
sl@0
|
361 |
TUint8* p = (TUint8*)CompressedData.Ptr();
|
sl@0
|
362 |
int out1, out2;
|
sl@0
|
363 |
comp_source = TMemoryUnicodeSource(UnicodeData2); // reinitialise comp_source; pointer changed by CompressedSizeL
|
sl@0
|
364 |
compressor.CompressL(p,comp_source,bytes_needed - 1,UnicodeData2Size,&out1);
|
sl@0
|
365 |
compressor.FlushL(p + out1,KMaxTInt,out2);
|
sl@0
|
366 |
int compressed_size = out1 + out2;
|
sl@0
|
367 |
CompressedData.SetLength(compressed_size);
|
sl@0
|
368 |
|
sl@0
|
369 |
// Expand
|
sl@0
|
370 |
TMemoryUnicodeSink exp_sink((TUint16*)ExpandedData.Ptr());
|
sl@0
|
371 |
TUnicodeExpander expander;
|
sl@0
|
372 |
const TUint8* q = CompressedData.Ptr();
|
sl@0
|
373 |
expander.ExpandL(exp_sink,q,KMaxTInt,compressed_size,&out1);
|
sl@0
|
374 |
expander.FlushL(exp_sink,KMaxTInt,out2);
|
sl@0
|
375 |
int expanded_size = out1 + out2;
|
sl@0
|
376 |
ExpandedData.SetLength(expanded_size);
|
sl@0
|
377 |
|
sl@0
|
378 |
// Compare original data with data that was compressed then expanded.
|
sl@0
|
379 |
TPtrC16 original_data(UnicodeData2,UnicodeData2Size);
|
sl@0
|
380 |
test(ExpandedData == original_data);
|
sl@0
|
381 |
}
|
sl@0
|
382 |
|
sl@0
|
383 |
void DoDEF113513L()
|
sl@0
|
384 |
{
|
sl@0
|
385 |
// Compress
|
sl@0
|
386 |
TBuf<2> unicodeBuf;
|
sl@0
|
387 |
|
sl@0
|
388 |
// To switch to iUnicodeMode = 1
|
sl@0
|
389 |
// Condition 1:
|
sl@0
|
390 |
// DynamicWindowOffsetIndex(aCode)
|
sl@0
|
391 |
// if (aCode < 0x0080)
|
sl@0
|
392 |
// if (aCode >= 0x3400 && aCode <= 0xDFFF)
|
sl@0
|
393 |
// return KErrNotFound;
|
sl@0
|
394 |
// Condition 2:
|
sl@0
|
395 |
// if (aCode >= iStaticWindow[i] && aCode < iStaticWindow[i] + 128)
|
sl@0
|
396 |
// HandleUByteL conditions
|
sl@0
|
397 |
// aByte <= 0xDF || aByte >= 0xF3
|
sl@0
|
398 |
// aByte == UQU
|
sl@0
|
399 |
// aByte >= UC0 && aByte <= UC0 + 7
|
sl@0
|
400 |
// aByte >= UD0 && aByte <= UD0 + 7
|
sl@0
|
401 |
// aByte == UDX / 0xF1
|
sl@0
|
402 |
unicodeBuf.Append(0xDFFE);
|
sl@0
|
403 |
unicodeBuf.Append(0xDFFE);
|
sl@0
|
404 |
|
sl@0
|
405 |
TBuf8<20> compBuf;
|
sl@0
|
406 |
RDesWriteStream strm1(compBuf);
|
sl@0
|
407 |
strm1 << unicodeBuf;
|
sl@0
|
408 |
|
sl@0
|
409 |
strm1.CommitL();
|
sl@0
|
410 |
strm1.Close();
|
sl@0
|
411 |
//Corrupt the compressed data
|
sl@0
|
412 |
compBuf[2] = 0xF2;
|
sl@0
|
413 |
compBuf[3] = 0xF2;
|
sl@0
|
414 |
|
sl@0
|
415 |
|
sl@0
|
416 |
// Decompress
|
sl@0
|
417 |
TBuf<20> resBuf;
|
sl@0
|
418 |
RDesReadStream strm2(compBuf);
|
sl@0
|
419 |
strm2 >> resBuf;//Should not panic here!
|
sl@0
|
420 |
strm2.Close();
|
sl@0
|
421 |
|
sl@0
|
422 |
}
|
sl@0
|
423 |
|
sl@0
|
424 |
/**
|
sl@0
|
425 |
@SYMTestCaseID SYSLIB-STORE-UT-4004
|
sl@0
|
426 |
@SYMTestCaseDesc Test for DEF113513: "TUnicodeCompressor/Expander function should not panic unnecessary".
|
sl@0
|
427 |
1) The test writes a unicode string to a stream, with a descriptor used as a stream store.
|
sl@0
|
428 |
2) The test uses the overloaded "<<" operator, so the string will be compressed during the internalization.
|
sl@0
|
429 |
3) Then the test corrupts the stream store (the descriptor) and attempts to externalize the string.
|
sl@0
|
430 |
4) If the defect is fixed. the ">>" operator should not panic the test application.
|
sl@0
|
431 |
@SYMTestPriority Medium
|
sl@0
|
432 |
@SYMTestActions Test for DEF113513: "TUnicodeCompressor/Expander function should not panic unnecessary".
|
sl@0
|
433 |
@SYMTestExpectedResults The test must not fail or panic
|
sl@0
|
434 |
@SYMDEF
|
sl@0
|
435 |
*/
|
sl@0
|
436 |
void DEF113513()
|
sl@0
|
437 |
{
|
sl@0
|
438 |
TRAPD(err, DoDEF113513L());
|
sl@0
|
439 |
test(err == KErrCorrupt);
|
sl@0
|
440 |
}
|
sl@0
|
441 |
|
sl@0
|
442 |
|
sl@0
|
443 |
/**
|
sl@0
|
444 |
@SYMTestCaseID SYSLIB-STORE-CT-1217
|
sl@0
|
445 |
@SYMTestCaseDesc Standard Unicode compression scheme test
|
sl@0
|
446 |
@SYMTestPriority High
|
sl@0
|
447 |
@SYMTestActions Attempt for compressing and expanding the data.Test for the integrity of expanded data with the original data.
|
sl@0
|
448 |
@SYMTestExpectedResults Test must not fail
|
sl@0
|
449 |
@SYMREQ REQ0000
|
sl@0
|
450 |
*/
|
sl@0
|
451 |
static void PerformTestsL()
|
sl@0
|
452 |
{
|
sl@0
|
453 |
const TUint16* data = NULL;
|
sl@0
|
454 |
int data_size = 0;
|
sl@0
|
455 |
int i;
|
sl@0
|
456 |
|
sl@0
|
457 |
test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-CT-1217 "));
|
sl@0
|
458 |
|
sl@0
|
459 |
// Iterate over all possible values of the 6 Boolean parameters to PerformTest, varying the start and size of the data
|
sl@0
|
460 |
for (i = 0; i < 64; i++)
|
sl@0
|
461 |
{
|
sl@0
|
462 |
int start = (9753 * (i % 7)) % UnicodeDataSize;
|
sl@0
|
463 |
data = UnicodeData + start;
|
sl@0
|
464 |
data_size = UnicodeDataSize - start;
|
sl@0
|
465 |
|
sl@0
|
466 |
PerformTestL(data,data_size,i & 32,i & 16,i & 8,i & 4,i & 2,i & 1);
|
sl@0
|
467 |
}
|
sl@0
|
468 |
|
sl@0
|
469 |
// Do everything again with zero and small amounts of data.
|
sl@0
|
470 |
for (i = 0; i < 64; i++)
|
sl@0
|
471 |
{
|
sl@0
|
472 |
int start = (7953 * (i % 7)) % UnicodeDataSize;
|
sl@0
|
473 |
data = UnicodeData + start;
|
sl@0
|
474 |
data_size = i % 9;
|
sl@0
|
475 |
|
sl@0
|
476 |
PerformTestL(data,data_size,i & 32,i & 16,i & 8,i & 4,i & 2,i & 1);
|
sl@0
|
477 |
}
|
sl@0
|
478 |
|
sl@0
|
479 |
// Do tests added in response to defects.
|
sl@0
|
480 |
TestFlushL();
|
sl@0
|
481 |
}
|
sl@0
|
482 |
|
sl@0
|
483 |
static void SetupCleanup()
|
sl@0
|
484 |
{
|
sl@0
|
485 |
TheTrapCleanup = CTrapCleanup::New();
|
sl@0
|
486 |
test(TheTrapCleanup != NULL);
|
sl@0
|
487 |
TRAPD(r,\
|
sl@0
|
488 |
{\
|
sl@0
|
489 |
for (TInt i = KTestCleanupStack;i>0;i--)\
|
sl@0
|
490 |
CleanupStack::PushL((TAny*)1);\
|
sl@0
|
491 |
test(r == KErrNone);\
|
sl@0
|
492 |
CleanupStack::Pop(KTestCleanupStack);\
|
sl@0
|
493 |
});
|
sl@0
|
494 |
test(r == KErrNone);
|
sl@0
|
495 |
}
|
sl@0
|
496 |
|
sl@0
|
497 |
|
sl@0
|
498 |
void DoPDEF112374L()
|
sl@0
|
499 |
{
|
sl@0
|
500 |
// Compress
|
sl@0
|
501 |
_LIT(KTestStr, "0123456789");
|
sl@0
|
502 |
TBuf8<20> compBuf;
|
sl@0
|
503 |
RDesWriteStream strm1(compBuf);
|
sl@0
|
504 |
strm1 << KTestStr;
|
sl@0
|
505 |
strm1.CommitL();
|
sl@0
|
506 |
strm1.Close();
|
sl@0
|
507 |
//Corrupt the compressed data
|
sl@0
|
508 |
compBuf[0] = 0x0C;
|
sl@0
|
509 |
compBuf[1] = 0x0C;
|
sl@0
|
510 |
// Decompress
|
sl@0
|
511 |
TBuf<20> resBuf;
|
sl@0
|
512 |
RDesReadStream strm2(compBuf);
|
sl@0
|
513 |
strm2 >> resBuf;//Should not panic here!
|
sl@0
|
514 |
strm2.Close();
|
sl@0
|
515 |
}
|
sl@0
|
516 |
|
sl@0
|
517 |
/**
|
sl@0
|
518 |
@SYMTestCaseID SYSLIB-STORE-UT-4001
|
sl@0
|
519 |
@SYMTestCaseDesc Test for PDEF112374: "LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected".
|
sl@0
|
520 |
1) The test writes a unicode string to a stream, with a descriptor used as a stream store.
|
sl@0
|
521 |
2) The test uses the overloaded "<<" operator, so the string will be compressed during the internalization.
|
sl@0
|
522 |
3) Then the test corrupts the stream store (the descriptor) and attempts to externalize the string.
|
sl@0
|
523 |
4) If the defect is fixed. the ">>" operator should not panic the test application.
|
sl@0
|
524 |
@SYMTestPriority Medium
|
sl@0
|
525 |
@SYMTestActions Test for PDEF112374: "LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected".
|
sl@0
|
526 |
@SYMTestExpectedResults The test must not fail or panic
|
sl@0
|
527 |
@SYMDEF PDEF112374
|
sl@0
|
528 |
*/
|
sl@0
|
529 |
void PDEF112374()
|
sl@0
|
530 |
{
|
sl@0
|
531 |
TRAPD(err, DoPDEF112374L())
|
sl@0
|
532 |
test(err == KErrCorrupt);
|
sl@0
|
533 |
}
|
sl@0
|
534 |
|
sl@0
|
535 |
#endif
|
sl@0
|
536 |
|
sl@0
|
537 |
TInt E32Main()
|
sl@0
|
538 |
{
|
sl@0
|
539 |
#ifdef _UNICODE
|
sl@0
|
540 |
test.Title();
|
sl@0
|
541 |
SetupCleanup();
|
sl@0
|
542 |
__UHEAP_MARK;
|
sl@0
|
543 |
test.Start(_L("test the Standard Compression Scheme for Unicode"));
|
sl@0
|
544 |
TRAPD(err, PerformTestsL());
|
sl@0
|
545 |
test(err == KErrNone);
|
sl@0
|
546 |
test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-UT-4001 PDEF112374: LIBmm54818 Remove/re-insert SIM, DUT reboot incorrectly and crash detected "));
|
sl@0
|
547 |
PDEF112374();
|
sl@0
|
548 |
|
sl@0
|
549 |
test.Next(_L(" @SYMTestCaseID:SYSLIB-STORE-UT-4004 DEF113513: TUnicodeCompressor/Expander function should not panic unnecessary "));
|
sl@0
|
550 |
DEF113513();
|
sl@0
|
551 |
|
sl@0
|
552 |
|
sl@0
|
553 |
test.End();
|
sl@0
|
554 |
__UHEAP_MARKEND;
|
sl@0
|
555 |
delete TheTrapCleanup;
|
sl@0
|
556 |
test.Close();
|
sl@0
|
557 |
#endif
|
sl@0
|
558 |
return 0;
|
sl@0
|
559 |
}
|