From 1869a952b64303a3425fee2747dca255f8fd8cbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sun, 28 Feb 1999 21:32:08 -0800
Subject: [PATCH] now tests compiler shift sizes

Rev: bin/test_pike.pike:1.19
---
 bin/test_pike.pike | 295 ++++++++++++++++++++++-----------------------
 1 file changed, 144 insertions(+), 151 deletions(-)

diff --git a/bin/test_pike.pike b/bin/test_pike.pike
index 59d9209c61..7570243f0f 100755
--- a/bin/test_pike.pike
+++ b/bin/test_pike.pike
@@ -1,6 +1,6 @@
 #!/usr/local/bin/pike
 
-/* $Id: test_pike.pike,v 1.18 1999/02/20 21:28:09 grubba Exp $ */
+/* $Id: test_pike.pike,v 1.19 1999/03/01 05:32:08 hubbe Exp $ */
 
 #include <simulate.h>
 
@@ -8,8 +8,6 @@
 #define _verify_internals()
 #endif
 
-#define SHIFT_MAX 0 /* 2 */
-
 int foo(string opt)
 {
   if(opt=="" || !opt) return 1;
@@ -31,7 +29,7 @@ int main(int argc, string *argv)
   int loop=1;
   int end=0x7fffffff;
   string extra_info="";
-
+  int shift;
 
 #if constant(signal) && constant(signum)
   if(signum("SIGQUIT")>=0)
@@ -130,183 +128,178 @@ int main(int argc, string *argv)
       
       werror("Doing tests in %s (%d tests)\n",argv[f],sizeof(tests));
       
-      
-      for(e=start;e<sizeof(tests);e++)
-      {
-	string test,condition;
-	int type;
-	object o;
-	mixed a,b;
+	for(e=start;e<sizeof(tests);e++)
+	{
+	  string test,condition;
+	  int type;
+	  object o;
+	  mixed a,b;
 	
-	if(check) _verify_internals();
+	  if(check) _verify_internals();
 	
-	test=tests[e];	
-	if(sscanf(test,"COND %s\n%s",condition,test)==2)
-	{
-	  int tmp;
-	  if(!(tmp=cond_cache[condition]))
+	  test=tests[e];	
+	  if(sscanf(test,"COND %s\n%s",condition,test)==2)
 	  {
-	    tmp=!!(clone(compile_string("mixed c() { return "+condition+"; }","Cond "+(e+1)))->c());
-	    if(!tmp) tmp=-1;
-	    cond_cache[condition]=tmp;
-	  }
+	    int tmp;
+	    if(!(tmp=cond_cache[condition]))
+	    {
+	      tmp=!!(clone(compile_string("mixed c() { return "+condition+"; }","Cond "+(e+1)))->c());
+	      if(!tmp) tmp=-1;
+	      cond_cache[condition]=tmp;
+	    }
 	  
-	  if(tmp==-1)
-	  {
-	    if(verbose)
-	      werror("Not doing test "+(e+1)+"\n");
-	    successes++;
-	    continue;
+	    if(tmp==-1)
+	    {
+	      if(verbose)
+		werror("Not doing test "+(e+1)+"\n");
+	      successes++;
+	      continue;
+	    }
 	  }
-	}
 	
-	sscanf(test,"%s\n%s",type,test);
-	sscanf(type,"%*s expected result: %s",type);
+	  sscanf(test,"%s\n%s",type,test);
+	  sscanf(type,"%*s expected result: %s",type);
 	
-	if(verbose)
-	{
-	  werror("Doing test %d (%d total)%s\n",e+1,successes+errors+1,extra_info);
-	  if(verbose>1)
-	    werror(test+"\n");
-	}
-
-	for(int shift=0;shift <= SHIFT_MAX;shift++) {
+	  if(verbose)
+	  {
+	    werror("Doing test %d (%d total)%s\n",e+1,successes+errors+1,extra_info);
+	    if(verbose>1)
+	      werror(test+"\n");
+	  }
 
-	if(check > 1) _verify_internals();
+	  if(check > 1) _verify_internals();
 	
-	string fname = argv[f] + ": Test " + (e + 1) +
-	  " (shift " + shift + ")";
+	  shift++;
+	  string fname = argv[f] + ": Test " + (e + 1) +
+	    " (shift " + shift + ")";
 
-	string widener = ([ 0:"",
+	  string widener = ([ 0:"",
 			    1:"\nint \x30c6\x30b9\x30c8=0;\n",
-			    2:"\nint \x10001=0;\n" ])[shift];
+			    2:"\nint \x10001=0;\n" ])[shift%3];
 
-	switch(type)
-	{
-	  case "COMPILE":
-	    if(catch(compile_string(test + widener, fname)))
-	    {
-	      werror(fname + " failed.\n");
-	      werror(test+"\n");
-	      errors++;
-	    }else{
-	      successes++;
-	    }
-	    break;
+	  switch(type)
+	  {
+	    case "COMPILE":
+	      if(catch(compile_string(test + widener, fname)))
+	      {
+		werror(fname + " failed.\n");
+		werror(test+"\n");
+		errors++;
+	      }else{
+		successes++;
+	      }
+	      break;
 	    
-	  case "COMPILE_ERROR":
-	    master()->set_inhibit_compile_errors(1);
-	    if(catch(compile_string(test + widener, fname)))
-	    {
-	      successes++;
-	    }else{
-	      werror(fname + " failed.\n");
-	      werror(test+"\n");
-	      errors++;
-	    }
-	    master()->set_inhibit_compile_errors(0);
-	    break;
+	    case "COMPILE_ERROR":
+	      master()->set_inhibit_compile_errors(1);
+	      if(catch(compile_string(test + widener, fname)))
+	      {
+		successes++;
+	      }else{
+		werror(fname + " failed.\n");
+		werror(test+"\n");
+		errors++;
+	      }
+	      master()->set_inhibit_compile_errors(0);
+	      break;
 	    
-	  case "EVAL_ERROR":
-	    master()->set_inhibit_compile_errors(1);
-	    if(catch(clone(compile_string(test + widener, fname))->a()))
-	    {
-	      successes++;
-	    }else{
-	      werror(fname + " failed.\n");
-	      werror(test+"\n");
-	      errors++;
-	    }
-	    master()->set_inhibit_compile_errors(0);
-	    break;
+	    case "EVAL_ERROR":
+	      master()->set_inhibit_compile_errors(1);
+	      if(catch(clone(compile_string(test + widener, fname))->a()))
+	      {
+		successes++;
+	      }else{
+		werror(fname + " failed.\n");
+		werror(test+"\n");
+		errors++;
+	      }
+	      master()->set_inhibit_compile_errors(0);
+	      break;
 	    
-	  default:
-	    o=clone(compile_string(test + widener,fname));
+	    default:
+	      o=clone(compile_string(test + widener,fname));
 	    
-	    if(check > 1) _verify_internals();
+	      if(check > 1) _verify_internals();
 	    
-	    a=b=0;
-	    if(t) trace(t);
-	    if(functionp(o->a)) a=o->a();
-	    if(functionp(o->b)) b=o->b();
-	    if(t) trace(0);
+	      a=b=0;
+	      if(t) trace(t);
+	      if(functionp(o->a)) a=o->a();
+	      if(functionp(o->b)) b=o->b();
+	      if(t) trace(0);
 	    
-	    if(check > 1) _verify_internals();
+	      if(check > 1) _verify_internals();
 	    
-	    switch(type)
-	    {
-	      case "FALSE":
-		if(a)
-		{
-		  werror(fname + " failed.\n");
-		  werror(test+"\n");
-		  werror(sprintf("o->a(): %O\n",a));
-		  errors++;
-		}else{
-		  successes++;
-		}
-		break;
+	      switch(type)
+	      {
+		case "FALSE":
+		  if(a)
+		  {
+		    werror(fname + " failed.\n");
+		    werror(test+"\n");
+		    werror(sprintf("o->a(): %O\n",a));
+		    errors++;
+		  }else{
+		    successes++;
+		  }
+		  break;
 		
-	      case "TRUE":
-		if(!a)
-		{
-		  werror(fname + " failed.\n");
-		  werror(test+"\n");
-		  werror(sprintf("o->a(): %O\n",a));
-		  errors++;
-		}else{
+		case "TRUE":
+		  if(!a)
+		  {
+		    werror(fname + " failed.\n");
+		    werror(test+"\n");
+		    werror(sprintf("o->a(): %O\n",a));
+		    errors++;
+		  }else{
+		    successes++;
+		  }
+		  break;
+		
+		case "RUN":
 		  successes++;
-		}
-		break;
+		  break;
 		
-	      case "RUN":
-		successes++;
-		break;
+		case "EQ":
+		  if(a!=b)
+		  {
+		    werror(fname + " failed.\n");
+		    werror(test+"\n");
+		    werror(sprintf("o->a(): %O\n",a));
+		    werror(sprintf("o->b(): %O\n",b));
+		    errors++;
+		  }else{
+		    successes++;
+		  }
+		  break;
 		
-	      case "EQ":
-		if(a!=b)
-		{
-		  werror(fname + " failed.\n");
-		  werror(test+"\n");
-		  werror(sprintf("o->a(): %O\n",a));
-		  werror(sprintf("o->b(): %O\n",b));
-		  errors++;
-		}else{
-		  successes++;
-		}
-		break;
+		case "EQUAL":
+		  if(!equal(a,b))
+		  {
+		    werror(fname + " failed.\n");
+		    werror(test+"\n");
+		    werror(sprintf("o->a(): %O\n",a));
+		    werror(sprintf("o->b(): %O\n",b));
+		    errors++;
+		  }else{
+		    successes++;
+		  }
+		  break;
 		
-	      case "EQUAL":
-		if(!equal(a,b))
-		{
-		  werror(fname + " failed.\n");
-		  werror(test+"\n");
-		  werror(sprintf("o->a(): %O\n",a));
-		  werror(sprintf("o->b(): %O\n",b));
+		default:
+		  werror(sprintf("%s: Unknown test type (%O).\n", fname, type));
 		  errors++;
-		}else{
-		  successes++;
-		}
-		break;
-		
-	      default:
-		werror(sprintf("%s: Unknown test type (%O).\n", fname, type));
-		errors++;
-	    }
-	}
+	      }
+	  }
 	
-	if(check > 2) _verify_internals();
+	  if(check > 2) _verify_internals();
 	
-	if(fail && errors)
-	  exit(1);
-
-	}
+	  if(fail && errors)
+	    exit(1);
 
-	if(!--end) exit(0);
+	  if(!--end) exit(0);
 	
-	a=b=0;
+	  a=b=0;
       }
-      
     }
     if(mem)
     {
-- 
GitLab