You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							976 B
						
					
					
				
			
		
		
	
	
							33 lines
						
					
					
						
							976 B
						
					
					
				#!/usr/bin/env python3
 | 
						|
import os
 | 
						|
import signal
 | 
						|
import subprocess
 | 
						|
import time
 | 
						|
import unittest
 | 
						|
 | 
						|
from common.basedir import BASEDIR
 | 
						|
from common.timeout import Timeout
 | 
						|
from tools.plotjuggler.juggle import install
 | 
						|
 | 
						|
class TestPlotJuggler(unittest.TestCase):
 | 
						|
 | 
						|
  def test_demo(self):
 | 
						|
    install()
 | 
						|
 | 
						|
    pj = os.path.join(BASEDIR, "tools/plotjuggler/juggle.py")
 | 
						|
    p = subprocess.Popen(f'QT_QPA_PLATFORM=offscreen {pj} --demo None 1 --qlog',
 | 
						|
                         stderr=subprocess.PIPE, shell=True, start_new_session=True)
 | 
						|
 | 
						|
    # Wait for "Done reading Rlog data" signal from the plugin
 | 
						|
    output = "\n"
 | 
						|
    with Timeout(180, error_msg=output):
 | 
						|
      while output.splitlines()[-1] != "Done reading Rlog data":
 | 
						|
        output += p.stderr.readline().decode("utf-8")
 | 
						|
 | 
						|
    # ensure plotjuggler didn't crash after exiting the plugin
 | 
						|
    time.sleep(15)
 | 
						|
    self.assertEqual(p.poll(), None)
 | 
						|
    os.killpg(os.getpgid(p.pid), signal.SIGTERM)
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
  unittest.main()
 | 
						|
 |