blob: f3bef0a17ca5a8f973f177aded99e4e5ee4a07d0 [file] [log] [blame]
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +00001#!/usr/bin/python
2import os
3import sys
4import time
Benny Prijono4adead22010-08-16 12:33:52 +00005import datetime
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +00006import ccdash
7
Benny Prijonoa72cdca2010-08-17 14:53:09 +00008INTERVAL = 300
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +00009
Benny Prijono20c26f02010-08-18 03:18:24 +000010def run_scenarios(scenarios, group):
11 # Run each scenario
12 rc = 0
13 for scenario in scenarios:
14 argv = []
15 argv.append("ccdash.py")
16 argv.append("scenario")
17 argv.append(scenario)
18 argv.append("--group")
19 argv.append(group)
20 thisrc = ccdash.main(argv)
21 if rc==0 and thisrc:
22 rc = thisrc
23 return rc
24
25
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000026if __name__ == "__main__":
27 if len(sys.argv)<=1 or sys.argv[1]=="-h" or sys.argv[1]=="--h" or sys.argv[1]=="/h":
Benny Prijono20c26f02010-08-18 03:18:24 +000028 print "This will run both Continuous and Nightly tests"
29 print ""
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000030 print "Usage: run_continuous.py scenario1.xml [scenario2.xml ...]"
Benny Prijono20c26f02010-08-18 03:18:24 +000031 print ""
32 sys.exit(1)
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000033
34 # Splice list
35 scenarios = sys.argv[1:]
36
37 # Check if scenario exists
38 for scenario in scenarios:
39 if not os.path.exists(scenario):
40 print "Error: file " + scenario + " does not exist"
41 sys.exit(1)
42
Benny Prijono20c26f02010-08-18 03:18:24 +000043 # Current date
44 utc = time.gmtime(None)
45 day = utc.tm_mday
46
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000047 # Loop foreva
48 while True:
49 argv = []
50
51 # Anything changed recently?
52 argv.append("ccdash.py")
53 argv.append("status")
54 argv.append("-w")
55 argv.append("../..")
56 rc = ccdash.main(argv)
57
Benny Prijono20c26f02010-08-18 03:18:24 +000058 utc = time.gmtime(None)
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000059
Benny Prijono20c26f02010-08-18 03:18:24 +000060 if utc.tm_mday != day or rc != 0:
61 group = ""
62 if utc.tm_mday != day:
63 day = utc.tm_mday
64 group = "Nightly"
65 elif rc != 0:
66 group = "Continuous"
67 else:
68 group = "Experimental"
69 rc = run_scenarios(scenarios, group)
70 # Sleep even if something does change
71 print str(datetime.datetime.now()) + \
72 ": done running " + group + \
73 "tests, will check again in " + str(INTERVAL) + "s.."
74 time.sleep(INTERVAL)
75 else:
76 # Nothing changed
77 print str(datetime.datetime.now()) + \
78 ": No update, will check again in " + str(INTERVAL) + "s.."
79 time.sleep(INTERVAL)
80
Benny Prijonoa6b3e7c2010-08-16 12:18:20 +000081