# run all the Autoplot jython scripts in this folder.


This does not work.

#
# tests should output test_NAME.txt, or test_NAME.png test_NAME.stdout.txt is created automatically.

import subprocess
import os 
import sys
from multiprocessing import Pool

def _runone( i ):
  print('== %s ==' % i)
  sys.stdout.flush()
  t0= time.time()
  print('started test')
  #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.run( 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( str(line) )
  STDOUT_.close()
  STDERR_.close()
  print('completed test %s in %.1f seconds' % ( i, ( time.time()-t0 ) ))
  print('')

import glob, sys, time
jobs = glob.glob('/home/jbf/ct/hudson/script/test037/[a-z0-9]*.jy')
jobs = jobs[0:1]
with Pool(6) as p:
   p.map( _runone, jobs )
   
