]> git.cryptolib.org Git - arm-crypto-lib.git/blobdiff - host/shavs_test2.rb
fixing bugs reported by Christian Dernehl
[arm-crypto-lib.git] / host / shavs_test2.rb
index 36c3e8cdeb00d1218f98573fa10c29f9daf9d6e1..3c06e2f966f8bd0ab4f42786c11845b75668c551 100644 (file)
@@ -48,7 +48,7 @@ def readconfigfile(fname, conf)
          conf[m[1]] = Hash.new
          next
        end
-       next if not /=/.match(line)
+       next if ! /=/.match(line)
        m=/[\s]*([^\s]*)[\s]*=[\s]*([^\s]*)/.match(line)
        if m[1]=="include"
          Dir.glob(m[2]){ |fn| conf = readconfigfile(fn, conf) }
@@ -104,6 +104,7 @@ def init_system(algo_select)
     line=$sp.gets()
   end while not m=/buffer_size[\s]*=[\s]*0x([0-9A-Fa-f]*)/.match(line)
   $buffer_size = m[1].to_i(16)
+  printf("buffer_size = %d\n", $buffer_size)
 end
 
 ################################################################################
@@ -113,8 +114,9 @@ end
 def get_md
   begin
     line = $sp.gets()
+        puts("DBG got: " + line.inspect) if $debug
        line = "" if line==nil
-       puts("DBG got: "+line) if $debug
+   #   puts("DBG got: "+line) if $debug
   end while not /[\s]*MD[\s]*=.*/.match(line)
   return line
 end
@@ -137,19 +139,29 @@ end
 =end
 def send_md(md_string)
 #  puts 'DBG: send_md; md_string.length = '+md_string.length.to_s+'; buffer_size = '+$buffer_size.to_s
-  bs = $buffer_size
+  bs = $buffer_size*2
   $sp.print("Msg = ")
-  for i in 0..((md_string.length-1)/bs)
+  $sp.print(md_string[0])
+  md_string = md_string[1..-1]
+  for i in 0..((md_string.length)/bs)
 #    puts 'DBG bulk send'
     if(md_string.length-i*bs<=bs)
  #     puts "DBG: i="+i.to_s()
-      $sp.print(md_string[(i*bs)..-1]) 
+      t = md_string[(i*bs)..-1]
+      printf("sending final %d chars: %s\n", t.length, t[-10..-1]) if $debug
+      $sp.print(t) 
       return
     end
-    $sp.print(md_string[(i*bs)..((i+1)*bs-1)])
-  #  begin
-  #    line=$sp.gets()
-  #  end while not /\./.match(line) 
+    t = md_string[(i*bs)..((i+1)*bs-1)]
+    printf("sending %d chars: %s\n", t.length, t[-10..-1]) if $debug
+    $sp.print(t)
+    sleep(0.1)
+    print("going to wait ... : ") if $debug
+    begin
+     line=$sp.gets()
+     puts(line.inspect) if $debug
+     line='' if !line
+    end while ! /\./.match(line) 
   end
 end
 
@@ -229,12 +241,13 @@ end
 #  -f <file>        also read config from <file>
 #  -i <n>           skip until test nr. <n>
 #  -j <n>           start with testfile <n>
+#  -o               use just one testfile
 #  -h ???
 #  -d               enable debug mode
 #  -c ???
 #  -a ???
 
-opts = Getopt::Std.getopts("s:f:i:j:hdca")
+opts = Getopt::Std.getopts("s:f:i:j:hdcao")
 
 conf = Hash.new
 conf = readconfigfile("/etc/testport.conf", conf)
@@ -294,16 +307,16 @@ algo_tasks.each do |algoa|
     puts("No test-set defined for #{algo} \r\n")
     next
   else
-       i=0
-       i = opts["j"] if opts["j"]
-       logfile=File.open(conf["PORT"]["testlogbase"]+algo+".txt", "a")
-       while conf[algo]["file_#{i}"] != nil
-         puts("Testing #{algo} with #{conf[algo]["file_#{i}"]}")
-         reset_system()
-         init_system(algoa[1])
-         skip=0
-         skip=opts["i"].to_i if opts["i"]
-         nerrors=run_test(conf[algo]["file_#{i}"], skip)
+    i=0
+    i = opts["j"].to_i if opts["j"]
+    logfile=File.open(conf["PORT"]["testlogbase"]+algo+".txt", "a")
+    while conf[algo]["file_#{i}"] != nil
+      puts("Testing #{algo} with #{conf[algo]["file_#{i}"]}")
+      reset_system()
+      init_system(algoa[1])
+      skip=0
+      skip=opts["i"].to_i if opts["i"]
+      nerrors=run_test(conf[algo]["file_#{i}"], skip)
       if nerrors == 0
         puts("\n[ok]")
         logfile.puts("[ok] "+conf[algo]["file_#{i}"]+ " ("+Time.now.to_s()+")")
@@ -312,6 +325,7 @@ algo_tasks.each do |algoa|
         logfile.puts("[error] "+nerrors.to_s+" "+conf[algo]["file_#{i}"]+ " ("+Time.now.to_s()+")")
       end
       i = i+1
+      break if opts["o"]
     end
     logfile.close()
   end