# run all the Autoplot jython scripts in this folder.
#
# tests should output test_NAME.txt, or test_NAME.png test_NAME.stdout.txt is created automatically.

import subprocess
import os 
import sys

def _runone( i ):
  #subprocess.call( ['echo', '%s' % i ] )
  JAVA='/usr/local/jdk1.8/bin/java'   
  JAR='/mynet/spot6/var/local/hudson/jobs/autoplot-jar-all/workspace/autoplot/Autoplot/dist/AutoplotAll.jar'
  #JAR='../../autoplot-jar-all/workspace/autoplot/Autoplot/dist/AutoplotAll.jar'

  ID= i.rsplit('/',1)[1]

  #JAVA_VM_ARGS="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=12345,suspend=n"
  JAVA_VM_ARGS=""

  if len(JAVA_VM_ARGS)==0:
     cmd= [ JAVA, '-Djava.awt.headless=true', '-cp', JAR, '-DAUTOPLOT_DATA=/usr/share/tomcat/autoplot_data', 'org.autoplot.AutoplotUI', '--script', '%s' % i ]
  else:
     cmd= [ JAVA, '-Djava.awt.headless=true' ] + JAVA_VM_ARGS.split(' ')+['-cp', JAR, '-DAUTOPLOT_DATA=/usr/share/tomcat/autoplot_data', 'org.autoplot.AutoplotUI', '--script', '%s' % i ]
  print ' '.join(cmd)

  sys.stdout.flush()
  
  STDERR_= open( 'test037_%s.stderr.txt' % ID, 'w' )

  print 'do subprocess.call...'
  proc= subprocess.Popen( cmd, stderr=STDERR_, stdout=subprocess.PIPE )
  print 'done'

  STDOUT_= open( 'test037_%s.stdout.txt' % ID, 'w' )
  for line in iter(proc.stdout.readline,''):
     STDOUT_.write( line )
  STDOUT_.close()
  STDERR_.close()

import glob, sys, time
for i in glob.glob('/home/jbf/ct/hudson/script/test037/[a-z0-9]*.jy'):
   print '== %s ==' % i
   sys.stdout.flush()
   t0= time.time()
   print 'started test'
   _runone( i )
   print 'completed test %s in %.1f seconds' % ( i, ( time.time()-t0 ) )
   print ''
