cppcheck/tools/rundaca2.py

92 lines
3.3 KiB
Python
Raw Normal View History

2015-08-20 12:57:45 +02:00
#!/usr/bin/python
import subprocess
import pexpect
import os
import shutil
import time
import sys
2016-05-10 11:00:57 +02:00
START = 0
2015-08-20 12:57:45 +02:00
PASSWORD = ''
for arg in sys.argv[1:]:
2016-07-23 13:44:05 +02:00
if len(arg) == 1:
START = '0123456789abcdefghijklmnopqrstuvwxyz'.find(arg)
if START < 0:
START = 0
else:
PASSWORD = arg
2015-08-20 12:57:45 +02:00
def compilecppcheck(CPPFLAGS):
subprocess.call(['nice', 'make', 'clean'])
subprocess.call(['nice', 'make', 'SRCDIR=build', 'CFGDIR=' + os.path.expanduser('~/cppcheck/cfg'), 'CXXFLAGS=-g -O2', 'CPPFLAGS=' + CPPFLAGS])
subprocess.call(['cp', 'cppcheck', os.path.expanduser('~/daca2/cppcheck-O2')])
def runcppcheck(rev, folder, destpath):
subprocess.call(['rm', '-rf', os.path.expanduser('~/daca2/' + folder)])
subprocess.call(['nice', '--adjustment=19', 'python', os.path.expanduser('~/cppcheck/tools/daca2.py'), folder, '--rev=' + rev, '--skip=virtuoso-opensource'])
subprocess.call(['rm', '-rf', destpath + folder])
subprocess.call(['cp', '-R', os.path.expanduser('~/daca2/' + folder), destpath + folder])
2017-06-03 12:10:41 +02:00
subprocess.call(['rm', '-rf', os.path.expanduser('~/daca2/lib' + folder)])
subprocess.call(['nice', '--adjustment=19', 'python', os.path.expanduser('~/cppcheck/tools/daca2.py'), 'lib' + folder, '--rev=' + rev])
2017-06-03 12:10:41 +02:00
subprocess.call(['rm', '-rf', destpath + 'lib' + folder])
subprocess.call(['cp', '-R', os.path.expanduser('~/daca2/lib' + folder), destpath + 'lib' + folder])
2017-06-03 12:10:41 +02:00
def daca2report(daca2folder, reportfolder):
subprocess.call(['rm', '-rf', reportfolder])
subprocess.call(['mkdir', reportfolder])
subprocess.call(['python', os.path.expanduser('~/cppcheck/tools/daca2-report.py'), '--daca2='+daca2folder, reportfolder])
# Upload file to sourceforge server using scp
2017-06-03 12:10:41 +02:00
def upload(localfolder, webfolder):
if len(PASSWORD)<3:
return
2015-08-20 12:57:45 +02:00
try:
child = pexpect.spawn(
2017-06-03 12:10:41 +02:00
'scp -r ' + localfolder + ' danielmarjamaki,cppcheck@web.sf.net:htdocs/' + webfolder)
#child.expect('upload@trac.cppcheck.net\'s password:')
child.expect('Password:')
2015-08-20 12:57:45 +02:00
child.sendline(PASSWORD)
child.interact()
except IOError:
pass
except OSError:
pass
except pexpect.TIMEOUT:
pass
2015-08-21 10:55:19 +02:00
2015-08-20 12:57:45 +02:00
def daca2(foldernum):
folders = '0123456789abcdefghijklmnopqrstuvwxyz'
folder = folders[foldernum % len(folders)]
print('Daca2 folder=' + folder)
os.chdir(os.path.expanduser('~/cppcheck'))
2017-06-03 12:10:41 +02:00
subprocess.call(['git', 'pull'])
2015-08-20 12:57:45 +02:00
p = subprocess.Popen(['git', 'show', '--format=%h'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
comm = p.communicate()
rev = comm[0]
rev = rev[:rev.find('\n')]
# unstable
compilecppcheck('-DMAXTIME=600 -DUNSTABLE')
runcppcheck(rev, folder, os.path.expanduser('~/daca2-unstable/'))
2017-06-03 12:10:41 +02:00
daca2report(os.path.expanduser('~/daca2-unstable'), os.path.expanduser('~/daca2-unstable-report'))
upload(os.path.expanduser('~/daca2-unstable-report'), 'devinfo/')
2015-08-20 12:57:45 +02:00
# stable
compilecppcheck('-DMAXTIME=600')
runcppcheck(rev, folder, os.path.expanduser('~/daca2-stable/'))
2017-06-03 12:10:41 +02:00
daca2report(os.path.expanduser('~/daca2-stable/'), os.path.expanduser('~/daca2-stable-report/'))
upload(os.path.expanduser('~/daca2-stable-report'), 'devinfo/')
2015-08-21 15:46:10 +02:00
foldernum = START
2015-08-20 12:57:45 +02:00
while True:
daca2(foldernum)
foldernum = foldernum + 1