|
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // Example CTestStep derived implementation |
|
15 // |
|
16 // |
|
17 |
|
18 /** |
|
19 @file te_uloggerbuffersizingstep.cpp |
|
20 @internalTechnology |
|
21 */ |
|
22 #include "te_uloggerbuffersizingstep.h" |
|
23 |
|
24 #include <e32cons.h> |
|
25 #include <e32def.h> |
|
26 #include "te_setfilterparameters.h" |
|
27 |
|
28 using namespace Ulogger; |
|
29 |
|
30 CULoggerBufferSizingStep::~CULoggerBufferSizingStep() |
|
31 /** |
|
32 * Destructor |
|
33 */ |
|
34 { |
|
35 } |
|
36 |
|
37 CULoggerBufferSizingStep::CULoggerBufferSizingStep() |
|
38 /** |
|
39 * Constructor |
|
40 */ |
|
41 { |
|
42 SetTestStepName(KULoggerBufferSizingStep); |
|
43 } |
|
44 |
|
45 TVerdict CULoggerBufferSizingStep::doTestStepPreambleL() |
|
46 /** |
|
47 * @return - TVerdict code |
|
48 * Override of base class virtual |
|
49 */ |
|
50 { |
|
51 INFO_PRINTF1(_L("Please delete this line or modify it. I am in Test Step Preamble in Class CULoggerBufferSizingStep")); |
|
52 SetTestStepResult(EPass); |
|
53 return TestStepResult(); |
|
54 } |
|
55 |
|
56 void CULoggerBufferSizingStep::writeToBuffer(const TPtrC iLit, TInt iTraceNumber,RULogger* iLogger) |
|
57 { |
|
58 _LIT8(KTextmedia,"uloggerfileplugin"); |
|
59 TPtrC8 mediaptr(KTextmedia); |
|
60 _LIT(KTextsetting, "output_path"); |
|
61 // test setting the plugin settings |
|
62 TPluginConfiguration setPluginConfigs; |
|
63 setPluginConfigs.SetKey(KTextsetting); |
|
64 setPluginConfigs.SetValue(iLit); |
|
65 iLogger->SetPluginConfigurations( mediaptr, setPluginConfigs); |
|
66 CUTraces Testtracer; |
|
67 iLogger->Start(); |
|
68 for(TInt i=0; i!=iTraceNumber; i++) |
|
69 { |
|
70 TBool ret; |
|
71 if (iTraceNumber==100) |
|
72 ret = Testtracer.DoTheTrace(7); |
|
73 else |
|
74 ret = Testtracer.DoTheTrace(8); |
|
75 if (ret == 0) |
|
76 { |
|
77 INFO_PRINTF2(_L("Trace %d not logged"), iTraceNumber); |
|
78 SetTestStepResult(EFail); |
|
79 } |
|
80 } |
|
81 iLogger->Stop(); |
|
82 } |
|
83 |
|
84 TVerdict CULoggerBufferSizingStep::doTestStepL() |
|
85 /** |
|
86 * @return - TVerdict code |
|
87 * Override of base class pure virtual |
|
88 * Our implementation only gets called if the base class doTestStepPreambleL() did |
|
89 * not leave. That being the case, the current test result value will be EPass. |
|
90 */ |
|
91 { |
|
92 if (TestStepResult()==EPass) |
|
93 { |
|
94 //AddOutputPlugin |
|
95 // ************** Delete the Block, the block start **************** |
|
96 |
|
97 INFO_PRINTF1(_L("About to test buffer sizing")); //Block start |
|
98 RULogger logger; |
|
99 logger.Connect(); |
|
100 CClearConfig configIni; |
|
101 configIni.Clear(logger); |
|
102 CArrayFixFlat<TUint8> *setprimfilter = new (ELeave)CArrayFixFlat<TUint8>(1); |
|
103 setprimfilter->AppendL(UTracePrimary); |
|
104 RArray<TUint32> setsecondfilter; |
|
105 setsecondfilter.Append((TUint32) UTraceSecondary); |
|
106 logger.SetPrimaryFiltersEnabled(*setprimfilter,ETrue); |
|
107 logger.SetSecondaryFiltersEnabled(setsecondfilter,ETrue); |
|
108 SetTestStepResult(EPass); |
|
109 INFO_PRINTF1(_L("File plugin added")); |
|
110 _LIT8(KTextmedia,"uloggerfileplugin"); |
|
111 TPtrC8 mediaptr(KTextmedia); |
|
112 logger.ActivateOutputPlugin(mediaptr); |
|
113 // write to an average buffer size with a smaller dns as many bytes |
|
114 // as the buffer can hold |
|
115 logger.SetBufferSize(1024); |
|
116 logger.SetNotificationSize(64); |
|
117 _LIT(KTextvalue1, "C:\\logs\\ULoggerBufferAverage.log"); |
|
118 const TPtrC valueptr1(KTextvalue1); |
|
119 writeToBuffer(valueptr1, 64, &logger); |
|
120 // write to an average buffer size with a smaller dns more bytes |
|
121 // than the buffer can hold |
|
122 _LIT(KTextvalue2, "C:\\logs\\ULoggerBufferAverageOverflow.log"); |
|
123 const TPtrC valueptr2(KTextvalue2); |
|
124 writeToBuffer(valueptr2, 65, &logger); |
|
125 // write to a small buffer size with a smaller dns as many bytes |
|
126 // as the buffer can hold |
|
127 logger.SetBufferSize(64); |
|
128 logger.SetNotificationSize(16); |
|
129 _LIT(KTextvalue5, "C:\\logs\\ULoggerBufferSmall.log"); |
|
130 const TPtrC valueptr5(KTextvalue5); |
|
131 writeToBuffer(valueptr5, 4, &logger); |
|
132 // write to a small buffer size with a smaller dns more bytes |
|
133 // than the buffer can hold |
|
134 _LIT(KTextvalue6, "C:\\logs\\ULoggerBufferSmallOverflow.log"); |
|
135 const TPtrC valueptr6(KTextvalue6); |
|
136 writeToBuffer(valueptr6, 5, &logger); |
|
137 // write to a large buffer size with a smaller dns as many bytes |
|
138 // as the buffer can hold |
|
139 logger.SetBufferSize(65535); |
|
140 logger.SetNotificationSize(1024); |
|
141 _LIT(KTextvalue9, "C:\\logs\\ULoggerBufferBig.log"); |
|
142 const TPtrC valueptr9(KTextvalue9); |
|
143 writeToBuffer(valueptr9, 4095, &logger); |
|
144 // write to a large buffer size with a smaller dns more bytes |
|
145 // than the buffer can hold |
|
146 _LIT(KTextvalue10, "C:\\logs\\ULoggerBufferBigOverflow.log"); |
|
147 const TPtrC valueptr10(KTextvalue10); |
|
148 writeToBuffer(valueptr10, 4097, &logger); |
|
149 // write to a larg buffer size with an equal dns as many bytes |
|
150 // as the buffer can hold |
|
151 logger.SetNotificationSize(4900); |
|
152 logger.SetBufferSize(5000); |
|
153 _LIT(KTextvalue11, "C:\\logs\\ULoggerBufferOverflow.log"); |
|
154 const TPtrC valueptr11(KTextvalue11); |
|
155 writeToBuffer(valueptr11, 1000, &logger); |
|
156 logger.Close(); |
|
157 INFO_PRINTF1(_L("Buffer Sizing tests complete!")); |
|
158 |
|
159 // ************** Block end **************** |
|
160 } |
|
161 return TestStepResult(); |
|
162 } |
|
163 |
|
164 |
|
165 |
|
166 TVerdict CULoggerBufferSizingStep::doTestStepPostambleL() |
|
167 /** |
|
168 * @return - TVerdict code |
|
169 * Override of base class virtual |
|
170 */ |
|
171 { |
|
172 INFO_PRINTF1(_L("Please delete this line or modify it. I am in Test Step Postamble in Class CULoggerBufferSizingStep")); |
|
173 return TestStepResult(); |
|
174 } |