summaryrefslogtreecommitdiff
path: root/pexpect/tools/testsweep.py
blob: 845bf3c195566c93aa27632453aa8f6089eee5ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
"""This runs testall.py on many different platforms running on the Compile Farm (cf.sourceforge.net).
"""
import pexpect
import sys
import getpass

def test_platform (platform_menu, platform_python_path):
	try:
		s = pexpect.spawn ('ssh noah@cf.sourceforge.net')
		#s.setlog (sys.stdout)
		i = s.expect (['password:', 'yes/no'])
		if i == 1:
			s.sendline ('yes')
			s.expect ('password')
		s.sendline (PASSWORD)
		s.expect ('Choose compile farm server')
		s.sendline (platform_menu)
		s.expect_exact ('$')
		s.sendline ('cd pexpect')
		s.expect_exact ('$')
		s.sendline ('. ./cvs.conf')
		s.expect_exact ('$')
		s.sendline ('cvs up -d')
		s.expect ('password:')
		s.sendline (PASSWORD)
		s.expect_exact ('$')
		s.sendline (platform_python_path)
		i = s.expect_exact (['OK','$'], timeout=900) # Tests should not run more than 15 minutes.
		if i != 0:
			RESULT = s.before
		else:
			RESULT = 'OK!'
		s.sendline ('exit')
		s.sendline ('x')
		s.close()
	except Exception, e:
		return 'Exception in platform test: ' + str(e)
	return RESULT

PASSWORD = getpass.getpass('password: ')
results = []
result = test_platform ('I', 'python tools/testall.py')
results.append (('I', '[PPC - G4] MacOS X 10.1 SERVER Edition', result))
result = test_platform ('L', 'python tools/testall.py')
results.append (('L', '[Sparc - Ultra60] Linux 2.4 (Debian 3.0)', result))
result = test_platform ('B', 'python2 tools/testall.py')
results.append (('B', '[x86] Linux 2.4 (Redhat 7.3)', result))
result = test_platform ('M', '../Python-2.3b1/python tools/testall.py')
results.append (('M', '[Sparc - R220] Sun Solaris (8) #1', result))
result = test_platform ('G', 'python tools/testall.py')
results.append (('G', '[Alpha] Linux 2.2 (Debian 3.0)', result))
print results