]> www.vanbest.org Git - sasc-ng.git/commitdiff
run FFdecsa_test automatically
authorleslie <unknown>
Fri, 23 Oct 2009 05:42:11 +0000 (13:42 +0800)
committerleslie <unknown>
Fri, 23 Oct 2009 05:42:11 +0000 (13:42 +0800)
.hgignore
FFdecsa/FFdecsa_test.c
FFdecsa/Makefile
Makefile

index 5b4fd626c7c72c6c90168dc01cddba2444b4955b..c23b951e375bb4f8263a775ab9189060fbed7717 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -12,6 +12,8 @@ po/*.pot
 *.bak
 version.c
 i18n.c
+FFdecsa/FFdecsa_test
+FFdecsa/FFdecsa_test.done
 dump.*
 core*
 contrib/bsdiff
index dfaa93d12612fc6abfb230c5a7c25cfd0b4aaa00..4689d047c7e61ae38b931702a4e2b9b9680a02f0 100644 (file)
@@ -36,7 +36,7 @@ int compare(unsigned char *p1, unsigned char *p2, int n, int silently){
   for(i=0;i<n;i++){
     if(i==3) continue; // tolerate this
     if(p1[i]!=p2[i]){
-      fprintf(stderr,"at pos 0x%02x, got 0x%02x instead of 0x%02x\n",i,p1[i],p2[i]);
+//      fprintf(stderr,"at pos 0x%02x, got 0x%02x instead of 0x%02x\n",i,p1[i],p2[i]);
       ok=0;
     }
   }
@@ -65,6 +65,7 @@ int main(void){
   int i;
   struct timeval tvs,tve;
   void *keys=get_key_struct();
+  int ok=1;
 
   fprintf(stderr,"FFdecsa 1.0: testing correctness and speed\n");
 
@@ -74,31 +75,31 @@ int main(void){
   memcpy(onebuf,test_1_encrypted,188);
   cluster[0]=onebuf;cluster[1]=onebuf+188;cluster[2]=NULL;
   decrypt_packets(keys,cluster);
-  compare(onebuf,test_1_expected,188,0);
+  ok*=compare(onebuf,test_1_expected,188,0);
 
   set_control_words(keys,test_2_key,test_invalid_key);
   memcpy(onebuf,test_2_encrypted,188);
   cluster[0]=onebuf;cluster[1]=onebuf+188;cluster[2]=NULL;
   decrypt_packets(keys,cluster);
-  compare(onebuf,test_2_expected,188,0);
+  ok*=compare(onebuf,test_2_expected,188,0);
 
   set_control_words(keys,test_3_key,test_invalid_key);
   memcpy(onebuf,test_3_encrypted,188);
   cluster[0]=onebuf;cluster[1]=onebuf+188;cluster[2]=NULL;
   decrypt_packets(keys,cluster);
-  compare(onebuf,test_3_expected,188,0);
+  ok*=compare(onebuf,test_3_expected,188,0);
 
   set_control_words(keys,test_p_10_0_key,test_invalid_key);
   memcpy(onebuf,test_p_10_0_encrypted,188);
   cluster[0]=onebuf;cluster[1]=onebuf+188;cluster[2]=NULL;
   decrypt_packets(keys,cluster);
-  compare(onebuf,test_p_10_0_expected,188,0);
+  ok*=compare(onebuf,test_p_10_0_expected,188,0);
 
   set_control_words(keys,test_p_1_6_key,test_invalid_key);
   memcpy(onebuf,test_p_1_6_encrypted,188);
   cluster[0]=onebuf;cluster[1]=onebuf+188;cluster[2]=NULL;
   decrypt_packets(keys,cluster);
-  compare(onebuf,test_p_1_6_expected,188,0);
+  ok*=compare(onebuf,test_p_1_6_expected,188,0);
 
 /* begin speed testing */
 
@@ -158,17 +159,18 @@ int main(void){
   compare(megabuf+188*(TS_PKTS_FOR_TEST*2/3),test_3_expected,188,0); /* will fail because we used a wrong key */
 #endif
   // these should be ok
-  compare(megabuf,s_expected,188,0);
-  compare(megabuf+188*511,s_expected,188,0);
-  compare(megabuf+188*512,s_expected,188,0);
-  compare(megabuf+188*319,s_expected,188,0);
-  compare(megabuf+188*(TS_PKTS_FOR_TEST-1),s_expected,188,0);
+  ok*=compare(megabuf,s_expected,188,0);
+  ok*=compare(megabuf+188*511,s_expected,188,0);
+  ok*=compare(megabuf+188*512,s_expected,188,0);
+  ok*=compare(megabuf+188*319,s_expected,188,0);
+  ok*=compare(megabuf+188*(TS_PKTS_FOR_TEST-1),s_expected,188,0);
 
   for(i=0;i<TS_PKTS_FOR_TEST;i++){
     if(!compare(megabuf+188*i,s_expected,188,1)){
       fprintf(stderr,"FAILED COMPARISON OF PACKET %10i\n",i);
+      ok=0;
     };
   }
 
-  return 0;
+  return ok ? 0 : 10;
 }
index e3384bf1006f95c493969977868121e42dca5f73..463ecb7a08f41529ef2da14d09b82c53627b33d2 100644 (file)
@@ -37,7 +37,7 @@ H_FILES = FFdecsa.h parallel_generic.h parallel_std_def.h fftable.h \
           parallel_128_sse2.h \
           parallel_128_sse.h
 
-all: FFdecsa.o
+all: FFdecsa.o FFdecsa_test.done
 
 %.o: %.c
        $(COMPILER) $(FLAGS) -DPARALLEL_MODE=$(PARALLEL_MODE) -c $<
@@ -48,8 +48,12 @@ FFdecsa_test:        FFdecsa_test.o FFdecsa.o
 FFdecsa_test.o: FFdecsa_test.c FFdecsa.h FFdecsa_test_testcases.h
 FFdecsa.o:     FFdecsa.c stream.c $(H_FILES)
 
+FFdecsa_test.done: FFdecsa_test
+       @./FFdecsa_test
+       @touch FFdecsa_test.done
+
 clean:
-       @rm -f FFdecsa_test FFdecsa_test.o FFdecsa.o
+       @rm -f FFdecsa_test FFdecsa_test.done FFdecsa_test.o FFdecsa.o
 
 test:  FFdecsa_test
        sync;usleep 200000;nice --19 ./FFdecsa_test
index 0b9696b7968015b03faa0d60878138016fa1836b..bdf7c82f10d5234d7aed1f459eb3d9001eb42b13 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -138,6 +138,7 @@ PARALLEL   ?= PARALLEL_32_INT
 CSAFLAGS   ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
 FFDECSADIR  = FFdecsa
 FFDECSA     = $(FFDECSADIR)/FFdecsa.o
+FFDECSATEST = $(FFDECSADIR)/FFdecsa_test.done
 
 # SASC
 ifdef SASC
@@ -195,7 +196,7 @@ $(LIBDIR)/libvdr-$(PLUGIN).so.$(APIVERSION): libvdr-$(PLUGIN).so
 $(LIBDIR)/libvdr-$(PLUGIN).a: $(OBJS)
        $(AR) r $@ $(OBJS)
 
-$(FFDECSA): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
+$(FFDECSA) $(FFDECSATEST): $(FFDECSADIR)/*.c $(FFDECSADIR)/*.h
        @$(MAKE) COMPILER="$(CXX)" FLAGS="$(CSAFLAGS) -march=$(CPUOPT)" PARALLEL_MODE=$(PARALLEL) -C $(FFDECSADIR) all
 
 $(I18Npot): $(shell grep -rl '\(tr\|trNOOP\)(\".*\")' *.c $(SYSDIR))