summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/benchmarkinfo.cpp96
-rw-r--r--noncore/settings/sysinfo/benchmarkinfo.h7
2 files changed, 31 insertions, 72 deletions
diff --git a/noncore/settings/sysinfo/benchmarkinfo.cpp b/noncore/settings/sysinfo/benchmarkinfo.cpp
index 3dd4121..69d8229 100644
--- a/noncore/settings/sysinfo/benchmarkinfo.cpp
+++ b/noncore/settings/sysinfo/benchmarkinfo.cpp
@@ -16,8 +16,9 @@
16** 16**
17**********************************************************************/ 17**********************************************************************/
18 18
19/* OPIE */ 19/* OPIE */
20#include <opie2/ostorageinfo.h>
20#include <qpe/qpeapplication.h> 21#include <qpe/qpeapplication.h>
21#include <qpe/qcopenvelope_qws.h> 22#include <qpe/qcopenvelope_qws.h>
22#include <qpe/qpedecoration_qws.h> 23#include <qpe/qpedecoration_qws.h>
23#include <qpe/resource.h> 24#include <qpe/resource.h>
@@ -52,8 +53,11 @@ extern "C"
52 53
53#define DHRYSTONE_RUNS 20000000 54#define DHRYSTONE_RUNS 20000000
54#define TEST_DURATION 3 55#define TEST_DURATION 3
55 56
57#define BUFF_SIZE 8192
58#define FILE_SIZE 1024 * 1024 // 1Mb
59
56//=========================================================================== 60//===========================================================================
57 61
58class BenchmarkPaintWidget : public QWidget 62class BenchmarkPaintWidget : public QWidget
59{ 63{
@@ -153,41 +157,25 @@ void BenchmarkInfo::run()
153 test_gfx->setText( 1, QString( "%1 gops/sec" ).arg( QString::number( value / 4 / TEST_DURATION ) ) ); // 4 tests 157 test_gfx->setText( 1, QString( "%1 gops/sec" ).arg( QString::number( value / 4 / TEST_DURATION ) ) ); // 4 tests
154 test_gfx->setOn( false ); 158 test_gfx->setOn( false );
155 } 159 }
156 160
157 if ( test_ram->isOn() ) 161 if ( test_ram->isOn() ) // /tmp is supposed to be in RAM on a PDA
158 { 162 {
159 t.start(); 163 performFileTest( "/tmp/benchmarkFile.dat", test_ram );
160 writeFile( "/tmp/benchmarkFile.dat" ); // /tmp is supposed to be in RAM on a PDA
161 readFile( "/tmp/benchmarkFile.dat" );
162 QFile::remove( "/tmp/benchmarkFile.dat" );
163 test_ram->setText( 1, QString( "%1 secs" ).arg( QString::number( t.elapsed() / 1000.0 ) ) );
164 test_ram->setOn( false );
165 } 164 }
166/* 165
167 if ( test_cf->isOn() ) 166 if ( test_cf->isOn() )
168 { 167 {
169 t.start(); 168 OStorageInfo storage;
170 benchInteger(); 169 performFileTest( storage.cfPath() + "/benchmarkFile.dat", test_cf );
171 test_alu->setText( 1, QString( "%1 secs" ).arg( QString::number( t.elapsed() / 1000.0 ) ) );
172 test_alu->setOn( false );
173 } 170 }
174 171
175 if ( test_sd->isOn() ) 172 if ( test_sd->isOn() )
176 { 173 {
177 t.start(); 174 OStorageInfo storage;
178 benchInteger(); 175 performFileTest( storage.sdPath() + "/benchmarkFile.dat", test_sd );
179 test_alu->setText( 1, QString( "%1 secs" ).arg( QString::number( t.elapsed() / 1000.0 ) ) );
180 test_alu->setOn( false );
181 } 176 }
182 177
183 if ( ( which_clipb ) && ( buf.length() > 0 ) )
184 {
185 clb = QApplication::clipboard();
186 clb->setText( dt_buf + buf );
187 }
188 */
189
190 startButton->setText( tr( "&Start Tests!" ) ); 178 startButton->setText( tr( "&Start Tests!" ) );
191} 179}
192 180
193 181
@@ -287,14 +275,24 @@ int BenchmarkInfo::gfxRendering( int seconds )
287 return loops; 275 return loops;
288 276
289} 277}
290 278
291// ********************************************************************** 279void BenchmarkInfo::performFileTest( const QString& fname, QCheckListItem* item )
292// Read & Write 280{
293// v2.0.0 281 QTime time;
294// ********************************************************************** 282 time.start();
295#define BUFF_SIZE 8192 283 if ( writeFile( fname ) &&
296#define FILE_SIZE 1024 * 1024 // 1Mb 284 readFile( fname ) )
285 {
286 QFile::remove( fname );
287 item->setText( 1, QString( "%1 kb/sec" ).arg( QString::number( 1024.0 / ( time.elapsed() / 1000.0 ) ) ) );
288 item->setOn( false );
289 }
290 else
291 {
292 item->setText( 1, tr( "error" ) );
293 }
294}
297 295
298char FileBuf[ BUFF_SIZE + 1 ]; 296char FileBuf[ BUFF_SIZE + 1 ];
299 297
300bool BenchmarkInfo::writeFile( const QString& w_path ) 298bool BenchmarkInfo::writeFile( const QString& w_path )
@@ -362,49 +360,9 @@ bool BenchmarkInfo::writeFile( const QString& w_path )
362 } 360 }
363 writeFile.close(); 361 writeFile.close();
364 } 362 }
365 return ( true ); 363 return ( true );
366 // ------------------------------------*/
367
368 /* ----------------------------------
369 srand( time( NULL ) );
370 364
371 FILE *fp;
372
373 for( n= 0 ; n < 40 ; n++ )
374 {
375 if (( fp = fopen( w_path, "wt" )) == NULL )
376 return( false );
377 memset( FileBuf, '\0', BUFF_SIZE+1 );
378 // ------------------------------------------ sequential write
379 for( i= 0 ; i < FILE_SIZE / BUFF_SIZE ; i++ )
380 {
381 for( k= 0 ; k < 128 ; k++ )
382 {
383 n = rand() % 30;
384 memcpy( &FileBuf[k*8], &data[n], 32 );
385 }
386 fputs( FileBuf, fp );
387 }
388 // ------------------------------------------ random write
389 for( i= 0 ; i < 300 ; i++ )
390 {
391 memset( FileBuf, '\0', 130 );
392 len = rand() % 120 + 8;
393 for( k= 0 ; k < 16 ; k++ )
394 {
395 n = rand() % 54;
396 memcpy( &FileBuf[k*8], &data[n], 8 );
397 }
398 pos = rand() % ( FILE_SIZE / BUFF_SIZE - BUFF_SIZE );
399
400 fseek( fp, pos, SEEK_SET );
401 fputs( FileBuf, fp );
402 }
403 fclose( fp );
404 }
405 return( true );
406 -------------------------------------*/
407} 365}
408 366
409 367
410bool BenchmarkInfo::readFile( const QString& r_path ) 368bool BenchmarkInfo::readFile( const QString& r_path )
diff --git a/noncore/settings/sysinfo/benchmarkinfo.h b/noncore/settings/sysinfo/benchmarkinfo.h
index 55398eb..3c5ca37 100644
--- a/noncore/settings/sysinfo/benchmarkinfo.h
+++ b/noncore/settings/sysinfo/benchmarkinfo.h
@@ -53,11 +53,12 @@ public:
53 QPushButton* startButton; 53 QPushButton* startButton;
54 54
55 int textRendering( int ); 55 int textRendering( int );
56 int gfxRendering( int ); 56 int gfxRendering( int );
57 bool writeFile( const QString& ); 57 void performFileTest( const QString& fname, QCheckListItem* item );
58 bool readFile( const QString& );
59 58
60private slots: 59private slots:
60 bool writeFile( const QString& );
61 bool readFile( const QString& );
61 void run(); 62 void run();
62
63}; 63};
64