From e05650dfaef60c432fc705d1060ac950e9d31fd6 Mon Sep 17 00:00:00 2001 From: Monty Date: Sat, 5 Feb 2000 23:31:50 +0000 Subject: [PATCH] Added unit tests for bitwise read past end. Monty svn path=/trunk/vorbis/; revision=249 --- lib/bitwise.c | 40 +++++++++++++++++++++++++++++++++++++++- lib/psy.h | 9 ++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/lib/bitwise.c b/lib/bitwise.c index 37599b6..77b38e2 100644 --- a/lib/bitwise.c +++ b/lib/bitwise.c @@ -12,7 +12,7 @@ ******************************************************************** function: packing variable sized words into an octet stream - last mod: $Id: bitwise.c,v 1.7 2000/02/05 23:23:56 xiphmont Exp $ + last mod: $Id: bitwise.c,v 1.8 2000/02/05 23:31:49 xiphmont Exp $ ********************************************************************/ @@ -363,7 +363,45 @@ int main(void){ fprintf(stderr,"\nSingle bit unclicpped packing: "); cliptest(testbuffer3,test3size,1,six,sixsize); + fprintf(stderr,"ok."); + + fprintf(stderr,"\nTesting read past end: "); + _oggpack_readinit(&r,"\0\0\0\0\0\0\0\0",8); + for(i=0;i<64;i++){ + if(_oggpack_read(&r,1)!=0){ + fprintf(stderr,"failed; got -1 prematurely.\n"); + exit(1); + } + } + if(_oggpack_look(&r,1)!=-1 || + _oggpack_read(&r,1)!=-1){ + fprintf(stderr,"failed; read past end without -1.\n"); + exit(1); + } + _oggpack_readinit(&r,"\0\0\0\0\0\0\0\0",8); + if(_oggpack_read(&r,30)!=0 || _oggpack_read(&r,16)!=0){ + fprintf(stderr,"failed 2; got -1 prematurely.\n"); + exit(1); + } + + if(_oggpack_look(&r,18)!=0 || + _oggpack_look(&r,18)!=0){ + fprintf(stderr,"failed 3; got -1 prematurely.\n"); + exit(1); + } + if(_oggpack_look(&r,19)!=-1 || + _oggpack_look(&r,19)!=-1){ + fprintf(stderr,"failed; read past end without -1.\n"); + exit(1); + } + if(_oggpack_look(&r,32)!=-1 || + _oggpack_look(&r,32)!=-1){ + fprintf(stderr,"failed; read past end without -1.\n"); + exit(1); + } fprintf(stderr,"ok.\n\n"); + + return(0); } #endif diff --git a/lib/psy.h b/lib/psy.h index f08d47c..5e7335b 100644 --- a/lib/psy.h +++ b/lib/psy.h @@ -12,7 +12,7 @@ ******************************************************************** function: random psychoacoustics (not including preecho) - last mod: $Id: psy.h,v 1.8 2000/01/28 15:25:11 xiphmont Exp $ + last mod: $Id: psy.h,v 1.9 2000/02/05 23:31:50 xiphmont Exp $ ********************************************************************/ @@ -26,6 +26,13 @@ typedef struct { double *maskthresh; double *barknum; + int framebegin; + int frameend; + int subframelen; + int elements[4]; + double cutoffs[4]; + int quantval[4]; + } vorbis_look_psy; extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate); -- 2.7.4