integrate and clean
This commit is contained in:
89
main.c
89
main.c
@@ -34,6 +34,7 @@
|
||||
#include "Utils.h"
|
||||
#include "Draw.h"
|
||||
|
||||
#include "Test_Common.h"
|
||||
#include "Test_Address.h"
|
||||
#include "Test_Data.h"
|
||||
#include "Test_Data_Huge.h"
|
||||
@@ -78,7 +79,7 @@ const char szHelp[] =
|
||||
" -n, --num <N> Number of loops (default: 1).\n"
|
||||
" -l, --log <file> Log file path.\n"
|
||||
" --silent Silent mode (suppress normal output).\n"
|
||||
" -t, --tsv <file> TSV output file path.\n"
|
||||
/*" -t, --tsv <file> TSV output file path.\n"*/
|
||||
"\n"
|
||||
"Verbosity:\n"
|
||||
" -v Increase log level by one step (repeatable).\n"
|
||||
@@ -99,8 +100,10 @@ const char szHelp[] =
|
||||
" --tmu1-ram <MB> Force TMU1 RAM size: -1=auto, 1..4=MB.\n"
|
||||
"\n"
|
||||
"Examples:\n"
|
||||
" ./v2memtest --tmu0 --address -vv --tsv out.tsv\n"
|
||||
" ./v2memtest --tmu0 --tmu1 --data --tmu0-ram 2 --tmu1-ram -1 -n 10\n";
|
||||
/*" ./v2-tmu-memtester --tmu0 --address -v --tsv out.tsv\n"*/
|
||||
" ./v2-tmu-memtester --tmu0 --address -v\n"
|
||||
" ./v2-tmu-memtester --tmu0-ram 2 --tmu1-ram -1 -n 10\n"
|
||||
" ./v2-tmu-memtester --tmu1 --data-huge\n";
|
||||
|
||||
def_sOptions sOptions = {
|
||||
.eLogLevel = E_LOGLEVEL__INFO,
|
||||
@@ -123,7 +126,7 @@ static struct option long_args[] = {
|
||||
{"num", required_argument, NULL, 'n'},
|
||||
{"log", required_argument, NULL, 'l'},
|
||||
{"silent", no_argument, &sOptions.bSilent, true},
|
||||
{"tsv", required_argument, NULL, 't'},
|
||||
/*{"tsv", required_argument, NULL, 't'},*/
|
||||
{"tmu0", no_argument, &sOptions.bTestTMU0, true},
|
||||
{"tmu1", no_argument, &sOptions.bTestTMU1, true},
|
||||
{"address", no_argument, &sOptions.bTestTMUAddress, true},
|
||||
@@ -141,6 +144,8 @@ ar_dFaultScores[NB_FAULT_SOURCE];
|
||||
def_sFaultSourceScoreRec
|
||||
ar_dFaultScores_sorted[NB_FAULT_SOURCE];
|
||||
|
||||
#define _DEF_TEST_TIME_PER_MB_S 5
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int Status = 0;
|
||||
@@ -153,7 +158,6 @@ int main(int argc, char **argv)
|
||||
|
||||
while((opt=getopt_long(argc,argv,"hvn:t:l:",long_args,&option_index)) != -1)
|
||||
{
|
||||
//printf("Parse Arg %d, %d\n",option_index,opt);
|
||||
switch(opt)
|
||||
{
|
||||
/* other long options ? */
|
||||
@@ -198,11 +202,11 @@ int main(int argc, char **argv)
|
||||
case 'l':
|
||||
strncpy(sOptions.szLogFileName, optarg, 2048);
|
||||
break;
|
||||
|
||||
/*
|
||||
case 't':
|
||||
strncpy(sOptions.szTSVFile, optarg, 2048);
|
||||
break;
|
||||
|
||||
*/
|
||||
case 'h':
|
||||
puts(szHelp);
|
||||
bQuit = true;
|
||||
@@ -338,7 +342,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
if(bTestTMU1 && !bTestTMU0)
|
||||
{
|
||||
logW("/!\\ testing TMU1 without TMU0 is not recommended !\n\n");
|
||||
logW("/!\\ make sure you did test TMU0 BEFORE TMU1.\n\n");
|
||||
}
|
||||
|
||||
ISET(sstregs->lfbMode, SST_LFB_RGBALANES_ARGB | SST_LFB_READFRONTBUFFER);
|
||||
@@ -352,13 +356,20 @@ int main(int argc, char **argv)
|
||||
if((tmu == 0) && !bTestTMU0) continue;
|
||||
if((tmu == 1) && !bTestTMU1) continue;
|
||||
|
||||
logI("## Testing Board %d, TMU %d, %ldMB \n",boardNum,tmu,(unsigned long)devInfo.tmuMemSize[tmu]);
|
||||
logI("## testing Board %d, TMU %d, %ldMB \n",boardNum,tmu,(unsigned long)devInfo.tmuMemSize[tmu]);
|
||||
|
||||
if(sOptions.bTestTMUAddress)
|
||||
{
|
||||
unsigned long long err=0;
|
||||
|
||||
logI("### pre-heating\n");
|
||||
HeatMemAndTMU(&devInfo,sst,sstregs,tmu,0x000000);
|
||||
|
||||
logI("### address & control lines test - cumulated\n");
|
||||
for(int j=0;j<100;j++)
|
||||
clearScreen(sstregs,0x00000000,256,256);
|
||||
|
||||
clock_t test_begin = clock();
|
||||
do
|
||||
{
|
||||
err = RenderTestAddress(&devInfo,
|
||||
sst,
|
||||
@@ -367,9 +378,13 @@ int main(int argc, char **argv)
|
||||
devInfo.tmuMemSize[tmu],
|
||||
ar_dFaultScores);
|
||||
ullNbErrorAll += err;
|
||||
logI( err ? "E" : "-");
|
||||
logI( err ? "E" : ".");
|
||||
fflush(stdout);
|
||||
}
|
||||
while(!err
|
||||
&& (((double)(clock() - test_begin)/CLOCKS_PER_SEC)
|
||||
< (devInfo.tmuMemSize[tmu]*_DEF_TEST_TIME_PER_MB_S)));
|
||||
|
||||
logI("\n");
|
||||
if(err)
|
||||
{
|
||||
@@ -382,8 +397,15 @@ int main(int argc, char **argv)
|
||||
if(sOptions.bTestTMUData)
|
||||
{
|
||||
unsigned long long err=0;
|
||||
|
||||
logI("### pre-heating\n");
|
||||
HeatMemAndTMU(&devInfo,sst,sstregs,tmu,0x000000);
|
||||
|
||||
logI("### data test - single bit move\n");
|
||||
for(int j=0;j<100;j++)
|
||||
clearScreen(sstregs,0x00000000,256,256);
|
||||
|
||||
clock_t test_begin = clock();
|
||||
do
|
||||
{
|
||||
err = test_TMU_datalines(&devInfo,
|
||||
sst,
|
||||
@@ -393,9 +415,13 @@ int main(int argc, char **argv)
|
||||
devInfo.tmuMemSize[tmu],
|
||||
ar_dFaultScores);
|
||||
ullNbErrorAll += err;
|
||||
logI( err ? "E" : "-");
|
||||
logI( err ? "E" : ".");
|
||||
fflush(stdout);
|
||||
}
|
||||
while(!err &&
|
||||
(((double)(clock() - test_begin)/CLOCKS_PER_SEC)
|
||||
< (devInfo.tmuMemSize[tmu]*_DEF_TEST_TIME_PER_MB_S)));
|
||||
|
||||
logI("\n");
|
||||
if(err)
|
||||
{
|
||||
@@ -403,9 +429,15 @@ int main(int argc, char **argv)
|
||||
logW("skiping next tests.\n\n");
|
||||
continue;
|
||||
}
|
||||
err=0;
|
||||
|
||||
logI("### pre-heating\n");
|
||||
HeatMemAndTMU(&devInfo,sst,sstregs,tmu,0x000000);
|
||||
|
||||
logI("### data test - random patterns\n");
|
||||
for(int j=0;j<100;j++)
|
||||
clearScreen(sstregs,0x00000000,256,256);
|
||||
|
||||
test_begin = clock();
|
||||
do
|
||||
{
|
||||
err = test_TMU_datalines(&devInfo,
|
||||
sst,
|
||||
@@ -415,9 +447,13 @@ int main(int argc, char **argv)
|
||||
devInfo.tmuMemSize[tmu],
|
||||
ar_dFaultScores);
|
||||
ullNbErrorAll += err;
|
||||
logI( err ? "E" : "-");
|
||||
logI( err ? "E" : ".");
|
||||
fflush(stdout);
|
||||
}
|
||||
while(!err &&
|
||||
(((double)(clock() - test_begin)/CLOCKS_PER_SEC)
|
||||
< (devInfo.tmuMemSize[tmu]*_DEF_TEST_TIME_PER_MB_S)));
|
||||
|
||||
logI("\n");
|
||||
if(err)
|
||||
{
|
||||
@@ -430,8 +466,15 @@ int main(int argc, char **argv)
|
||||
if(sOptions.bTestTMUDataHuge)
|
||||
{
|
||||
unsigned long long err=0;
|
||||
|
||||
logI("### pre-heating\n");
|
||||
HeatMemAndTMU(&devInfo,sst,sstregs,tmu,0x000000);
|
||||
|
||||
logI("### data test - huge data set\n");
|
||||
for(int j=0;j<1;j++)
|
||||
clearScreen(sstregs,0x00000000,256,256);
|
||||
|
||||
clock_t test_begin = clock();
|
||||
do
|
||||
{
|
||||
err = test_TMU_datalines_Huge( &devInfo,
|
||||
sst,
|
||||
@@ -440,15 +483,19 @@ int main(int argc, char **argv)
|
||||
devInfo.tmuMemSize[tmu],
|
||||
ar_dFaultScores);
|
||||
ullNbErrorAll += err;
|
||||
logI( err ? "E" : "-");
|
||||
logI( err ? "E" : ".");
|
||||
fflush(stdout);
|
||||
}
|
||||
while(!err &&
|
||||
(((double)(clock() - test_begin)/CLOCKS_PER_SEC)
|
||||
< (devInfo.tmuMemSize[tmu]*_DEF_TEST_TIME_PER_MB_S)));
|
||||
|
||||
logI("\n");
|
||||
if(err)
|
||||
{
|
||||
logW("error detected on data line (huge data set) !\n");
|
||||
/*logW("skiping next tests.\n\n");
|
||||
continue;*/
|
||||
logW("skiping next tests.\n\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
logI("\n");
|
||||
@@ -458,7 +505,7 @@ int main(int argc, char **argv)
|
||||
FaultSource_getSorted(ar_dFaultScores_sorted,ar_dFaultScores);
|
||||
FaultSource_display(ar_dFaultScores_sorted);
|
||||
|
||||
logI("Test Complete, ullNbErrorAll = %lld\n",ullNbErrorAll);
|
||||
logI("test completed, ullNbErrorAll = %lld\n",ullNbErrorAll);
|
||||
logI("\n");
|
||||
if(ullNbErrorAll)
|
||||
logI(szKool);
|
||||
|
||||
Reference in New Issue
Block a user