setup.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import subprocess
  2. import sys
  3. import os
  4. def get_env_for_database(args):
  5. if args.database == 'MySQL':
  6. return {
  7. 'USE_MYSQL': '1',
  8. 'MYSQL_USER': 'benchmarkdbuser',
  9. 'MYSQL_PASS': 'benchmarkdbpass',
  10. 'MYSQL_HOST': args.database_host,
  11. 'MYSQL_DB': 'hello_world'
  12. }
  13. return None
  14. def start(args, logfile, errfile):
  15. subprocess.call('rm -rf ${LWAN_BUILD}', shell=True, stderr=errfile, stdout=logfile)
  16. subprocess.call('mkdir -p ${LWAN_BUILD}', shell=True, stderr=errfile, stdout=logfile)
  17. subprocess.call('cmake ${LWAN_ROOT} -DCMAKE_BUILD_TYPE=Release && make techempower',
  18. cwd=os.environ['LWAN_BUILD'], shell=True, stderr=errfile, stdout=logfile)
  19. db_dir = os.path.join(os.environ['LWAN_ROOT'], 'techempower')
  20. exe_path = os.path.join(os.environ['LWAN_BUILD'], 'techempower', 'techempower')
  21. subprocess.Popen(exe_path, cwd=db_dir, stderr=errfile, stdout=logfile, shell=True,
  22. env = get_env_for_database(args))
  23. return 0
  24. def stop(logfile, errfile):
  25. p = subprocess.Popen(['pgrep', 'techempower'], stdout=subprocess.PIPE)
  26. out, err = p.communicate()
  27. for line in out.splitlines():
  28. pid = int(line)
  29. os.kill(pid, 2)
  30. return 0