Test
This commit is contained in:
@@ -1459,7 +1459,7 @@ long komodo_indfile_update(FILE *indfp,uint32_t *prevpos100p,long lastfpos,long
|
|||||||
tmp = ((uint32_t)(newfpos - *prevpos100p) << 8) | (func & 0xff);
|
tmp = ((uint32_t)(newfpos - *prevpos100p) << 8) | (func & 0xff);
|
||||||
if ( ftell(indfp)/sizeof(uint32_t) != *indcounterp )
|
if ( ftell(indfp)/sizeof(uint32_t) != *indcounterp )
|
||||||
printf("indfp fpos %ld -> ind.%ld vs counter.%u\n",ftell(indfp),ftell(indfp)/sizeof(uint32_t),*indcounterp);
|
printf("indfp fpos %ld -> ind.%ld vs counter.%u\n",ftell(indfp),ftell(indfp)/sizeof(uint32_t),*indcounterp);
|
||||||
//fprintf(stderr,"ftell.%ld indcounter.%u lastfpos.%ld newfpos.%ld func.%02x\n",ftell(indfp),*indcounterp,lastfpos,newfpos,func);
|
fprintf(stderr,"ftell.%ld indcounter.%u lastfpos.%ld newfpos.%ld func.%02x\n",ftell(indfp),*indcounterp,lastfpos,newfpos,func);
|
||||||
fwrite(&tmp,1,sizeof(tmp),indfp), (*indcounterp)++;
|
fwrite(&tmp,1,sizeof(tmp),indfp), (*indcounterp)++;
|
||||||
if ( (*indcounterp % 100) == 0 )
|
if ( (*indcounterp % 100) == 0 )
|
||||||
{
|
{
|
||||||
@@ -1504,18 +1504,21 @@ int32_t komodo_faststateinit(struct komodo_state *sp,char *fname,char *symbol,ch
|
|||||||
if ( (indfp= fopen(indfname,"rb+")) != 0 )
|
if ( (indfp= fopen(indfname,"rb+")) != 0 )
|
||||||
{
|
{
|
||||||
lastfpos = fpos = validated;
|
lastfpos = fpos = validated;
|
||||||
fprintf(stderr,"validated %ld -> indcounter %u, prevpos100 %u offset.%ld\n",validated,indcounter,prevpos100,indcounter * sizeof(uint32_t));
|
fprintf(stderr,"datalen.%ld validated %ld -> indcounter %u, prevpos100 %u offset.%ld\n",datalen,validated,indcounter,prevpos100,indcounter * sizeof(uint32_t));
|
||||||
fseek(indfp,indcounter * sizeof(uint32_t),SEEK_SET);
|
if ( fpos < datalen )
|
||||||
if ( ftell(indfp) == indcounter * sizeof(uint32_t) )
|
|
||||||
{
|
{
|
||||||
while ( (func= komodo_parsestatefiledata(sp,filedata,&fpos,datalen,symbol,dest)) >= 0 )
|
fseek(indfp,indcounter * sizeof(uint32_t),SEEK_SET);
|
||||||
|
if ( ftell(indfp) == indcounter * sizeof(uint32_t) )
|
||||||
{
|
{
|
||||||
lastfpos = komodo_indfile_update(indfp,&prevpos100,lastfpos,fpos,func,&indcounter);
|
while ( (func= komodo_parsestatefiledata(sp,filedata,&fpos,datalen,symbol,dest)) >= 0 )
|
||||||
if ( lastfpos != fpos )
|
{
|
||||||
fprintf(stderr,"unexpected lastfpos.%ld != %ld\n",lastfpos,fpos);
|
lastfpos = komodo_indfile_update(indfp,&prevpos100,lastfpos,fpos,func,&indcounter);
|
||||||
|
if ( lastfpos != fpos )
|
||||||
|
fprintf(stderr,"unexpected lastfpos.%ld != %ld\n",lastfpos,fpos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
fclose(indfp);
|
||||||
}
|
}
|
||||||
fclose(indfp);
|
|
||||||
if ( komodo_stateind_validate(sp,indfname,filedata,datalen,&prevpos100,&indcounter,symbol,dest) < 0 )
|
if ( komodo_stateind_validate(sp,indfname,filedata,datalen,&prevpos100,&indcounter,symbol,dest) < 0 )
|
||||||
printf("unexpected komodostate.ind validate failure %s datalen.%ld\n",indfname,datalen);
|
printf("unexpected komodostate.ind validate failure %s datalen.%ld\n",indfname,datalen);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user