[llvm-commits] [zorg] r99117 - in /zorg/trunk/lnt: ./ import/ lnt/ lnt/import/ lnt/viewer/ lnt/viewer/js/ lnt/viewer/resources/ lnt/viewer/zview/ test/ test/DB/ test/DB/Inputs/ test/Misc/ test/Misc/Inputs/ test/Web/ tests/ tests/DB/ tests/DB/Inputs/ tests/Misc/ tests/Misc/Inputs/ tests/Web/ viewer/ viewer/js/ viewer/resources/ viewer/zview/
Daniel Dunbar
daniel at zuster.org
Sun Mar 21 04:37:29 PDT 2010
Author: ddunbar
Date: Sun Mar 21 06:37:28 2010
New Revision: 99117
URL: http://llvm.org/viewvc/llvm-project?rev=99117&view=rev
Log:
LNT: Sink source into 'lnt' module, to match standard Python project layout.
Also, rename test to tests.
Added:
zorg/trunk/lnt/lnt/
zorg/trunk/lnt/lnt/__init__.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/__init__.py
zorg/trunk/lnt/lnt/import/
zorg/trunk/lnt/lnt/import/AppleOpenSSLReader.py
- copied, changed from r99116, zorg/trunk/lnt/import/AppleOpenSSLReader.py
zorg/trunk/lnt/lnt/import/ImportData
- copied, changed from r99116, zorg/trunk/lnt/import/ImportData
zorg/trunk/lnt/lnt/import/ImportXCBTimes
- copied, changed from r99116, zorg/trunk/lnt/import/ImportXCBTimes
zorg/trunk/lnt/lnt/import/NTAuxSubmit
- copied, changed from r99116, zorg/trunk/lnt/import/NTAuxSubmit
zorg/trunk/lnt/lnt/import/NTEmailReport.py
- copied, changed from r99116, zorg/trunk/lnt/import/NTEmailReport.py
zorg/trunk/lnt/lnt/import/NightlytestReader.py
- copied, changed from r99116, zorg/trunk/lnt/import/NightlytestReader.py
zorg/trunk/lnt/lnt/import/ServerUtil.py
- copied, changed from r99116, zorg/trunk/lnt/import/ServerUtil.py
zorg/trunk/lnt/lnt/import/SubmitData
- copied, changed from r99116, zorg/trunk/lnt/import/SubmitData
zorg/trunk/lnt/lnt/viewer/
zorg/trunk/lnt/lnt/viewer/Config.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/Config.py
zorg/trunk/lnt/lnt/viewer/NTStyleBrowser.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/NTStyleBrowser.ptl
zorg/trunk/lnt/lnt/viewer/NTUtil.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/NTUtil.py
zorg/trunk/lnt/lnt/viewer/PerfDB.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/PerfDB.py
zorg/trunk/lnt/lnt/viewer/Util.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/Util.py
zorg/trunk/lnt/lnt/viewer/__init__.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/zview/__init__.py
zorg/trunk/lnt/lnt/viewer/js/
zorg/trunk/lnt/lnt/viewer/js/View2D.js
- copied, changed from r99116, zorg/trunk/lnt/viewer/js/View2D.js
zorg/trunk/lnt/lnt/viewer/js/View2DTest.html
- copied, changed from r99116, zorg/trunk/lnt/viewer/js/View2DTest.html
zorg/trunk/lnt/lnt/viewer/machines.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/machines.ptl
zorg/trunk/lnt/lnt/viewer/nightlytest.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/nightlytest.ptl
zorg/trunk/lnt/lnt/viewer/publisher.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/publisher.py
zorg/trunk/lnt/lnt/viewer/resources/
zorg/trunk/lnt/lnt/viewer/resources/form.css
- copied, changed from r99116, zorg/trunk/lnt/viewer/resources/form.css
zorg/trunk/lnt/lnt/viewer/resources/mootools-1.2.4-core-nc.js
- copied, changed from r99116, zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js
zorg/trunk/lnt/lnt/viewer/resources/popup.js
- copied, changed from r99116, zorg/trunk/lnt/viewer/resources/popup.js
zorg/trunk/lnt/lnt/viewer/resources/sorttable.js
- copied, changed from r99116, zorg/trunk/lnt/viewer/resources/sorttable.js
zorg/trunk/lnt/lnt/viewer/resources/style.css
- copied, changed from r99116, zorg/trunk/lnt/viewer/resources/style.css
zorg/trunk/lnt/lnt/viewer/root.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/root.ptl
zorg/trunk/lnt/lnt/viewer/runs.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/runs.ptl
zorg/trunk/lnt/lnt/viewer/tests.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/tests.ptl
zorg/trunk/lnt/lnt/viewer/wsgi_restart.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/wsgi_restart.py
zorg/trunk/lnt/lnt/viewer/zorg.cfg.sample
- copied, changed from r99116, zorg/trunk/lnt/viewer/zorg.cfg.sample
zorg/trunk/lnt/lnt/viewer/zorg.cgi
- copied, changed from r99116, zorg/trunk/lnt/viewer/zorg.cgi
zorg/trunk/lnt/lnt/viewer/zorg.wsgi
- copied, changed from r99116, zorg/trunk/lnt/viewer/zorg.wsgi
zorg/trunk/lnt/lnt/viewer/zview/
zorg/trunk/lnt/lnt/viewer/zview/__init__.py
- copied, changed from r99116, zorg/trunk/lnt/viewer/__init__.py
zorg/trunk/lnt/lnt/viewer/zview/zviewui.ptl
- copied, changed from r99116, zorg/trunk/lnt/viewer/zview/zviewui.ptl
zorg/trunk/lnt/tests/
zorg/trunk/lnt/tests/DB/
zorg/trunk/lnt/tests/DB/Create.py
- copied, changed from r99116, zorg/trunk/lnt/test/DB/Create.py
zorg/trunk/lnt/tests/DB/Import.py
- copied, changed from r99116, zorg/trunk/lnt/test/DB/Import.py
zorg/trunk/lnt/tests/DB/Inputs/
zorg/trunk/lnt/tests/DB/Inputs/sample-a-small.plist
- copied, changed from r99116, zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist
zorg/trunk/lnt/tests/DB/Inputs/sample-b-small.plist
- copied, changed from r99116, zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist
zorg/trunk/lnt/tests/Misc/
zorg/trunk/lnt/tests/Misc/Inputs/
zorg/trunk/lnt/tests/Misc/Inputs/sample-a-small.plist
- copied, changed from r99116, zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist
zorg/trunk/lnt/tests/Misc/SubmitAndEmail.py
- copied, changed from r99116, zorg/trunk/lnt/test/Misc/SubmitAndEmail.py
zorg/trunk/lnt/tests/Web/
zorg/trunk/lnt/tests/Web/NightlytestMachinesRoot.py
- copied, changed from r99116, zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py
zorg/trunk/lnt/tests/Web/NightlytestRoot.py
- copied, changed from r99116, zorg/trunk/lnt/test/Web/NightlytestRoot.py
zorg/trunk/lnt/tests/Web/NightlytestRunRoot.py
- copied, changed from r99116, zorg/trunk/lnt/test/Web/NightlytestRunRoot.py
zorg/trunk/lnt/tests/Web/RootPage.py
- copied, changed from r99116, zorg/trunk/lnt/test/Web/RootPage.py
zorg/trunk/lnt/tests/lit.cfg
- copied, changed from r99116, zorg/trunk/lnt/test/lit.cfg
Removed:
zorg/trunk/lnt/import/AppleOpenSSLReader.py
zorg/trunk/lnt/import/ImportData
zorg/trunk/lnt/import/ImportXCBTimes
zorg/trunk/lnt/import/NTAuxSubmit
zorg/trunk/lnt/import/NTEmailReport.py
zorg/trunk/lnt/import/NightlytestReader.py
zorg/trunk/lnt/import/ServerUtil.py
zorg/trunk/lnt/import/SubmitData
zorg/trunk/lnt/test/DB/Create.py
zorg/trunk/lnt/test/DB/Import.py
zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist
zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist
zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist
zorg/trunk/lnt/test/Misc/SubmitAndEmail.py
zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py
zorg/trunk/lnt/test/Web/NightlytestRoot.py
zorg/trunk/lnt/test/Web/NightlytestRunRoot.py
zorg/trunk/lnt/test/Web/RootPage.py
zorg/trunk/lnt/test/lit.cfg
zorg/trunk/lnt/viewer/Config.py
zorg/trunk/lnt/viewer/NTStyleBrowser.ptl
zorg/trunk/lnt/viewer/NTUtil.py
zorg/trunk/lnt/viewer/PerfDB.py
zorg/trunk/lnt/viewer/Util.py
zorg/trunk/lnt/viewer/__init__.py
zorg/trunk/lnt/viewer/js/View2D.js
zorg/trunk/lnt/viewer/js/View2DTest.html
zorg/trunk/lnt/viewer/machines.ptl
zorg/trunk/lnt/viewer/nightlytest.ptl
zorg/trunk/lnt/viewer/publisher.py
zorg/trunk/lnt/viewer/resources/form.css
zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js
zorg/trunk/lnt/viewer/resources/popup.js
zorg/trunk/lnt/viewer/resources/sorttable.js
zorg/trunk/lnt/viewer/resources/style.css
zorg/trunk/lnt/viewer/root.ptl
zorg/trunk/lnt/viewer/runs.ptl
zorg/trunk/lnt/viewer/tests.ptl
zorg/trunk/lnt/viewer/wsgi_restart.py
zorg/trunk/lnt/viewer/zorg.cfg.sample
zorg/trunk/lnt/viewer/zorg.cgi
zorg/trunk/lnt/viewer/zorg.wsgi
zorg/trunk/lnt/viewer/zview/__init__.py
zorg/trunk/lnt/viewer/zview/zviewui.ptl
Modified:
zorg/trunk/lnt/README.txt
Modified: zorg/trunk/lnt/README.txt
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/README.txt?rev=99117&r1=99116&r2=99117&view=diff
==============================================================================
--- zorg/trunk/lnt/README.txt (original)
+++ zorg/trunk/lnt/README.txt Sun Mar 21 06:37:28 2010
@@ -11,16 +11,18 @@
The infrastructure has the following layout:
- lnt/db - Database schema, utilities, and examples of the LNT plist format.
+ $ROOT/lnt - Top-level source module
- lnt/import - Utilities for converting to the LNT plist format for test data,
- and for submitting plists to the server.
+ $ROOT/lnt/import - Utilities for converting to the LNT plist format for test
+ data, and for submitting plists to the server.
- lnt/test - Tests for the infrastructure; they currently assume they are running
- on a system with a live instance available at
- 'http://localhost/zorg/'.
+ $ROOT/lnt/viewer - The LNT web-app itself.
- lnt/viewer - The LNT web-app itself.
+ $ROOT/db - Database schema, utilities, and examples of the LNT plist format.
+
+ $ROOT/tests - Tests for the infrastructure; they currently assume they are
+ running on a system with a live instance available at
+ 'http://localhost/zorg/'.
Installation Instructions
Removed: zorg/trunk/lnt/import/AppleOpenSSLReader.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/AppleOpenSSLReader.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/AppleOpenSSLReader.py (original)
+++ zorg/trunk/lnt/import/AppleOpenSSLReader.py (removed)
@@ -1,114 +0,0 @@
-import os
-
-def parseOpenSSLFile(path):
- data = open(path).read()
- lines = list(open(path))
- lnfields = [ln.strip().split(':') for ln in lines]
- assert(lnfields[0][0] == '+H')
- header = lnfields[0]
- blockSizes = map(int, header[1:])
-
- # Cipher -> [(Block Size,Value)*]
- data = {}
- for fields in lnfields[1:]:
- # Ignore other fields
- if fields[0] != '+F':
- continue
-
- name = fields[2]
- countsPerBlock = fields[3:]
- assert len(countsPerBlock) == len(blockSizes)
- data[name] = [(b,float(c))
- for b,c in zip(blockSizes,countsPerBlock)]
-
- return data
-
-def loadData(path):
- # Look for svn-revision and timestamps.
-
- llvmRevision = ''
- startTime = endTime = ''
-
- f = os.path.join(path, 'svn-revision')
- if os.path.exists(f):
- svnRevisionData = open(f).read()
- assert(svnRevisionData[0] == 'r')
- llvmRevision = int(svnRevisionData[1:])
-
- f = os.path.join(path, 'start.timestamp')
- if os.path.exists(f):
- startTime = open(f).read().strip()
-
- f = os.path.join(path, 'finished.timestamp')
- if os.path.exists(f):
- endTime = open(f).read().strip()
-
- # Look for sub directories
- openSSLData = []
- for file in os.listdir(path):
- p = os.path.join(path, file)
- if os.path.isdir(p):
- # Look for Tests/Apple.OpenSSL.64/speed.txt
- p = os.path.join(p, 'Tests/Apple.OpenSSL.64/speed.txt')
- if os.path.exists(p):
- openSSLData.append((file, parseOpenSSLFile(p)))
-
- basename = 'apple_openssl'
-
- machine = { 'Name' : 'dgohman.apple.com',
- 'Info' : { } }
-
- run = { 'Start Time' : startTime,
- 'End Time' : endTime,
- 'Info' : { 'llvm-revision' : llvmRevision,
- 'tag' : 'apple_openssl' } }
-
- tests = []
- groupInfo = []
-
- for dirName,dirData in openSSLData:
- # Demangle compiler & flags
- if dirName.startswith('gcc'):
- compiler = 'gcc'
- elif dirName.startswith('llvm-gcc'):
- compiler = 'llvm-gcc'
- else:
- raise ValueError,compiler
- assert dirName[len(compiler)] == '-'
- flags = dirName[len(compiler)+1:]
-
- for cipher,values in dirData.items():
- testName = basename + '.' + cipher + '.ips'
- for block,value in values:
- parameters = { 'blockSize' : block,
- 'compiler' : compiler,
- 'compiler_flags' : flags }
- tests.append( { 'Name' : testName,
- 'Info' : parameters,
- 'Data' : [value] } )
-
- return { 'Machine' : machine,
- 'Run' : run,
- 'Tests' : tests,
- 'Group Info' : groupInfo }
-
-def main():
- import plistlib
- import sys
-
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog raw-data-path output")
- opts,args = parser.parse_args()
-
- if len(args) != 2:
- parser.error("incorrect number of argments")
-
- file,output = args
-
- data = loadData(file)
-
- plistlib.writePlist(data, output)
-
-if __name__=='__main__':
- main()
Removed: zorg/trunk/lnt/import/ImportData
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/ImportData?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/ImportData (original)
+++ zorg/trunk/lnt/import/ImportData (removed)
@@ -1,113 +0,0 @@
-#!/usr/bin/env python
-
-import os
-import plistlib
-import sys
-import time
-sys.path.append(os.path.join(os.path.dirname(__file__),'../'))
-
-import viewer
-from viewer import Util
-from viewer import PerfDB
-import NightlytestReader
-import AppleOpenSSLReader
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog dbpath files+")
- parser.add_option("", "--email-on-import", dest="emailOnImport", type=int,
- default=False)
- parser.add_option("", "--email-base-url", dest="emailReportURL", type=str,
- default=None)
- parser.add_option("", "--email-host", dest="emailReportHost", type=str,
- default=None)
- parser.add_option("", "--email-from", dest="emailReportFrom", type=str,
- default=None)
- parser.add_option("", "--email-to", dest="emailReportTo", type=str,
- default=None)
- parser.add_option("", "--format", dest="format",
- choices=('plist','nightlytest','apple_openssl'),
- default='plist')
- parser.add_option("", "--commit", dest="commit", type=int,
- default=True)
- parser.add_option("", "--show-sql", dest="showSQL", action="store_true",
- default=False)
- parser.add_option("", "--show-sample-count", dest="showSampleCount",
- action="store_true", default=False)
- opts,args = parser.parse_args()
-
- if len(args) < 2:
- parser.error("incorrect number of argments")
-
- dbpath = args[0]
-
- startTime = time.time()
- db = PerfDB.PerfDB(dbpath, echo=opts.showSQL)
- importFiles(db, args[1:])
- if opts.commit:
- db.commit()
- else:
- db.rollback()
- print 'TOTAL IMPORT TIME: %.2fs' % (time.time() - startTime,)
-
-def importFiles(db, files):
- importer = { 'plist' : plistlib.readPlist,
- 'nightlytest' : NightlytestReader.loadSentData,
- 'apple_openssl' : AppleOpenSSLReader.loadData }[opts.format]
-
- def consumer(file):
- try:
- return importer(file)
- except KeyboardInterrupt:
- raise
- except:
- print 'ERROR: %r: import failed' % file
- import traceback
- traceback.print_exc()
- return None
-
- numMachines = db.getNumMachines()
- numRuns = db.getNumRuns()
- numTests = db.getNumTests()
-
- # If the database gets fragmented, count(*) in SQLite can get really slow!?!
- if opts.showSampleCount:
- numSamples = db.getNumSamples()
-
- for file in files:
- print 'IMPORT: %s' % file
- startTime = time.time()
- data = consumer(file)
- print ' LOAD TIME: %.2fs' % (time.time() - startTime,)
- if data is None:
- continue
-
- startTime = time.time()
- success,(machine,run) = PerfDB.importDataFromDict(db, data)
- print ' IMPORT TIME: %.2fs' % (time.time() - startTime,)
- if not success:
- print " IGNORING DUPLICATE RUN"
- print " MACHINE: %d" % (run.machine_id, )
- print " START : %s" % (run.start_time, )
- print " END : %s" % (run.end_time, )
- for ri in run.info.values():
- print " INFO : %r = %r" % (ri.key, ri.value)
- continue
- else:
- if opts.emailOnImport:
- import NTEmailReport
- NTEmailReport.emailReport(db, run,
- opts.emailReportURL,
- opts.emailReportHost,
- opts.emailReportFrom,
- opts.emailReportTo)
-
- print "ADDED: %d machines" % (db.getNumMachines() - numMachines,)
- print "ADDED: %d runs" % (db.getNumRuns() - numRuns,)
- print "ADDED: %d tests" % (db.getNumTests() - numTests,)
- if opts.showSampleCount:
- print "ADDED: %d samples" % (db.getNumSamples() - numSamples)
-
-if __name__ == '__main__':
- main()
Removed: zorg/trunk/lnt/import/ImportXCBTimes
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/ImportXCBTimes?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/ImportXCBTimes (original)
+++ zorg/trunk/lnt/import/ImportXCBTimes (removed)
@@ -1,107 +0,0 @@
-#!/usr/bin/env python
-
-import os
-import time
-import sys
-sys.path.append(os.path.join(os.path.dirname(__file__),'../'))
-import viewer
-from viewer import Util
-from viewer import PerfDB
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog file dbpath")
- parser.add_option("", "--test-prefix",
- action="store", dest="testPrefix", default=None)
- opts,args = parser.parse_args()
-
- if len(args) != 2:
- parser.error("incorrect number of argments")
- if not opts.testPrefix:
- parser.error("must specify test prefix")
-
- dbpath,file = args
-
- globals = {}
- exec open(file) in globals, globals
-
- db = PerfDB.PerfDB(dbpath)
-
- numMachines = db.getNumMachines()
- numTests = db.getNumTests()
- numSamples = db.getNumSamples()
-
- # Hardcode some things that aren't in the file
- machine = PerfDB.Machine(-1,
- name = 'lordcrumb.apple.com',
- arch = 'Intel i386',
- os = 'SnowLeopard',
- hwconfig = '<unknown>',
- compiler = '<unknown>')
- machine = db.getOrCreateMachine(machine)
- print "MACHINE: %r" % machine
-
- # Treat as a single "run"; our DB format has no way to lock
- # individual samples together. I recall now that this was the
- # motivation in treating a sample as a group of numbers, not just
- # one.
-
- # Rough guess.
- mtime = os.stat(file).st_mtime
- timestamp = time.strftime('%Y-%m-%dT%H:%M:%Sz', time.localtime(mtime))
-
- # FIXME: Need to extract revision. :(
- run = db.createRun(machine, PerfDB.Run(-1, -1, timestamp=timestamp, svnRevision=None))
- print "RUN: %r" % run
-
- ####
-
- runs = globals.get('runs')
- for keys,data in runs:
- # Mangle a test name
- testName = '%s:threads=%s:pch=%s:mode=%s' % (opts.testPrefix,
- keys.get('threads'),
- int(keys.get('pch') == 'pch'),
- keys.get('script'))
- compiler = keys.get('cc')
- compiler = compiler.replace('clang_driver','clang')
- compiler = compiler.replace('_','/')
- compiler = compiler.replace('xcc','ccc')
- compilerOpts = '-O0,-g'
-
- userTest = db.getOrCreateTest(PerfDB.Test(-1,
- name = testName,
- subtest = 'user',
- kindID = None,
- groupID = None,
- compiler = compiler,
- compilerOpts = compilerOpts))
- sysTest = db.getOrCreateTest(PerfDB.Test(-1,
- name = testName,
- subtest = 'sys',
- kindID = None,
- groupID = None,
- compiler = compiler,
- compilerOpts = compilerOpts))
- wallTest = db.getOrCreateTest(PerfDB.Test(-1,
- name = testName,
- subtest = 'wall',
- kindID = None,
- groupID = None,
- compiler = compiler,
- compilerOpts = compilerOpts))
- assert data['version'] == 0
- for (mem,user,sys,wall) in data['samples']:
- db.addSample(userTest, run, PerfDB.Sample(-1, -1, -1, '', user))
- db.addSample(sysTest, run, PerfDB.Sample(-1, -1, -1, '', sys))
- db.addSample(wallTest, run, PerfDB.Sample(-1, -1, -1, '', wall))
-
- db.commit()
-
- print "ADDED: %d machines, %d tests, and %d samples." % (db.getNumMachines() - numMachines,
- db.getNumTests() - numTests,
- db.getNumSamples() - numSamples)
-
-if __name__ == '__main__':
- main()
Removed: zorg/trunk/lnt/import/NTAuxSubmit
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/NTAuxSubmit?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/NTAuxSubmit (original)
+++ zorg/trunk/lnt/import/NTAuxSubmit (removed)
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import NightlytestReader
-import ServerUtil
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog {nightlytest sentdata.txt}*")
- parser.add_option("", "--commit", dest="commit", type=int,
- default=True)
- parser.add_option("", "--no-convert", dest="noConvert")
-
- # FIXME: It would be nice to support an easy mechanism for localized
- # instances of the LNT infrastructure to default to the correct server for
- # their installation.
- parser.add_option("", "--server", dest="serverUrl", type=str,
- default="http://llvm.org/perf/db_nt_internal/submitRun")
-
- opts,args = parser.parse_args()
-
- if not args:
- parser.error("no input files")
-
- for inputFile in args:
- print '%s: note: submitting %s' % (sys.argv[0], inputFile)
-
- if opts.noConvert:
- plistPath = inputFile
- else:
- # Convert to the zorg format.
- #
- # FIXME: Avoid temp file.
- plistPath = "/tmp/t.plist"
- NightlytestReader.convertNTData(inputFile, plistPath)
-
- # Send it off.
- ServerUtil.submitFiles(opts.serverUrl, [plistPath], opts.commit)
-
-if __name__ == '__main__':
- main()
Removed: zorg/trunk/lnt/import/NTEmailReport.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/NTEmailReport.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/NTEmailReport.py (original)
+++ zorg/trunk/lnt/import/NTEmailReport.py (removed)
@@ -1,214 +0,0 @@
-#!/usr/bin/python
-
-import os
-import smtplib
-import sys
-sys.path.append(os.path.join(os.path.dirname(__file__),'../'))
-
-import StringIO
-import viewer
-from viewer import PerfDB
-from viewer.NTUtil import *
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog database run-id baseurl sendmail-host from to")
- opts,args = parser.parse_args()
-
- if len(args) != 6:
- parser.error("incorrect number of argments")
-
- dbpath,runID,baseurl,host,from_,to = args
-
- db = PerfDB.PerfDB(dbpath)
- run = db.getRun(int(runID))
-
- emailReport(db, run, baseurl, host, from_, to)
-
-def emailReport(db, run, baseurl, host, from_, to):
- import email.mime.text
-
- subject, report = getReport(db, run, baseurl)
-
- msg = email.mime.text.MIMEText(report)
- msg['Subject'] = subject
- msg['From'] = from_
- msg['To'] = to
-
- s = smtplib.SMTP(host)
- s.sendmail(from_, [to], msg.as_string())
- s.quit()
-
-def findPreceedingRun(query, run):
- """findPreceedingRun - Find the most recent run in query which
- preceeds run."""
- best = None
- for r in query:
- # Restrict to nightlytest runs.
- if 'tag' in r.info and r.info['tag'].value != 'nightlytest':
- continue
-
- # Select most recent run prior to the one we are reporting on.
- if (r.start_time < run.start_time and
- (best is None or r.start_time > best.start_time)):
- best = r
- return best
-
-def getReport(db, run, baseurl):
- report = StringIO.StringIO()
-
- machine = run.machine
- compareTo = None
-
- # Find comparison run.
- # FIXME: Share this code with similar stuff in the viewer.
- # FIXME: Scalability.
- compareCrossesMachine = False
- compareTo = findPreceedingRun(db.runs(machine=machine), run)
-
- # If we didn't find a comparison run against this machine, look
- # for a comparison run against the same machine name, and warn the
- # user we are crosses machines.
- if compareTo is None:
- compareCrossesMachine = True
- q = db.session.query(PerfDB.Run).join(PerfDB.Machine)
- q = q.filter_by(name=machine.name)
- compareTo = findPreceedingRun(q, run)
-
- summary = RunSummary()
- summary.addRun(db, run)
- if compareTo:
- summary.addRun(db, compareTo)
-
- def getTestValue(run, testname, keyname):
- fullname = 'nightlytest.' + testname + '.' + keyname
- t = summary.testMap.get(str(fullname))
- if t is None:
- return None
- samples = summary.getRunSamples(run).get(t.id)
- if not samples:
- return None
- return samples[0]
- def getTestSuccess(run, testname, keyname):
- res = getTestValue(run, testname, keyname + '.success')
- if res is None:
- return res
- return not not res
-
- newPasses = Util.multidict()
- newFailures = Util.multidict()
- addedTests = Util.multidict()
- removedTests = Util.multidict()
- allTests = set()
- allFailures = set()
- allFailuresByKey = Util.multidict()
- for keyname,title in kTSKeys.items():
- for testname in summary.testNames:
- curResult = getTestSuccess(run, testname, keyname)
- prevResult = getTestSuccess(compareTo, testname, keyname)
-
- if curResult is not None:
- allTests.add((testname,keyname))
- if curResult is False:
- allFailures.add((testname,keyname))
- allFailuresByKey[title] = testname
-
- # Count as new pass if it passed, and previous result was failure.
- if curResult and prevResult == False:
- newPasses[testname] = title
-
- # Count as new failure if it failed, and previous result was not
- # failure.
- if curResult == False and prevResult != False:
- newFailures[testname] = title
-
- if curResult is not None and prevResult is None:
- addedTests[testname] = title
- if curResult is None and prevResult is not None:
- removedTests[testname] = title
-
- changes = Util.multidict()
- for i,(name,key) in enumerate(kComparisonKinds):
- if not key:
- # FIXME: File Size
- continue
-
- for testname in summary.testNames:
- curValue = getTestValue(run, testname, key)
- prevValue = getTestValue(compareTo, testname, key)
-
- # Skip missing tests.
- if curValue is None or prevValue is None:
- continue
-
- pct = Util.safediv(curValue, prevValue)
- if pct is None:
- continue
- pctDelta = pct - 1.
- if abs(pctDelta) < .05:
- continue
- if min(prevValue, curValue) <= .2:
- continue
-
- changes[name] = (testname, curValue, prevValue, pctDelta)
-
- if baseurl[-1] == '/':
- baseurl = baseurl[:-1]
- print >>report, """%s/%d/""" % (baseurl, run.id)
- print >>report, """Name: %s""" % (machine.info['name'].value,)
- print >>report, """Nickname: %s:%d""" % (machine.name, machine.number)
- print >>report
- print >>report, """Run: %d, Start Time: %s, End Time: %s""" % (run.id, run.start_time, run.end_time)
- if compareTo:
- print >>report, """Comparing To: %d, Start Time: %s, End Time: %s""" % (compareTo.id, compareTo.start_time, compareTo.end_time)
- if compareCrossesMachine:
- print >>report, """*** WARNING ***:""",
- print >>report, """comparison is against a different machine""",
- print >>report, """(%s:%d)""" % (compareTo.machine.name,
- compareTo.machine.number)
- else:
- print >>report, """Comparing To: (none)"""
- print >>report
-
- print >>report, """--- Changes Summary ---"""
- for title,elts in (('New Test Passes', newPasses),
- ('New Test Failures', newFailures),
- ('Added Tests', addedTests),
- ('Removed Tests', removedTests)):
- print >>report, """%s: %d""" % (title,
- sum([len(values)
- for key,values in elts.items()]))
- numSignificantChanges = sum([len(changelist)
- for name,changelist in changes.items()])
- print >>report, """Significant Changes: %d""" % (numSignificantChanges,)
- print >>report
- print >>report, """--- Tests Summary ---"""
- print >>report, """Total Tests: %d""" % (len(allTests),)
- print >>report, """Total Test Failures: %d""" % (len(allFailures),)
- print >>report
- print >>report, """Total Test Failures By Type:"""
- for name,items in Util.sorted(allFailuresByKey.items()):
- print >>report, """ %s: %d""" % (name, len(set(items)))
-
- print >>report
- print >>report, """--- Changes Detail ---"""
- for title,elts in (('New Test Passes', newPasses),
- ('New Test Failures', newFailures),
- ('Added Tests', addedTests),
- ('Removed Tests', removedTests)):
- print >>report, """%s:""" % (title,)
- print >>report, "".join("%s [%s]\n" % (key, ", ".join(values))
- for key,values in Util.sorted(elts.items()))
- print >>report, """Significant Changes in Test Results:"""
- for name,changelist in changes.items():
- print >>report, """%s:""" % name
- for name,curValue,prevValue,delta in Util.sorted(changelist):
- print >>report, """ %s: %.2f%% (%.4f => %.4f)""" % (name, delta*100, prevValue, curValue)
-
- # FIXME: Where is the old mailer getting the arch from?
- subject = """%s nightly tester results""" % machine.name
- return subject,report.getvalue()
-
-if __name__ == '__main__':
- main()
Removed: zorg/trunk/lnt/import/NightlytestReader.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/NightlytestReader.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/NightlytestReader.py (original)
+++ zorg/trunk/lnt/import/NightlytestReader.py (removed)
@@ -1,242 +0,0 @@
-#!/usr/bin/env python
-
-import re
-
-kDataKeyStart = re.compile('(.*) =>(.*)')
-
-def loadSentData(path):
- def parseDGResults(text):
- results = {}
- if 'Dejagnu skipped by user choice' in text:
- return results
- for ln in text.strip().split('\n'):
- result,value = ln.split(':',1)
- results[result] = results.get(result,[])
- results[result].append(value)
- return results
-
- basename = 'nightlytest'
-
- # Guess the format (server side or client side) based on the first
- # character.
- isServerSide = (open(path).read(1) == '\'')
-
- f = open(path)
- data = {}
-
- current = None
- inData = False
- for ln in f:
- if inData:
- if ln == 'EOD\n':
- inData = False
- else:
- data[current] += ln
- continue
-
- m = kDataKeyStart.match(ln)
- if m:
- current,value = m.groups()
- if isServerSide:
- assert current[0] == current[-1] == "'"
- current = current[1:-1]
- assert value[0] == value[1] == ' '
- value = value[2:]
- if value == '<<EOD':
- value = ''
- inData = True
- else:
- assert value[0] == value[-2] == '"'
- assert value[-1] == ','
- value = value[1:-2]
- data[current] = value
- elif isServerSide:
- assert ln == ',\n'
- else:
- assert current is not None
- data[current] += ln
-
- # Things we are ignoring for now
- data.pop('a_file_sizes')
- data.pop('all_tests')
- data.pop('build_data')
- data.pop('cvs_dir_count')
- data.pop('cvs_file_count')
- data.pop('cvsaddedfiles')
- data.pop('cvsmodifiedfiles')
- data.pop('cvsremovedfiles')
- data.pop('cvsusercommitlist')
- data.pop('cvsuserupdatelist')
- data.pop('dejagnutests_log')
- data.pop('expfail_tests')
- data.pop('lines_of_code')
- data.pop('llcbeta_options')
- data.pop('new_tests')
- data.pop('o_file_sizes')
- data.pop('passing_tests')
- data.pop('removed_tests')
- data.pop('target_triple')
- data.pop('unexpfail_tests')
- data.pop('warnings')
- data.pop('warnings_added')
- data.pop('warnings_removed')
-
- starttime = data.pop('starttime').strip()
- endtime = data.pop('endtime').strip()
-
- nickname = data.pop('nickname').strip()
- machine_data = data.pop('machine_data').strip()
- buildstatus = data.pop('buildstatus').strip()
- configtime_user = data.pop('configtime_cpu')
- configtime_wall = data.pop('configtime_wall')
- checkouttime_user = data.pop('cvscheckouttime_cpu')
- checkouttime_wall = data.pop('cvscheckouttime_wall')
- dgtime_user = data.pop('dejagnutime_cpu')
- dgtime_wall = data.pop('dejagnutime_wall')
- buildtime_wall = float(data.pop('buildtime_wall').strip())
- buildtime_user = float(data.pop('buildtime_cpu').strip())
- gcc_version = data.pop('gcc_version')
- dejagnutests_results = data.pop('dejagnutests_results')
- multisource = data.pop('multisource_programstable')
- singlesource = data.pop('singlesource_programstable')
- externals = data.pop('externalsource_programstable')
-
- assert not data.keys()
-
- machine = { 'Name' : nickname,
- 'Info' : { 'gcc_version' : gcc_version } }
- for ln in machine_data.split('\n'):
- ln = ln.strip()
- if not ln:
- continue
- assert ':' in ln
- key,value = ln.split(':',1)
- machine['Info'][key] = value
-
- # We definitely don't want these in the machine data.
- if 'time' in machine['Info']:
- machine['Info'].pop('time')
- if 'date' in machine['Info']:
- machine['Info'].pop('date')
-
- run = { 'Start Time' : starttime,
- 'End Time' : endtime,
- 'Info' : { 'tag' : 'nightlytest' } }
-
- tests = []
-
- groupInfo = []
-
- # llvm-test doesn't provide this
- infoData = {}
-
- # Summary test information
- tests.append( { 'Name' : basename + '.Summary.configtime.wall',
- 'Info' : infoData,
- 'Data' : [configtime_wall] } )
- tests.append( { 'Name' : basename + '.Summary.configtime.user',
- 'Info' : infoData,
- 'Data' : [configtime_user] } )
- tests.append( { 'Name' : basename + '.Summary.checkouttime.wall',
- 'Info' : infoData,
- 'Data' : [checkouttime_wall] } )
- tests.append( { 'Name' : basename + '.Summary.checkouttime.user',
- 'Info' : infoData,
- 'Data' : [checkouttime_user] } )
- tests.append( { 'Name' : basename + '.Summary.buildtime.wall',
- 'Info' : infoData,
- 'Data' : [buildtime_wall] } )
- tests.append( { 'Name' : basename + '.Summary.buildtime.user',
- 'Info' : infoData,
- 'Data' : [buildtime_user] } )
- tests.append( { 'Name' : basename + '.Summary.dgtime.wall',
- 'Info' : infoData,
- 'Data' : [dgtime_wall] } )
- tests.append( { 'Name' : basename + '.Summary.dgtime.user',
- 'Info' : infoData,
- 'Data' : [dgtime_user] } )
- tests.append( { 'Name' : basename + '.Summary.buildstatus',
- 'Info' : infoData,
- 'Data' : [buildstatus == 'OK'] } )
-
- # DejaGNU Info
- results = parseDGResults(dejagnutests_results)
- for name in ('PASS', 'FAIL', 'XPASS', 'XFAIL'):
- tests.append( { 'Name' : basename + '.DejaGNU.' + name,
- 'Info' : infoData,
- 'Data' : [len(results.get(name,[]))] } )
-
- # llvm-test results
- groupInfo.append( { 'Name' : basename,
- 'Primary' : 1 } )
- for groupname,data in (('SingleSource', singlesource),
- ('MultiSource', multisource),
- ('Externals', externals)):
- groupInfo.append( { 'Name' : basename + '.' + groupname,
- 'Primary' : 1 } )
- lines = data.split('\n')
- header = lines[0].strip().split(',')
- for ln in lines[1:]:
- ln = ln.strip()
- if not ln:
- continue
- entry = dict([(k,v.strip())
- for k,v in zip(header, ln.split(','))])
- testname = basename + '.%s/%s' % (groupname,
- entry['Program'].replace('.','_'))
- groupInfo.append( { 'Name' : testname,
- 'Primary' : 1 } )
-
- for name,key,tname in (('gcc.compile', 'GCCAS', 'time'),
- ('bc.compile', 'Bytecode', 'size'),
- ('llc.compile', 'LLC compile', 'time'),
- ('llc-beta.compile', 'LLC-BETA compile', 'time'),
- ('jit.compile', 'JIT codegen', 'time'),
- ('gcc.exec', 'GCC', 'time'),
- ('cbe.exec', 'CBE', 'time'),
- ('llc.exec', 'LLC', 'time'),
- ('llc-beta.exec', 'LLC-BETA', 'time'),
- ('jit.exec', 'JIT', 'time'),
- ):
- time = entry[key]
- if time == '*':
- tests.append( { 'Name' : testname + '.%s.success' % name,
- 'Info' : infoData,
- 'Data' : [0] } )
- else:
- tests.append( { 'Name' : testname + '.%s.success' % name,
- 'Info' : infoData,
- 'Data' : [1] } )
- tests.append( { 'Name' : testname + '.%s.%s' % (name, tname),
- 'Info' : infoData,
- 'Data' : [float(time)] } )
- pass
-
- return { 'Machine' : machine,
- 'Run' : run,
- 'Tests' : tests,
- 'Group Info' : groupInfo }
-
-def convertNTData(inputPath, outputPath):
- """convertNTData - Convert a nightlytest "sentdata.txt" file into a zorg
- plist file."""
- import plistlib
-
- data = loadSentData(inputPath)
- plistlib.writePlist(data, outputPath)
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog file output")
- opts,args = parser.parse_args()
-
- if len(args) != 2:
- parser.error("incorrect number of argments")
-
- file,output = args
-
- convertNTData(file, output)
-
-if __name__=='__main__':
- main()
Removed: zorg/trunk/lnt/import/ServerUtil.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/ServerUtil.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/ServerUtil.py (original)
+++ zorg/trunk/lnt/import/ServerUtil.py (removed)
@@ -1,14 +0,0 @@
-import plistlib
-import urllib
-import urllib2
-import urllib2_file
-
-def submitFiles(url, files, commit):
- for file in files:
- data = { 'file' : open(file),
- 'commit' : ("0","1")[not not commit] }
-
- response = urllib2.urlopen(url, data)
- the_page = response.read()
-
- print the_page
Removed: zorg/trunk/lnt/import/SubmitData
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/import/SubmitData?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/import/SubmitData (original)
+++ zorg/trunk/lnt/import/SubmitData (removed)
@@ -1,19 +0,0 @@
-#!/usr/bin/python
-
-import ServerUtil
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog serverUrl files+")
- parser.add_option("", "--commit", dest="commit", type=int,
- default=False)
- opts,args = parser.parse_args()
-
- if len(args) < 2:
- parser.error("incorrect number of argments")
-
- ServerUtil.submitFiles(args[0], args[1:], opts.commit)
-
-if __name__ == '__main__':
- main()
Copied: zorg/trunk/lnt/lnt/__init__.py (from r99116, zorg/trunk/lnt/viewer/__init__.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/__init__.py?p2=zorg/trunk/lnt/lnt/__init__.py&p1=zorg/trunk/lnt/viewer/__init__.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/AppleOpenSSLReader.py (from r99116, zorg/trunk/lnt/import/AppleOpenSSLReader.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/AppleOpenSSLReader.py?p2=zorg/trunk/lnt/lnt/import/AppleOpenSSLReader.py&p1=zorg/trunk/lnt/import/AppleOpenSSLReader.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/ImportData (from r99116, zorg/trunk/lnt/import/ImportData)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/ImportData?p2=zorg/trunk/lnt/lnt/import/ImportData&p1=zorg/trunk/lnt/import/ImportData&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/ImportXCBTimes (from r99116, zorg/trunk/lnt/import/ImportXCBTimes)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/ImportXCBTimes?p2=zorg/trunk/lnt/lnt/import/ImportXCBTimes&p1=zorg/trunk/lnt/import/ImportXCBTimes&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/NTAuxSubmit (from r99116, zorg/trunk/lnt/import/NTAuxSubmit)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/NTAuxSubmit?p2=zorg/trunk/lnt/lnt/import/NTAuxSubmit&p1=zorg/trunk/lnt/import/NTAuxSubmit&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/NTEmailReport.py (from r99116, zorg/trunk/lnt/import/NTEmailReport.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/NTEmailReport.py?p2=zorg/trunk/lnt/lnt/import/NTEmailReport.py&p1=zorg/trunk/lnt/import/NTEmailReport.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/NightlytestReader.py (from r99116, zorg/trunk/lnt/import/NightlytestReader.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/NightlytestReader.py?p2=zorg/trunk/lnt/lnt/import/NightlytestReader.py&p1=zorg/trunk/lnt/import/NightlytestReader.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/ServerUtil.py (from r99116, zorg/trunk/lnt/import/ServerUtil.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/ServerUtil.py?p2=zorg/trunk/lnt/lnt/import/ServerUtil.py&p1=zorg/trunk/lnt/import/ServerUtil.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/import/SubmitData (from r99116, zorg/trunk/lnt/import/SubmitData)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/import/SubmitData?p2=zorg/trunk/lnt/lnt/import/SubmitData&p1=zorg/trunk/lnt/import/SubmitData&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/Config.py (from r99116, zorg/trunk/lnt/viewer/Config.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/Config.py?p2=zorg/trunk/lnt/lnt/viewer/Config.py&p1=zorg/trunk/lnt/viewer/Config.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/NTStyleBrowser.ptl (from r99116, zorg/trunk/lnt/viewer/NTStyleBrowser.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/NTStyleBrowser.ptl?p2=zorg/trunk/lnt/lnt/viewer/NTStyleBrowser.ptl&p1=zorg/trunk/lnt/viewer/NTStyleBrowser.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/NTUtil.py (from r99116, zorg/trunk/lnt/viewer/NTUtil.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/NTUtil.py?p2=zorg/trunk/lnt/lnt/viewer/NTUtil.py&p1=zorg/trunk/lnt/viewer/NTUtil.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/PerfDB.py (from r99116, zorg/trunk/lnt/viewer/PerfDB.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/PerfDB.py?p2=zorg/trunk/lnt/lnt/viewer/PerfDB.py&p1=zorg/trunk/lnt/viewer/PerfDB.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/Util.py (from r99116, zorg/trunk/lnt/viewer/Util.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/Util.py?p2=zorg/trunk/lnt/lnt/viewer/Util.py&p1=zorg/trunk/lnt/viewer/Util.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/__init__.py (from r99116, zorg/trunk/lnt/viewer/zview/__init__.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/__init__.py?p2=zorg/trunk/lnt/lnt/viewer/__init__.py&p1=zorg/trunk/lnt/viewer/zview/__init__.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/js/View2D.js (from r99116, zorg/trunk/lnt/viewer/js/View2D.js)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/js/View2D.js?p2=zorg/trunk/lnt/lnt/viewer/js/View2D.js&p1=zorg/trunk/lnt/viewer/js/View2D.js&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/js/View2DTest.html (from r99116, zorg/trunk/lnt/viewer/js/View2DTest.html)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/js/View2DTest.html?p2=zorg/trunk/lnt/lnt/viewer/js/View2DTest.html&p1=zorg/trunk/lnt/viewer/js/View2DTest.html&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/machines.ptl (from r99116, zorg/trunk/lnt/viewer/machines.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/machines.ptl?p2=zorg/trunk/lnt/lnt/viewer/machines.ptl&p1=zorg/trunk/lnt/viewer/machines.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/nightlytest.ptl (from r99116, zorg/trunk/lnt/viewer/nightlytest.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/nightlytest.ptl?p2=zorg/trunk/lnt/lnt/viewer/nightlytest.ptl&p1=zorg/trunk/lnt/viewer/nightlytest.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/publisher.py (from r99116, zorg/trunk/lnt/viewer/publisher.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/publisher.py?p2=zorg/trunk/lnt/lnt/viewer/publisher.py&p1=zorg/trunk/lnt/viewer/publisher.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/resources/form.css (from r99116, zorg/trunk/lnt/viewer/resources/form.css)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/resources/form.css?p2=zorg/trunk/lnt/lnt/viewer/resources/form.css&p1=zorg/trunk/lnt/viewer/resources/form.css&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/resources/mootools-1.2.4-core-nc.js (from r99116, zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/resources/mootools-1.2.4-core-nc.js?p2=zorg/trunk/lnt/lnt/viewer/resources/mootools-1.2.4-core-nc.js&p1=zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/resources/popup.js (from r99116, zorg/trunk/lnt/viewer/resources/popup.js)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/resources/popup.js?p2=zorg/trunk/lnt/lnt/viewer/resources/popup.js&p1=zorg/trunk/lnt/viewer/resources/popup.js&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/resources/sorttable.js (from r99116, zorg/trunk/lnt/viewer/resources/sorttable.js)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/resources/sorttable.js?p2=zorg/trunk/lnt/lnt/viewer/resources/sorttable.js&p1=zorg/trunk/lnt/viewer/resources/sorttable.js&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/resources/style.css (from r99116, zorg/trunk/lnt/viewer/resources/style.css)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/resources/style.css?p2=zorg/trunk/lnt/lnt/viewer/resources/style.css&p1=zorg/trunk/lnt/viewer/resources/style.css&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/root.ptl (from r99116, zorg/trunk/lnt/viewer/root.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/root.ptl?p2=zorg/trunk/lnt/lnt/viewer/root.ptl&p1=zorg/trunk/lnt/viewer/root.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/runs.ptl (from r99116, zorg/trunk/lnt/viewer/runs.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/runs.ptl?p2=zorg/trunk/lnt/lnt/viewer/runs.ptl&p1=zorg/trunk/lnt/viewer/runs.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/tests.ptl (from r99116, zorg/trunk/lnt/viewer/tests.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/tests.ptl?p2=zorg/trunk/lnt/lnt/viewer/tests.ptl&p1=zorg/trunk/lnt/viewer/tests.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/wsgi_restart.py (from r99116, zorg/trunk/lnt/viewer/wsgi_restart.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/wsgi_restart.py?p2=zorg/trunk/lnt/lnt/viewer/wsgi_restart.py&p1=zorg/trunk/lnt/viewer/wsgi_restart.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/zorg.cfg.sample (from r99116, zorg/trunk/lnt/viewer/zorg.cfg.sample)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/zorg.cfg.sample?p2=zorg/trunk/lnt/lnt/viewer/zorg.cfg.sample&p1=zorg/trunk/lnt/viewer/zorg.cfg.sample&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/zorg.cgi (from r99116, zorg/trunk/lnt/viewer/zorg.cgi)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/zorg.cgi?p2=zorg/trunk/lnt/lnt/viewer/zorg.cgi&p1=zorg/trunk/lnt/viewer/zorg.cgi&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/zorg.wsgi (from r99116, zorg/trunk/lnt/viewer/zorg.wsgi)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/zorg.wsgi?p2=zorg/trunk/lnt/lnt/viewer/zorg.wsgi&p1=zorg/trunk/lnt/viewer/zorg.wsgi&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/zview/__init__.py (from r99116, zorg/trunk/lnt/viewer/__init__.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/zview/__init__.py?p2=zorg/trunk/lnt/lnt/viewer/zview/__init__.py&p1=zorg/trunk/lnt/viewer/__init__.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/lnt/viewer/zview/zviewui.ptl (from r99116, zorg/trunk/lnt/viewer/zview/zviewui.ptl)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/lnt/viewer/zview/zviewui.ptl?p2=zorg/trunk/lnt/lnt/viewer/zview/zviewui.ptl&p1=zorg/trunk/lnt/viewer/zview/zviewui.ptl&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Removed: zorg/trunk/lnt/test/DB/Create.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/DB/Create.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/DB/Create.py (original)
+++ zorg/trunk/lnt/test/DB/Create.py (removed)
@@ -1,73 +0,0 @@
-# RUN: rm -f %t.db
-# RUN: sqlite3 %t.db ".read %src_root/db/CreateTables.sql"
-# RUN: python %s %t.db
-
-import sys
-from viewer.PerfDB import PerfDB, Run
-
-# Check creation.
-
-db = PerfDB(sys.argv[1])
-
-assert db.getNumMachines() == 0
-assert db.getNumRuns() == 0
-assert db.getNumTests() == 0
-
-m,created = db.getOrCreateMachine("machine-0", [('m_key','m_value')])
-assert created
-
-r,created = db.getOrCreateRun(m, '2000-01-02 03:04:05', '2006-07-08 09:10:11',
- [('r_key','r_value')])
-
-assert created
-t,created = db.getOrCreateTest("test-0", [('t_key','t_value')])
-assert created
-
-s = db.addSample(r, t, 1.0)
-
-print m
-print r
-print t
-
-db.commit()
-
-# Check uniquing.
-
-db2 = PerfDB(sys.argv[1])
-assert [m.id] == [i.id for i in db2.machines()]
-assert [r.id] == [i.id for i in db2.runs().all()]
-assert [t.id] == [i.id for i in db2.tests().all()]
-assert [s.id] == [i.id for i in db2.samples().all()]
-
-m2,created = db2.getOrCreateMachine("machine-0", [('m_key','m_value')])
-assert m.id == m2.id and not created
-
-r2,created = db2.getOrCreateRun(m, '2000-01-02 03:04:05', '2006-07-08 09:10:11',
- [('r_key','r_value')])
-assert r.id == r2.id and not created
-
-t2,created = db2.getOrCreateTest("test-0", [('t_key','t_value')])
-assert t.id == t2.id and not created
-
-s2 = db2.addSample(r2, t2, 2.0)
-assert s.id != s2.id
-
-assert r.id == s.run.id == s2.run.id
-assert t.id == s.test.id == s2.test.id
-
-db2.commit()
-
-# Check load.
-
-db3 = PerfDB(sys.argv[1])
-m3 = db3.machines().one()
-r3 = db3.runs().one()
-t3 = db3.tests().one()
-s3a,s3b = db3.samples().all()
-print m3,r3,t3,s3a,s3b
-
-assert m.id == m3.id
-assert r.id == r3.id
-assert t.id == t3.id
-assert s.id == s3a.id
-assert s2.id == s3b.id
Removed: zorg/trunk/lnt/test/DB/Import.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/DB/Import.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/DB/Import.py (original)
+++ zorg/trunk/lnt/test/DB/Import.py (removed)
@@ -1,67 +0,0 @@
-# RUN: rm -f %t.db
-# RUN: sqlite3 %t.db ".read %src_root/db/CreateTables.sql"
-
-# RUN: %src_root/import/ImportData --show-sample-count \
-# RUN: %t.db %S/Inputs/sample-a-small.plist |\
-# RUN: FileCheck -check-prefix=IMPORT-A-1 %s
-
-# IMPORT-A-1: ADDED: 1 machines
-# IMPORT-A-1: ADDED: 1 runs
-# IMPORT-A-1: ADDED: 90 tests
-# IMPORT-A-1: ADDED: 90 samples
-
-# RUN: %src_root/import/ImportData --show-sample-count \
-# RUN: %t.db %S/Inputs/sample-b-small.plist |\
-# RUN: FileCheck -check-prefix=IMPORT-B %s
-
-# IMPORT-B: ADDED: 0 machines
-# IMPORT-B: ADDED: 1 runs
-# IMPORT-B: ADDED: 0 tests
-# IMPORT-B: ADDED: 90 samples
-
-# RUN: %src_root/import/ImportData --show-sample-count \
-# RUN: %t.db %S/Inputs/sample-a-small.plist |\
-# RUN: FileCheck -check-prefix=IMPORT-A-2 %s
-
-# IMPORT-A-2: IGNORING DUPLICATE RUN
-# IMPORT-A-2: ADDED: 0 machines
-# IMPORT-A-2: ADDED: 0 runs
-# IMPORT-A-2: ADDED: 0 tests
-# IMPORT-A-2: ADDED: 0 samples
-
-# RUN: python %s %t.db
-
-import datetime, sys
-from viewer.PerfDB import PerfDB, Run, Test
-
-db = PerfDB(sys.argv[1])
-
-m = db.machines().one()
-assert m.id == 1
-assert m.name == 'smoosh-01.apple.com'
-
-info = dict((i.key,i.value) for i in m.info.values())
-assert 'os' in info
-assert info['os'] == ' Darwin 10.2.0'
-
-runs = db.runs().all()
-assert len(runs) == 2
-rA,rB = runs
-assert rA.machine == m
-assert rB.machine == m
-assert rA.start_time == datetime.datetime(2009, 11, 17, 2, 12, 25)
-assert rA.end_time == datetime.datetime(2009, 11, 17, 3, 44, 48)
-assert rA.info['tag'].key == 'tag'
-assert rA.info['tag'].value == 'nightlytest'
-
-t = db.tests().order_by(Test.name)[20]
-assert t.name == 'nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.success'
-assert t.info.values() == []
-
-samples = db.samples(test=t).all()
-assert len(samples) == 2
-sA,sB = samples
-assert sA.run == rA
-assert sB.run == rB
-assert sA.value == 1.0
-assert sB.value == 1.0
Removed: zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist (original)
+++ zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist (removed)
@@ -1,2824 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>Group Info</key>
- <array>
- <dict>
- <key>Name</key>
- <string>nightlytest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/partialsums</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/recursive</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/spectral-norm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/almabench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/huffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/lpbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/dry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/fldry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/chomp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/exptree</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/misr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/mandel-text</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/oopack_v1p8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/stepanov_v1p2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ReedSolomon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/fbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-6</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-7</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/himenobmtxpa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/oourafft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/perlin</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/pi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/richards_benchmark</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/salsa20</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/whetstone</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ackermann</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ary3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/fib2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hash</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/heapsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hello</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/lists</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/matrix</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/methcall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/nestedloop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/objinst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/random</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/sieve</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/strcat</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Bubblesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/IntMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Oscar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Perm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Quicksort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/RealMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Towers</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Treesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-array-init</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-expr_stmt</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-BaseType</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-VirtualFunctions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-13-Crasher</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-08-20-EnumSizeProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-09-29-NonPODsByValue</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2008-01-29-ParamAliasesReturn</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ConditionalExpr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/dead_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/function_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_rethrow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_throw</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_ctor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_type</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_member</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_method</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/short_circuit_dtor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-04-17-PrintfChar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ArgumentTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ManyArguments</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-03-NotTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-19-DivTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-19-CodegenBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-09-ArrayResolution</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgsSimple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-13-BadLoad</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-12-13-MishaTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-04-22-Switch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-02-DependentPHI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-07-VarArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-12-MinIntProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-14-AtExit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-26-Shorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-CastToBool</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-LongShifts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-06-IntOverflow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-08-BitOpsTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-LoadShorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-SignedArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-10-SignConversions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-05-CastFPToUint</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-11-VaListArg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-20-FoldBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-09-18-BitFieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-13-SwitchTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-29-ScalarReplBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-02-02-NegativeZero</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-06-20-StaticBitfieldInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-11-28-GlobalBoolLayout</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-12-Int64ToFP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-13-SDivTwo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-15-Bitfield-ABI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-17-INT-To-FP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-11-29-LongSwitch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-23-UnionInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-29-SimpleIndirectCall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-02-04-DivRem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-01-float_varg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-04-DynAllocAndRestore</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-07-Compare64BitConstant</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-11-LoadConstants</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-01-04-KNR-Args</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-03-02-VaCopy</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-04-10-BitfieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-18-LoopBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-20-LoopBug2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-07-13-InlineSetjmp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2009-04-16-BitfieldInitialization</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/AtomicOps</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/FloatPrecision</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast-bug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/ccc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/div</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/factor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/rem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/shr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/StructModifyTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/TestLoop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_expandfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_isamax</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_shift</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_stepfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/divides</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/multiplies</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/simple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray-dbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/printargs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/ClamAV/clamscan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/ldecod/ldecod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/lencod/lencod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SIBsim4/SIBsim4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SPASS/SPASS</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/aha/aha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/d/make_dparser</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/hbd/hbd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lambda-0_1_3/lambda</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lemon/lemon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lua/lua</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/oggenc/oggenc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sgefa/sgefa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/siod/siod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/spiff/spiff</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sqlite3/sqlite3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/treecc/treecc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/viterbi/viterbi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/drop3/drop3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/five11/five11</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uudecode/uudecode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uuencode/uuencode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones/fhourstones</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/analyzer/analyzer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/distray/distray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/mason/mason</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/neural/neural</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pcompress2/pcompress2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pifft/pifft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/cfrac/cfrac</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/espresso/espresso</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/gs/gs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/01-qbsort/qbsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/03-testtrie/testtrie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/04-bisect/bisect</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/05-eks/eks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/08-main/main</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/09-vor/vor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/12-IOtest/iotest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/15-trie/trie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/17-bintr/bintr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/18-imp/imp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-basicmath/automotive-basicmath</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-dijkstra/network-dijkstra</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-patricia/network-patricia</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-ispell/office-ispell</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-stringsearch/office-stringsearch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-blowfish/security-blowfish</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-rijndael/security-rijndael</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-sha/security-sha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-CRC32/telecomm-CRC32</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-adpcm/telecomm-adpcm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/NPB-serial/is/is</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bh/bh</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bisort/bisort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/em3d/em3d</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/health/health</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/mst/mst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/perimeter/perimeter</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/power/power</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/treeadd/treeadd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/tsp/tsp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/voronoi/voronoi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/OptimizerEval/optimizer-eval</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/PAQ8p/paq8p</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/family/family</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/fsm/fsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/garage/garage</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/life/life</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/objects/objects</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/primes/primes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/simul/simul</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/trees/trees</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/vcirc/vcirc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/agrep/agrep</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/allroots/allroots</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/assembler/assembler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/bison/mybison</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/cdecl/cdecl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/compiler/compiler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/fixoutput/fixoutput</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/football/football</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/gnugo/gnugo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/loader/loader</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/simulator/simulator</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-smail/unix-smail</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-tbl/unix-tbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/anagram/anagram</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/bc/bc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ft/ft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ks/ks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/yacr2/yacr2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/SciMark2-C/scimark2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-3des/enc-3des</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-md5/enc-md5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-crc/netbench-crc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-url/netbench-url</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/8b10b/8b10b</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/beamformer/beamformer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/bmm/bmm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/dbms/dbms</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/llubenchmark/llu</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mafft/pairlocalalign</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/g721/g721encode/encode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/gsm/toast/toast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/sim/sim</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.Externals</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- </array>
- <key>Machine</key>
- <dict>
- <key>Info</key>
- <dict>
- <key>gcc_version</key>
- <string> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)</string>
- <key>name</key>
- <string> smoosh-01</string>
- <key>os</key>
- <string> Darwin 10.2.0</string>
- <key>uname</key>
- <string> Darwin smoosh-01 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov 3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386hardware: i386</string>
- </dict>
- <key>Name</key>
- <string>smoosh-01.apple.com</string>
- </dict>
- <key>Run</key>
- <dict>
- <key>End Time</key>
- <string>2009-11-17 03:44:48</string>
- <key>Info</key>
- <dict>
- <key>tag</key>
- <string>nightlytest</string>
- </dict>
- <key>Start Time</key>
- <string>2009-11-17 02:12:25</string>
- </dict>
- <key>Tests</key>
- <array>
- <dict>
- <key>Data</key>
- <array>
- <string> 24.50</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 22.59</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 168.04</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>209.99000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2501.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <true/>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildstatus</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.PASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.FAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XPASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XFAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.019300000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2912.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.010800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.010800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.011299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.25</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.0899999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0137</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2848.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.013299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0135</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0144</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3400000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1499999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1599999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1799999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.013599999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3248.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.012699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.012800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0121</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3200000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3500000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.4299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0058999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1264.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0067000000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0067999999999999996</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0071999999999999998</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.92000000000000004</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93999999999999995</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93999999999999995</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.exec.success</string>
- </dict>
- </array>
-</dict>
-</plist>
Removed: zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist (original)
+++ zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist (removed)
@@ -1,2824 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>Group Info</key>
- <array>
- <dict>
- <key>Name</key>
- <string>nightlytest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/partialsums</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/recursive</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/spectral-norm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/almabench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/huffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/lpbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/dry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/fldry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/chomp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/exptree</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/misr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/mandel-text</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/oopack_v1p8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/stepanov_v1p2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ReedSolomon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/fbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-6</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-7</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/himenobmtxpa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/oourafft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/perlin</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/pi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/richards_benchmark</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/salsa20</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/whetstone</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ackermann</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ary3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/fib2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hash</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/heapsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hello</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/lists</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/matrix</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/methcall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/nestedloop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/objinst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/random</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/sieve</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/strcat</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Bubblesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/IntMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Oscar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Perm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Quicksort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/RealMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Towers</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Treesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-array-init</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-expr_stmt</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-BaseType</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-VirtualFunctions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-13-Crasher</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-08-20-EnumSizeProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-09-29-NonPODsByValue</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2008-01-29-ParamAliasesReturn</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ConditionalExpr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/dead_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/function_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_rethrow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_throw</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_ctor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_type</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_member</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_method</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/short_circuit_dtor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-04-17-PrintfChar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ArgumentTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ManyArguments</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-03-NotTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-19-DivTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-19-CodegenBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-09-ArrayResolution</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgsSimple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-13-BadLoad</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-12-13-MishaTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-04-22-Switch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-02-DependentPHI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-07-VarArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-12-MinIntProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-14-AtExit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-26-Shorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-CastToBool</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-LongShifts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-06-IntOverflow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-08-BitOpsTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-LoadShorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-SignedArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-10-SignConversions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-05-CastFPToUint</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-11-VaListArg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-20-FoldBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-09-18-BitFieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-13-SwitchTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-29-ScalarReplBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-02-02-NegativeZero</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-06-20-StaticBitfieldInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-11-28-GlobalBoolLayout</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-12-Int64ToFP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-13-SDivTwo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-15-Bitfield-ABI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-17-INT-To-FP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-11-29-LongSwitch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-23-UnionInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-29-SimpleIndirectCall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-02-04-DivRem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-01-float_varg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-04-DynAllocAndRestore</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-07-Compare64BitConstant</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-11-LoadConstants</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-01-04-KNR-Args</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-03-02-VaCopy</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-04-10-BitfieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-18-LoopBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-20-LoopBug2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-07-13-InlineSetjmp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2009-04-16-BitfieldInitialization</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/AtomicOps</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/FloatPrecision</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast-bug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/ccc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/div</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/factor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/rem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/shr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/StructModifyTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/TestLoop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_expandfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_isamax</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_shift</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_stepfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/divides</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/multiplies</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/simple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray-dbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/printargs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/ClamAV/clamscan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/ldecod/ldecod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/lencod/lencod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SIBsim4/SIBsim4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SPASS/SPASS</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/aha/aha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/d/make_dparser</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/hbd/hbd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lambda-0_1_3/lambda</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lemon/lemon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lua/lua</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/oggenc/oggenc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sgefa/sgefa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/siod/siod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/spiff/spiff</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sqlite3/sqlite3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/treecc/treecc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/viterbi/viterbi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/drop3/drop3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/five11/five11</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uudecode/uudecode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uuencode/uuencode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones/fhourstones</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/analyzer/analyzer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/distray/distray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/mason/mason</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/neural/neural</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pcompress2/pcompress2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pifft/pifft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/cfrac/cfrac</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/espresso/espresso</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/gs/gs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/01-qbsort/qbsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/03-testtrie/testtrie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/04-bisect/bisect</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/05-eks/eks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/08-main/main</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/09-vor/vor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/12-IOtest/iotest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/15-trie/trie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/17-bintr/bintr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/18-imp/imp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-basicmath/automotive-basicmath</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-dijkstra/network-dijkstra</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-patricia/network-patricia</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-ispell/office-ispell</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-stringsearch/office-stringsearch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-blowfish/security-blowfish</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-rijndael/security-rijndael</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-sha/security-sha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-CRC32/telecomm-CRC32</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-adpcm/telecomm-adpcm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/NPB-serial/is/is</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bh/bh</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bisort/bisort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/em3d/em3d</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/health/health</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/mst/mst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/perimeter/perimeter</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/power/power</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/treeadd/treeadd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/tsp/tsp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/voronoi/voronoi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/OptimizerEval/optimizer-eval</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/PAQ8p/paq8p</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/family/family</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/fsm/fsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/garage/garage</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/life/life</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/objects/objects</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/primes/primes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/simul/simul</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/trees/trees</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/vcirc/vcirc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/agrep/agrep</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/allroots/allroots</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/assembler/assembler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/bison/mybison</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/cdecl/cdecl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/compiler/compiler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/fixoutput/fixoutput</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/football/football</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/gnugo/gnugo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/loader/loader</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/simulator/simulator</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-smail/unix-smail</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-tbl/unix-tbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/anagram/anagram</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/bc/bc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ft/ft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ks/ks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/yacr2/yacr2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/SciMark2-C/scimark2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-3des/enc-3des</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-md5/enc-md5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-crc/netbench-crc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-url/netbench-url</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/8b10b/8b10b</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/beamformer/beamformer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/bmm/bmm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/dbms/dbms</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/llubenchmark/llu</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mafft/pairlocalalign</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/g721/g721encode/encode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/gsm/toast/toast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/sim/sim</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.Externals</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- </array>
- <key>Machine</key>
- <dict>
- <key>Info</key>
- <dict>
- <key>gcc_version</key>
- <string> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)</string>
- <key>name</key>
- <string> smoosh-01</string>
- <key>os</key>
- <string> Darwin 10.2.0</string>
- <key>uname</key>
- <string> Darwin smoosh-01 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov 3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386hardware: i386</string>
- </dict>
- <key>Name</key>
- <string>smoosh-01.apple.com</string>
- </dict>
- <key>Run</key>
- <dict>
- <key>End Time</key>
- <string>2009-11-19 03:00:12</string>
- <key>Info</key>
- <dict>
- <key>tag</key>
- <string>nightlytest</string>
- </dict>
- <key>Start Time</key>
- <string>2009-11-19 01:27:49</string>
- </dict>
- <key>Tests</key>
- <array>
- <dict>
- <key>Data</key>
- <array>
- <string> 24.36</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 22.62</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 146.27</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>204.41999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2508.75</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <true/>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildstatus</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.PASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.FAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XPASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XFAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.019199999999999998</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2912.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0111</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0111</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0114</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.25</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.1499999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.1600000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.3700000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0135</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2848.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.014</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0138</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0146</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3400000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1899999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0135</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3248.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.012800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0129</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.011900000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3200000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3500000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.4199999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0057000000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1264.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0068999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0070000000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0074000000000000003</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.92000000000000004</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93999999999999995</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93000000000000005</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.exec.success</string>
- </dict>
- </array>
-</dict>
-</plist>
Removed: zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist (original)
+++ zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist (removed)
@@ -1,2824 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>Group Info</key>
- <array>
- <dict>
- <key>Name</key>
- <string>nightlytest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/partialsums</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/recursive</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/spectral-norm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/almabench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/huffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/CoyoteBench/lpbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/dry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Dhrystone/fldry</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/chomp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/exptree</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/misr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/McGill/queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/mandel-text</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/oopack_v1p8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc-C++/stepanov_v1p2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ReedSolomon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/fbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/ffbench</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-6</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-7</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/flops-8</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/himenobmtxpa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/mandel-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/oourafft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/perlin</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/pi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/richards_benchmark</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/salsa20</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Misc/whetstone</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ackermann</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/ary3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/fib2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hash</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/heapsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/hello</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/lists</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/matrix</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/methcall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/nestedloop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/objinst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/random</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/sieve</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Shootout/strcat</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Bubblesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/IntMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Oscar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Perm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Puzzle</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Queens</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Quicksort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/RealMM</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Towers</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/Stanford/Treesort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-array-init</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-05-14-expr_stmt</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-BaseType</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-08-VirtualFunctions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-06-13-Crasher</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-08-20-EnumSizeProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2003-09-29-NonPODsByValue</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/2008-01-29-ParamAliasesReturn</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ConditionalExpr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/ctor_dtor_count-2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/dead_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/function_try_block</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_rethrow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/EH/simple_throw</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_ctor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/global_type</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_member</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/pointer_method</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Regression/C++/short_circuit_dtor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-04-17-PrintfChar</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ArgumentTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-CastTest3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-02-ManyArguments</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-03-NotTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-05-19-DivTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-02-CastTest2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-08-19-CodegenBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-09-ArrayResolution</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-12-StructureArgsSimple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-10-13-BadLoad</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2002-12-13-MishaTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-04-22-Switch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-02-DependentPHI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-07-VarArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-12-MinIntProblem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-14-AtExit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-26-Shorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-CastToBool</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-05-31-LongShifts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-06-IntOverflow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-08-BitOpsTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-LoadShorts</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-09-SignedArgs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-07-10-SignConversions</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-05-CastFPToUint</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-11-VaListArg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-08-20-FoldBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-09-18-BitFieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-13-SwitchTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2003-10-29-ScalarReplBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-02-02-NegativeZero</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-06-20-StaticBitfieldInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2004-11-28-GlobalBoolLayout</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-12-Int64ToFP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-05-13-SDivTwo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-15-Bitfield-ABI</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-07-17-INT-To-FP</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2005-11-29-LongSwitch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-23-UnionInit</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-01-29-SimpleIndirectCall</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-02-04-DivRem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-01-float_varg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-04-DynAllocAndRestore</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-07-Compare64BitConstant</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2006-12-11-LoadConstants</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-01-04-KNR-Args</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-03-02-VaCopy</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2007-04-10-BitfieldTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-18-LoopBug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-04-20-LoopBug2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2008-07-13-InlineSetjmp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/2009-04-16-BitfieldInitialization</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/AtomicOps</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/FloatPrecision</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast-bug</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/cast2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/ccc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/div</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/factor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/rem</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/SignlessTypes/shr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/StructModifyTest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/TestLoop</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_expandfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_isamax</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_shift</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/SSE/sse_stepfft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/build2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/divides</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/multiplies</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/simple</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/Vector/sumarray-dbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/UnitTests/printargs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/ClamAV/clamscan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/ldecod/ldecod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/JM/lencod/lencod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SIBsim4/SIBsim4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/SPASS/SPASS</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/aha/aha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/d/make_dparser</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/hbd/hbd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lambda-0_1_3/lambda</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lemon/lemon</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/lua/lua</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/oggenc/oggenc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sgefa/sgefa</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/siod/siod</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/spiff/spiff</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/sqlite3/sqlite3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/treecc/treecc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Applications/viterbi/viterbi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/ASC_Sequoia/IRSmk/IRSmk</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/drop3/drop3</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/five11/five11</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uudecode/uudecode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/BitBench/uuencode/uuencode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones-3_1/fhourstones3_1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Fhourstones/fhourstones</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/analyzer/analyzer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/distray/distray</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/mason/mason</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/neural/neural</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pcompress2/pcompress2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/FreeBench/pifft/pifft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/cfrac/cfrac</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/espresso/espresso</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MallocBench/gs/gs</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/01-qbsort/qbsort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/03-testtrie/testtrie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/04-bisect/bisect</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/05-eks/eks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/08-main/main</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/09-vor/vor</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/12-IOtest/iotest</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/15-trie/trie</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/17-bintr/bintr</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/McCat/18-imp/imp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-basicmath/automotive-basicmath</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-bitcount/automotive-bitcount</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/automotive-susan/automotive-susan</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-dijkstra/network-dijkstra</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/network-patricia/network-patricia</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-ispell/office-ispell</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/office-stringsearch/office-stringsearch</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-blowfish/security-blowfish</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-rijndael/security-rijndael</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/security-sha/security-sha</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-CRC32/telecomm-CRC32</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-adpcm/telecomm-adpcm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/NPB-serial/is/is</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bh/bh</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/bisort/bisort</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/em3d/em3d</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/health/health</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/mst/mst</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/perimeter/perimeter</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/power/power</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/treeadd/treeadd</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/tsp/tsp</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Olden/voronoi/voronoi</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/OptimizerEval/optimizer-eval</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/PAQ8p/paq8p</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/family/family</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/fsm/fsm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/garage/garage</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/life/life</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/objects/objects</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/primes/primes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/simul/simul</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/trees/trees</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C++/vcirc/vcirc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/agrep/agrep</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/allroots/allroots</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/assembler/assembler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/bison/mybison</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/cdecl/cdecl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/compiler/compiler</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/fixoutput/fixoutput</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/football/football</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/gnugo/gnugo</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/loader/loader</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/simulator/simulator</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-smail/unix-smail</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Prolangs-C/unix-tbl/unix-tbl</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/anagram/anagram</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/bc/bc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ft/ft</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/ks/ks</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Ptrdist/yacr2/yacr2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/SciMark2-C/scimark2</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-3des/enc-3des</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-md5/enc-md5</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/enc-rc4/enc-rc4</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-crc/netbench-crc</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/Trimaran/netbench-url/netbench-url</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/8b10b/8b10b</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/beamformer/beamformer</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/bmm/bmm</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/dbms/dbms</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/llubenchmark/llu</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mafft/pairlocalalign</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawcaudio/rawcaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/adpcm/rawdaudio/rawdaudio</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/g721/g721encode/encode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/gsm/toast/toast</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.MultiSource/Benchmarks/sim/sim</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- <dict>
- <key>Name</key>
- <string>nightlytest.Externals</string>
- <key>Primary</key>
- <integer>1</integer>
- </dict>
- </array>
- <key>Machine</key>
- <dict>
- <key>Info</key>
- <dict>
- <key>gcc_version</key>
- <string> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)</string>
- <key>name</key>
- <string> ZORG SAMPLE MACHINE NICKNAME </string>
- <key>os</key>
- <string> Darwin 10.2.0</string>
- <key>uname</key>
- <string> Darwin smoosh-01 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov 3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386hardware: i386</string>
- </dict>
- <key>Name</key>
- <string>ZORG SAMPLE MACHINE</string>
- </dict>
- <key>Run</key>
- <dict>
- <key>End Time</key>
- <string>2009-11-17 03:44:48</string>
- <key>Info</key>
- <dict>
- <key>tag</key>
- <string>nightlytest</string>
- </dict>
- <key>Start Time</key>
- <string>2009-11-17 02:12:25</string>
- </dict>
- <key>Tests</key>
- <array>
- <dict>
- <key>Data</key>
- <array>
- <string> 24.50</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 22.59</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.configtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 168.04</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.checkouttime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>209.99000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2501.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.wall</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <string> 0.0</string>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.dgtime.user</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <true/>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.Summary.buildstatus</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.PASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.FAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XPASS</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>0</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.DejaGNU.XFAIL</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.019300000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2912.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.010800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.010800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.011299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.25</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.2200000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3.0899999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fannkuch.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0137</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>2848.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.013299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0135</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0144</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3400000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1499999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1599999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.1799999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/fasta.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.013599999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>3248.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.012699999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.012800000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0121</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3200000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3500000000000001</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.3999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.llc-beta.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1.4299999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/n-body.jit.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0058999999999999999</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>1264.0</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.bc.compile.size</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0067000000000000002</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0067999999999999996</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.0071999999999999998</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.jit.compile.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.92000000000000004</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.gcc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93999999999999995</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.cbe.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.success</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <real>0.93999999999999995</real>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc.exec.time</string>
- </dict>
- <dict>
- <key>Data</key>
- <array>
- <integer>1</integer>
- </array>
- <key>Info</key>
- <dict>
- </dict>
- <key>Name</key>
- <string>nightlytest.SingleSource/Benchmarks/BenchmarkGame/nsieve-bits.llc-beta.exec.success</string>
- </dict>
- </array>
-</dict>
-</plist>
Removed: zorg/trunk/lnt/test/Misc/SubmitAndEmail.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Misc/SubmitAndEmail.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Misc/SubmitAndEmail.py (original)
+++ zorg/trunk/lnt/test/Misc/SubmitAndEmail.py (removed)
@@ -1,19 +0,0 @@
-# RUN: rm -f %t.db
-# RUN: sqlite3 %t.db ".read %src_root/db/CreateTables.sql"
-
-# FIXME: Find a way to test email works, without being annoying.
-# RUN: %src_root/import/ImportData \
-# RUN: --show-sample-count \
-# RUN: --commit=0 \
-# RUN: --email-on-import=1 --email-host=relay.example.com \
-# RUN: --email-from=example at example.com --email-to=example at example.com \
-# RUN: --email-base-url=ZORG_TEST %t.db %S/Inputs/sample-a-small.plist > %t
-# RUN: FileCheck %s < %t
-
-# CHECK: ADDED: 1 machines
-# CHECK: ADDED: 1 runs
-# CHECK: ADDED: 90 tests
-# CHECK: ADDED: 90 samples
-
-
-
Removed: zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py (original)
+++ zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py (removed)
@@ -1,4 +0,0 @@
-# RUN: curl -s http://localhost/zorg/nightlytest/machines/1/ | FileCheck %s
-# CHECK: <h1>LLVM Nightly Test Results</h1>
-# CHECK: Render Time:
-
Removed: zorg/trunk/lnt/test/Web/NightlytestRoot.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Web/NightlytestRoot.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Web/NightlytestRoot.py (original)
+++ zorg/trunk/lnt/test/Web/NightlytestRoot.py (removed)
@@ -1,3 +0,0 @@
-# RUN: curl -s http://localhost/zorg/nightlytest/ | FileCheck %s
-# CHECK: <h2>LLVM Nightly Test</h2>
-# CHECK: Render Time:
Removed: zorg/trunk/lnt/test/Web/NightlytestRunRoot.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Web/NightlytestRunRoot.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Web/NightlytestRunRoot.py (original)
+++ zorg/trunk/lnt/test/Web/NightlytestRunRoot.py (removed)
@@ -1,10 +0,0 @@
-# RUN: curl -s http://localhost/zorg/nightlytest/1/ | FileCheck --check-prefix=BRIEF %s
-# BRIEF: <h1>LLVM Nightly Test Results</h1>
-# BRIEF: See Full Test Results
-# BRIEF: Render Time:
-
-# RUN: curl -s http://localhost/zorg/nightlytest/1/?full=1 | FileCheck --check-prefix=FULL %s
-# FULL: <h1>LLVM Nightly Test Results</h1>
-# FULL: See Brief Test Results
-# FULL: Render Time:
-
Removed: zorg/trunk/lnt/test/Web/RootPage.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/Web/RootPage.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/Web/RootPage.py (original)
+++ zorg/trunk/lnt/test/Web/RootPage.py (removed)
@@ -1,2 +0,0 @@
-# RUN: curl -s http://localhost/zorg/ | FileCheck %s
-# CHECK: <h2>LLVM Testing DB</h2>
Removed: zorg/trunk/lnt/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/test/lit.cfg?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/test/lit.cfg (original)
+++ zorg/trunk/lnt/test/lit.cfg (removed)
@@ -1,30 +0,0 @@
-# -*- Python -*-
-
-import os
-import platform
-
-# Configuration file for the 'lit' test runner.
-
-# name: The name of this test suite.
-config.name = 'Zorg'
-
-# testFormat: The test format to use to interpret tests.
-#
-# For now we require '&&' between commands, until they get globally killed and
-# the test runner updated.
-execute_external = platform.system() != 'Windows'
-config.test_format = lit.formats.ShTest(execute_external)
-
-# suffixes: A list of file extensions to treat as test files.
-config.suffixes = ['.py']
-
-# test_source_root: The root path where tests are located.
-config.test_source_root = os.path.dirname(__file__)
-config.test_exec_root = config.test_source_root
-
-config.target_triple = None
-
-src_root = os.path.join(config.test_source_root, '..')
-config.environment['PYTHONPATH'] = src_root
-
-config.substitutions.append(('%src_root', src_root))
Copied: zorg/trunk/lnt/tests/DB/Create.py (from r99116, zorg/trunk/lnt/test/DB/Create.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/DB/Create.py?p2=zorg/trunk/lnt/tests/DB/Create.py&p1=zorg/trunk/lnt/test/DB/Create.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/DB/Import.py (from r99116, zorg/trunk/lnt/test/DB/Import.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/DB/Import.py?p2=zorg/trunk/lnt/tests/DB/Import.py&p1=zorg/trunk/lnt/test/DB/Import.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/DB/Inputs/sample-a-small.plist (from r99116, zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/DB/Inputs/sample-a-small.plist?p2=zorg/trunk/lnt/tests/DB/Inputs/sample-a-small.plist&p1=zorg/trunk/lnt/test/DB/Inputs/sample-a-small.plist&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/DB/Inputs/sample-b-small.plist (from r99116, zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/DB/Inputs/sample-b-small.plist?p2=zorg/trunk/lnt/tests/DB/Inputs/sample-b-small.plist&p1=zorg/trunk/lnt/test/DB/Inputs/sample-b-small.plist&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Misc/Inputs/sample-a-small.plist (from r99116, zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Misc/Inputs/sample-a-small.plist?p2=zorg/trunk/lnt/tests/Misc/Inputs/sample-a-small.plist&p1=zorg/trunk/lnt/test/Misc/Inputs/sample-a-small.plist&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Misc/SubmitAndEmail.py (from r99116, zorg/trunk/lnt/test/Misc/SubmitAndEmail.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Misc/SubmitAndEmail.py?p2=zorg/trunk/lnt/tests/Misc/SubmitAndEmail.py&p1=zorg/trunk/lnt/test/Misc/SubmitAndEmail.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Web/NightlytestMachinesRoot.py (from r99116, zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Web/NightlytestMachinesRoot.py?p2=zorg/trunk/lnt/tests/Web/NightlytestMachinesRoot.py&p1=zorg/trunk/lnt/test/Web/NightlytestMachinesRoot.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Web/NightlytestRoot.py (from r99116, zorg/trunk/lnt/test/Web/NightlytestRoot.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Web/NightlytestRoot.py?p2=zorg/trunk/lnt/tests/Web/NightlytestRoot.py&p1=zorg/trunk/lnt/test/Web/NightlytestRoot.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Web/NightlytestRunRoot.py (from r99116, zorg/trunk/lnt/test/Web/NightlytestRunRoot.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Web/NightlytestRunRoot.py?p2=zorg/trunk/lnt/tests/Web/NightlytestRunRoot.py&p1=zorg/trunk/lnt/test/Web/NightlytestRunRoot.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/Web/RootPage.py (from r99116, zorg/trunk/lnt/test/Web/RootPage.py)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/Web/RootPage.py?p2=zorg/trunk/lnt/tests/Web/RootPage.py&p1=zorg/trunk/lnt/test/Web/RootPage.py&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Copied: zorg/trunk/lnt/tests/lit.cfg (from r99116, zorg/trunk/lnt/test/lit.cfg)
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/tests/lit.cfg?p2=zorg/trunk/lnt/tests/lit.cfg&p1=zorg/trunk/lnt/test/lit.cfg&r1=99116&r2=99117&rev=99117&view=diff
==============================================================================
(empty)
Removed: zorg/trunk/lnt/viewer/Config.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/Config.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/Config.py (original)
+++ zorg/trunk/lnt/viewer/Config.py (removed)
@@ -1,60 +0,0 @@
-import os
-
-class DBInfo:
- @staticmethod
- def fromData(baseDir, dict):
- dbPath = dict.get('path')
- if not dbPath.startswith('mysql://'):
- dbPath = os.path.join(baseDir, dbPath)
- return DBInfo(dbPath,
- bool(dict.get('showNightlytest')),
- bool(dict.get('showGeneral')))
-
- def __init__(self, path, showNightlytest, showGeneral):
- self.path = path
- self.showNightlytest = showNightlytest
- self.showGeneral = showGeneral
-
-class Config:
- @staticmethod
- def fromData(path, data):
- # Paths are resolved relative to the absolute real path of the
- # config file.
- baseDir = os.path.dirname(os.path.abspath(path))
-
- ntEmailer = data.get('nt_emailer')
- if ntEmailer:
- ntEmailEnabled = bool(ntEmailer.get('enabled'))
- ntEmailHost = str(ntEmailer.get('host'))
- ntEmailFrom = str(ntEmailer.get('from'))
-
- # The email to field can either be a string, or a list of tuples of
- # the form [(accept-regexp-pattern, to-address)].
- item = ntEmailer.get('to')
- if isinstance(item, str):
- ntEmailTo = item
- else:
- ntEmailTo = [(str(a),str(b))
- for a,b in item]
- else:
- ntEmailEnabled = False
- ntEmailHost = ntEmailFrom = ntEmailTo = ""
-
- return Config(os.path.join(baseDir, data['zorg']),
- data['zorgURL'],
- dict([(k,DBInfo.fromData(baseDir, v))
- for k,v in data['databases'].items()]),
- ntEmailEnabled, ntEmailHost, ntEmailFrom, ntEmailTo)
-
- def __init__(self, zorgDir, zorgURL, databases,
- ntEmailEnabled, ntEmailHost, ntEmailFrom, ntEmailTo):
- self.zorgDir = zorgDir
- self.zorgURL = zorgURL
- self.tempDir = os.path.join(zorgDir, 'viewer', 'resources', 'graphs')
- while self.zorgURL.endswith('/'):
- self.zorgURL = zorgURL[:-1]
- self.databases = databases
- self.ntEmailEnabled = ntEmailEnabled
- self.ntEmailHost = ntEmailHost
- self.ntEmailFrom = ntEmailFrom
- self.ntEmailTo = ntEmailTo
Removed: zorg/trunk/lnt/viewer/NTStyleBrowser.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/NTStyleBrowser.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/NTStyleBrowser.ptl (original)
+++ zorg/trunk/lnt/viewer/NTStyleBrowser.ptl (removed)
@@ -1,404 +0,0 @@
-# -*- python -*-
-
-import re
-
-import quixote
-from quixote.directory import Directory
-from quixote.errors import TraversalError
-
-import Util
-from NTUtil import *
-
-from PerfDB import Machine, Run
-
-class TestRunUI(Directory):
- def __init__(self, root, idstr):
- self.root = root
- try:
- self.id = int(idstr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
- def getActiveRun(self, db):
- # Check for overrides
- request = quixote.get_request()
- id = self.id
- run_id = request.form.get('run', '')
- if run_id:
- id = int(run_id)
- return db.getRun(id)
-
- def getInfo(self, db):
- request = quixote.get_request()
-
- compareToID = request.form.get('compare', '')
- compareTo = None
- if compareToID:
- try:
- compareTo = db.getRun(int(compareToID))
- except:
- pass
-
- run = self.getActiveRun(db)
-
- # Find previous runs, ordered by time.
- runs = db.runs(run.machine).order_by(Run.start_time.desc()).all()
-
- # Find previous run to compare to
- if compareTo is None:
- for r in runs:
- # FIXME: Compare revisions, not times.
- if r != run and r.start_time < run.start_time:
- compareTo = r
- break
-
- return run, runs, compareTo
-
- def getRunSummary(self, db, run, compareTo, form=None):
- testPredicate = None
- infoPredicates = []
- if form:
- testPattern = form['testPattern']
- if testPattern and testPattern.strip():
- testPattern = re.compile(testPattern)
- testPredicate = lambda t: testPattern.search(t.name)
- parameters = self.getParameters()
- for i,(title,name) in enumerate(self.getParameters()):
- pattern = form['parmPattern.%d' % i]
- if pattern and pattern.strip():
- pattern = re.compile(pattern)
- infoPredicates.append((name,
- lambda t,k,v,p=pattern: p.search(v)))
-
- # Compare the summary information
- summary = RunSummary()
- summary.addRun(db, run, testPredicate, infoPredicates)
- if compareTo:
- summary.addRun(db, compareTo, testPredicate, infoPredicates)
- return summary
-
- def _q_index [html] (self):
- self.root.getHeader(self.getTitle(), "../..",
- addPopupJS=True, addFormCSS=True)
-
- request = quixote.get_request()
- full = request.form.get('full', '')
- allResults = not not full
-
- # Get the filtering form.
- form = quixote.form.Form(method=str("get"))
- form.add(quixote.form.StringWidget, "testPattern",
- title="Test Pattern")
- for i,(title,name) in enumerate(self.getParameters()):
- form.add(quixote.form.StringWidget, "parmPattern.%d" %i,
- title="Parameter Pattern: %s" % title)
- form.add_submit("submit", "Update")
- Util.addOtherFormValues(form)
-
- # Get a DB connection
- db = self.root.getDB()
- run,runs,compareTo = self.getInfo(db)
- machine = run.machine
- summary = self.getRunSummary(db, run, compareTo, form)
-
- """
- <center>
- <h1>%s</h1>
- <table>
- <tr>
- <td align=right>Machine:</td>
- <td>%s:%d</td>
- </tr>
- <tr>
- <td align=right>Run:</td>
- <td>%s</td>
- </tr>
- """ % (self.getHeaderTitle(), machine.name, machine.number, run.start_time)
- if compareTo:
- """
- <tr>
- <td align=right>Compare To:</td>
- <td>%s</td>
- </tr>
- """ % (compareTo.start_time,)
- """
- </table>
- </center>
- <p>
- """
-
- # Hide by default unless filled in
- hidden = True
- for w in form.get_all_widgets():
- if isinstance(w, (quixote.form.HiddenWidget,)):
- continue
- value = w.value
- if value:
- hidden = False
- break
- key = 'filteringOptions'
- """
- <a href="javascript://" onclick="toggleLayer('%s')"; id="%s_">(%s)
- Show Filtering Options</a>
- <div id="%s" style="display: %s;" class="hideable">
- """ % (key, key, ("+","-")[hidden], key, ("","none")[hidden])
- form.render()
- """
- </div>
- <p>
- """
-
- """
- <table width="100%%" border=1>
- <tr>
- <td valign="top" width="200">
- <a href="..">Homepage</a>
- <h4>Machine:</h4>
- <a href="../machines/%d/">%s:%d</a>
- <h4>Runs:</h4>
- <ul>
- """ % (machine.id, machine.name, machine.number)
-
- # Show a small number of neighboring runs.
- runIndex = runs.index(run)
- for r in runs[max(0,runIndex-3):runIndex+6]:
- if r == run:
- """ <li> <h3><a href="../%d/">%s</a></h3> """ % (r.id, r.start_time)
- else:
- """ <li> <a href="../%d/">%s</a> """ % (r.id, r.start_time)
-
- # Full list of runs in a drop down.
- #
- # FIXME: Make this link to the proper run.
- """
- <p>
- <form method="GET" action=".">
- <input type="hidden" name="full" value="%s">
- <select name="run">
- """ % (full,)
- for r in runs:
- """\
- <option value="%d"%s>%s""" % (r.id, ('', ' selected')[r == run], r.start_time)
-
- """
- </select>
- <input type="submit" value="Jump to Run">
- </form>
- """
- # Set comparison run.
- """
- <form method="GET" action=".">
- <input type="hidden" name="full" value="%s">
- <select name="compare">
- """ % (full,)
- for r in runs:
- """\
- <option value="%d"%s>%s</option>""" % (r.id, ('', ' selected')[r == compareTo], r.start_time)
-
- """
- </select>
- <input type="submit" value="Compare to Run">
- </form>
- """
-
- """
- </ul>
- </td>
- <td valign="top">
- <table border=1>
- <tr>
- <td> <b>Nickname</b> </td>
- <td> %s </td>
- </tr>
- """ % (machine.name,)
- for mi in machine.info.values():
- """
- <tr>
- <td> <b>%s</b> </td>
- <td>%s</td>
- </tr>
- """ % (mi.key, mi.value)
- """
- <tr>
- <td> <b>Machine ID</b> </td>
- <td> %d </td>
- </tr>
- </table>
- """ % (machine.id,)
-
- if allResults:
- """<h4><a href="?full=">See Brief Test Results</a></h4>"""
- else:
- """<h4><a href="?full=1">See Full Test Results</a></h4>"""
-
- self.renderCommonContents(db, run, compareTo, summary)
- if not allResults:
- self.renderBriefContents(db, run, compareTo, summary)
-
- """
- </td>
- </tr>
- </table>
- """
-
- if allResults:
- self.renderFullContents(db, run, compareTo, summary)
-
- self.root.getFooter()
-
- ###
-
- def getTags(self):
- abstract
-
- def getTitle(self):
- abstract
-
- def getHeaderTitle(self):
- abstract
-
- def getParameters(self):
- abstract
-
- def renderFullContents(self, db, run, compareTo, summary):
- abstract
-
- def renderBriefContents(self, db, run, compareTo, summary):
- abstract
-
- def renderCommonContents(self, db, run, compareTo, summary):
- abstract
-
-class MachinesDirectory(Directory):
- _q_exports = [""]
-
- def __init__(self, parent):
- Directory.__init__(self)
- self.parent = parent
-
- def _q_index [plain] (self):
- """
- machine access
- """
-
- def _q_lookup(self, component):
- return self.parent.getTestMachineUI(component)
-
-class ProgramsDirectory(Directory):
- _q_exports = [""]
-
- def __init__(self, parent):
- Directory.__init__(self)
- self.parent = parent
-
- def _q_index [plain] (self):
- """
- program access
- """
-
- def _q_lookup(self, component):
- return self.parent.getProgramUI(component)
-
-class RecentMachineDirectory(Directory):
- def __init__(self, root):
- Directory.__init__(self)
- self.root = root
-
- def getTitle(self):
- abstract
-
- def getHeaderTitle(self):
- abstract
-
- def getTags(self):
- abstract
-
- def _q_index [plain] (self):
- self.root.getHeader(self.getTitle(), "..")
-
- # Get a DB connection
- db = self.root.getDB()
-
- # Find recent runs.
- """
- <center>
- <h2>%s</h2>
- </center>
- """ % (self.getHeaderTitle(),)
-
- """
- <table width="100%%">
- <tr>
- <td valign="top" width="50%">
- <center>
- <h3>Test Machines</h3>
- <table class="sortable" border=1>
- <thead>
- <tr>
- <th>Latest Submission</th>
- <th>Machine</th>
- <th>Results</th>
- </tr>
- </thead>
- """
-
- # Show the most recent entry for each machine.
- q = db.session.query(Machine.name).distinct().order_by(Machine.name)
- for name, in q:
- # Get the most recent run for this machine name.
- q = db.session.query(Run).join(Machine).filter(Machine.name == name)
- r = q.order_by(Run.start_time.desc()).first()
- """
- <tr>
- <td>%s</td>
- <td align=left><a href="machines/%d/">%s:%d</a></td>
- <td><a href="%d/">View Results</a></td>
- </tr>
- """ % (r.start_time, r.machine.id, r.machine.name, r.machine.number, r.id)
-
- """
- </table>
- </center>
- </td>
- <td valign="top">
- <center>
- <h3>Recent Submissions</h3>
- <table class="sortable" border=1>
- <thead>
- <tr>
- <th>Start Time</th>
- <th>End Time</th>
- <th>Machine</th>
- <th>Results</th>
- </tr>
- </thead>
- """
-
- # Show the 20 most recent submissions, ordered by time.
- for r in db.session.query(Run).order_by(Run.start_time.desc())[:20]:
- m = r.machine
- """
- <tr>
- <td>%s</td>
- <td>%s</td>
- <td align=left><a href="machines/%d/">%s:%d</a></td>
- <td><a href="%d/">View Results</a></td>
- </tr>
- """ % (r.start_time, r.end_time, m.id, m.name, m.number, r.id)
-
- """
- </table>
- </center>
- </td>
- </tr>
- </table>
- """
-
- self.root.getFooter()
-
- def _q_lookup(self, component):
- if component == 'machines':
- return MachinesDirectory(self)
- if component == 'programs':
- return ProgramsDirectory(self)
- return self.getTestRunUI(component)
Removed: zorg/trunk/lnt/viewer/NTUtil.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/NTUtil.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/NTUtil.py (original)
+++ zorg/trunk/lnt/viewer/NTUtil.py (removed)
@@ -1,113 +0,0 @@
-import Util
-from PerfDB import Run, Sample, Test
-
-kPrefix = 'nightlytest'
-
-# FIXME: We shouldn't need this.
-kSentinelKeyName = 'bc.compile.success'
-
-kComparisonKinds = [('File Size',None),
- ('CBE','cbe.exec.time'),
- ('LLC','llc.exec.time'),
- ('JIT','jit.exec.time'),
- ('GCCAS','gcc.compile.time'),
- ('Bitcode','bc.compile.size'),
- ('LLC compile','llc.compile.time'),
- ('LLC-BETA compile','llc-beta.compile.time'),
- ('JIT codegen','jit.compile.time'),
- ('LLC-BETA','llc-beta.exec.time')]
-
-kTSKeys = { 'gcc.compile' : 'GCCAS',
- 'bc.compile' : 'Bitcode',
- 'llc.compile' : 'LLC compile',
- 'llc-beta.compile' : 'LLC_BETA compile',
- 'jit.compile' : 'JIT codegen',
- 'cbe.exec' : 'CBE',
- 'llc.exec' : 'LLC',
- 'llc-beta.exec' : 'LLC-BETA',
- 'jit.exec' : 'JIT' }
-
-# This isn't very fast, compute a summary if querying the same run
-# repeatedly.
-def getTestValueInRun(db, r, t, default=None, coerce=None):
- for value, in db.session.query(Sample.value).\
- filter(Sample.test == t).\
- filter(Sample.run == r):
- if coerce is not None:
- return coerce(value)
- return value
- return default
-
-def getTestNameValueInRun(db, r, testname, default=None, coerce=None):
- for value, in db.session.query(Sample.value).join(Test).\
- filter(Test.name == testname).\
- filter(Sample.run == r):
- if coerce is not None:
- return coerce(value)
- return value
- return default
-
-class RunSummary:
- def __init__(self):
- # The union of test names seen.
- self.testNames = set()
- # Map of test ids to test instances.
- self.testIds = {}
- # Map of test names to test instances
- self.testMap = {}
- # Map of run to multimap of test ID to sample list.
- self.runSamples = {}
-
- # FIXME: Should we worry about the info parameters on a
- # nightlytest test?
-
- def testMatchesPredicates(self, db, t, testPredicate, infoPredicates):
- if testPredicate:
- if not testPredicate(t):
- return False
- if infoPredicates:
- info = dict((i.key,i.value) for i in t.info.values())
- for key,predicate in infoPredicates:
- value = info.get(key)
- if not predicate(t, key, value):
- return False
- return True
-
- def addRun(self, db, run, testPredicate=None, infoPredicates=None):
- sampleMap = self.runSamples.get(run.id)
- if sampleMap is None:
- sampleMap = self.runSamples[run.id] = Util.multidict()
-
- q = db.session.query(Sample.value,Test).join(Test)
- q = q.filter(Sample.run == run)
- for s_value,t in q:
- if not self.testMatchesPredicates(db, t, testPredicate, infoPredicates):
- continue
-
- sampleMap[t.id] = s_value
- self.testMap[t.name] = t
- self.testIds[t.id] = t
-
- # Filter out summary things in name lists by only looking
- # for things which have a .success entry.
- if t.name.endswith('.success'):
- self.testNames.add(t.name.split('.', 3)[1])
-
- def getRunSamples(self, run):
- if run is None:
- return {}
- return self.runSamples.get(run.id, {})
-
- def getTestValueByName(self, run, testName, default, coerce=None):
- t = self.testMap.get(testName)
- if t is None:
- return default
- sampleMap = self.runSamples.get(run.id, {})
- samples = sampleMap.get(t.id)
- if sampleMap is None or samples is None:
- return default
- # FIXME: Multiple samples?
- if coerce:
- return coerce(samples[0].value)
- else:
- return samples[0].value
Removed: zorg/trunk/lnt/viewer/PerfDB.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/PerfDB.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/PerfDB.py (original)
+++ zorg/trunk/lnt/viewer/PerfDB.py (removed)
@@ -1,429 +0,0 @@
-#!/usr/bin/python
-
-###
-# SQLAlchemy database layer
-
-import sqlalchemy
-import sqlalchemy.ext.declarative
-import sqlalchemy.orm
-from sqlalchemy import *
-from sqlalchemy.orm import relation, backref
-from sqlalchemy.orm.collections import attribute_mapped_collection
-
-Base = sqlalchemy.ext.declarative.declarative_base()
-class Machine(Base):
- __tablename__ = 'Machine'
-
- id = Column("ID", Integer, primary_key=True)
- name = Column("Name", String(256))
- number = Column("Number", Integer)
-
- info = relation('MachineInfo',
- collection_class=attribute_mapped_collection('key'),
- backref=backref('machine'))
-
- def __init__(self, name, number):
- self.name = name
- self.number = number
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__, (self.name, self.number))
-
-class MachineInfo(Base):
- __tablename__ = 'MachineInfo'
-
- id = Column("ID", Integer, primary_key=True)
- machine_id = Column("Machine", Integer, ForeignKey('Machine.ID'))
- key = Column("Key", String(256))
- value = Column("Value", String(4096))
-
- def __init__(self, machine, key, value):
- self.machine = machine
- self.key = key
- self.value = value
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.machine, self.key, self.value))
-
-class Run(Base):
- __tablename__ = 'Run'
-
- id = Column("ID", Integer, primary_key=True)
- machine_id = Column("MachineID", Integer, ForeignKey('Machine.ID'))
- start_time = Column("StartTime", DateTime)
- end_time = Column("EndTime", DateTime)
-
- machine = relation(Machine)
-
- info = relation('RunInfo',
- collection_class=attribute_mapped_collection('key'),
- backref=backref('run'))
-
- def __init__(self, machine, start_time, end_time):
- self.machine = machine
- self.start_time = start_time
- self.end_time = end_time
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.machine, self.start_time, self.end_time))
-
-class RunInfo(Base):
- __tablename__ = 'RunInfo'
-
- id = Column("ID", Integer, primary_key=True)
- run_id = Column("Run", Integer, ForeignKey('Run.ID'))
- key = Column("Key", String(256))
- value = Column("Value", String(4096))
-
- def __init__(self, run, key, value):
- self.run = run
- self.key = key
- self.value = value
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.run, self.key, self.value))
-
-class Test(Base):
- __tablename__ = 'Test'
-
- id = Column("ID", Integer, primary_key=True)
- name = Column("Name", String(512))
-
- info = relation('TestInfo',
- collection_class=attribute_mapped_collection('key'),
- backref=backref('test'))
-
- def __init__(self, name):
- self.name = name
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.name,))
-
-class TestInfo(Base):
- __tablename__ = 'TestInfo'
-
- id = Column("ID", Integer, primary_key=True)
- test_id = Column("Test", Integer, ForeignKey('Test.ID'))
- key = Column("Key", String(256))
- value = Column("Value", String(4096))
-
- def __init__(self, test, key, value):
- self.test = test
- self.key = key
- self.value = value
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.test, self.key, self.value))
-
-class Sample(Base):
- __tablename__ = 'Sample'
-
- id = Column("ID", Integer, primary_key=True)
- run_id = Column("RunID", Integer, ForeignKey('Run.ID'))
- test_id = Column("TestID", Integer, ForeignKey('Test.ID'))
- value = Column("Value", Float)
-
- run = relation(Run)
- test = relation(Test)
-
- def __init__(self, run, test, value):
- self.run = run
- self.test = test
- self.value = value
-
- def __repr__(self):
- return '%s%r' % (self.__class__.__name__,
- (self.run, self.test, self.value))
-
-###
-# PerfDB wrapper, to avoid direct SA dependency when possible.
-
-def info_eq(a, b):
- a = list(a)
- b = list(b)
- a.sort()
- b.sort()
- return a == b
-
-class PerfDB:
- def __init__(self, path, echo=False):
- if not path.startswith('mysql://'):
- path = 'sqlite:///' + path
- self.engine = sqlalchemy.create_engine(path, echo=echo)
- Session = sqlalchemy.orm.sessionmaker(self.engine)
- self.session = Session()
-
- def machines(self, name=None):
- q = self.session.query(Machine)
- if name:
- q = q.filter_by(name=name)
- return q
-
- def tests(self, name=None):
- q = self.session.query(Test)
- if name:
- q = q.filter_by(name=name)
- return q
-
- def runs(self, machine=None):
- q = self.session.query(Run)
- if machine:
- q = q.filter_by(machine=machine)
- return q
-
- def samples(self, run=None, test=None):
- q = self.session.query(Sample)
- if run:
- q = q.filter_by(run_id=run.id)
- if test:
- q = q.filter_by(test_id=test.id)
- return q
-
- def getNumMachines(self):
- return self.machines().count()
-
- def getNumRuns(self):
- return self.runs().count()
-
- def getNumTests(self):
- return self.tests().count()
-
- def getNumSamples(self):
- return self.samples().count()
-
- def getMachine(self, id):
- return self.session.query(Machine).filter_by(id=id).one()
-
- def getRun(self, id):
- return self.session.query(Run).filter_by(id=id).one()
-
- def getTest(self, id):
- return self.session.query(Test).filter_by(id=id).one()
-
- def getOrCreateMachine(self, name, info):
- # FIXME: Not really the right way...
- number = 1
- for m in self.machines(name=name):
- if info_eq([(i.key, i.value) for i in m.info.values()], info):
- return m,False
- number += 1
-
- # Make a new record
- m = Machine(name, number)
- m.info = dict((k,MachineInfo(m,k,v)) for k,v in info)
- self.session.add(m)
- return m,True
-
- def getOrCreateTest(self, name, info):
- # FIXME: Not really the right way...
- for t in self.tests(name):
- if info_eq([(i.key, i.value) for i in t.info.values()], info):
- return t,False
-
- t = Test(name)
- t.info = dict((k,TestInfo(t,k,v)) for k,v in info)
- self.session.add(t)
- return t,True
-
- def getOrCreateRun(self, machine, start_time, end_time, info):
- from datetime import datetime
- start_time = datetime.strptime(start_time,
- "%Y-%m-%d %H:%M:%S")
- end_time = datetime.strptime(end_time,
- "%Y-%m-%d %H:%M:%S")
-
- # FIXME: Not really the right way...
- for r in self.session.query(Run).filter_by(machine=machine):
- # FIXME: Execute this filter in SQL, but resolve the
- # normalization issue w.r.t. SQLAlchemy first. I think we
- # may be running afoul of SQLite not normalizing the
- # datetime. If I don't do this then sqlalchemy issues a
- # query in the format YYYY-MM-DD HH:MM:SS.ssss which
- # doesn't work.
- if r.start_time != start_time or r.end_time != end_time:
- continue
- if info_eq([(i.key, i.value) for i in r.info.values()], info):
- return r,False
-
- # Make a new record
- r = Run(machine, start_time, end_time)
- r.info = dict((k,RunInfo(r,k,v)) for k,v in info)
- self.session.add(r)
- return r,True
-
- def addSample(self, run, test, value):
- s = Sample(run, test, value)
- self.session.add(s)
- return s
-
- def addSamples(self, samples):
- """addSamples([(run_id, test_id, value), ...]) -> None
-
- Batch insert a list of samples."""
-
- # Flush to keep session consistent.
- self.session.flush()
-
- for run_id,test_id,value in samples:
- q = Sample.__table__.insert().values(RunID = run_id,
- TestID = test_id,
- Value = value)
- self.session.execute(q)
-
- def commit(self):
- self.session.commit()
-
- def rollback(self):
- self.session.rollback()
-
-def importDataFromDict(db, data):
- # FIXME: Validate data
- machineData = data['Machine']
- runData = data['Run']
- testsData = data['Tests']
-
- # Get the machine
- # FIXME: Validate machine
- machine,_ = db.getOrCreateMachine(machineData['Name'],
- machineData['Info'].items())
-
- # Accept 'Time' as an alias for 'Start Time'
- if 'Start Time' not in runData and 'Time' in runData:
- import time
- t = time.strptime(runData['Time'],
- "%a, %d %b %Y %H:%M:%S -0700 (PDT)")
- runData['Start Time'] = time.strftime('%Y-%m-%d %H:%M', t)
-
- # Create the run.
- run,inserted = db.getOrCreateRun(machine,
- runData.get('Start Time',''),
- runData.get('End Time',''),
- runData.get('Info',{}).items())
- if not inserted:
- return False,(machine,run)
-
- # Batch load the set of tests instead of repeatedly querying to unique.
- #
- # FIXME: Add explicit config object.
- test_info = {}
- for id,k,v in db.session.query(TestInfo.test_id, TestInfo.key,
- TestInfo.value):
- test_info[id] = (str(k),str(v))
-
- testMap = {}
- for test_id,test_name in db.session.query(Test.id, Test.name):
- info = test_info.get(test_id,[])
- info.sort()
- testMap[(str(test_name),tuple(info))] = test_id
-
- # Create the tests up front, so we can resolve IDs.
- test_ids = []
- late_ids = []
- for i,testData in enumerate(testsData):
- name = str(testData['Name'])
- info = [(str(k),str(v)) for k,v in testData['Info'].items()]
- info.sort()
- test_id = testMap.get((name,tuple(info)))
- if test_id is None:
- test,created = db.getOrCreateTest(testData['Name'],testData['Info'])
- assert created
- late_ids.append((i,test))
- test_ids.append(test_id)
-
- # Flush now to resolve test and run ids.
- #
- # FIXME: Surely there is a cleaner way to handle this?
- db.session.flush()
-
- if late_ids:
- for i,t in late_ids:
- test_ids[i] = t.id
-
- db.addSamples([(run.id, test_id, value)
- for test_id,testData in zip(test_ids, testsData)
- for value in testData['Data']])
-
- return True,(machine,run)
-
-def test_sa_db(dbpath):
- if not dbpath.startswith('mysql://'):
- dbpath = 'sqlite:///' + dbpath
- engine = sqlalchemy.create_engine(dbpath)
-
- Session = sqlalchemy.orm.sessionmaker(engine)
- Session.configure(bind=engine)
-
- session = Session()
-
- m = session.query(Machine).first()
- print m
- print m.info
-
- r = session.query(Run).first()
- print r
- print r.info
-
- t = session.query(Test)[20]
- print t
- print t.info
-
- s = session.query(Sample)[20]
- print s
-
- import time
- start = time.time()
- print
- q = session.query(Sample)
- q = q.filter(Sample.run_id == 994)
- print
- res = session.execute(q)
- print res
- N = 0
- for row in res:
- if N == 1:
- print row
- N += 1
- print N, time.time() - start
- print
-
- start = time.time()
- N = 0
- for row in q:
- if N == 1:
- print row
- N += 1
- print N, time.time() - start
-
-def main():
- global opts
- from optparse import OptionParser
- parser = OptionParser("usage: %prog dbpath")
- opts,args = parser.parse_args()
-
- if len(args) != 1:
- parser.error("incorrect number of argments")
-
- dbpath, = args
-
- # Test the SQLAlchemy layer.
- test_sa_db(dbpath)
-
- # Test the PerfDB wrapper.
- db = PerfDB(dbpath)
-
- print "Opened %r" % dbpath
-
- for m in db.machines():
- print m
- for r in db.runs(m):
- print ' run - id:%r, start:%r,'\
- ' # samples: %d.' % (r.id, r.start_time,
- db.samples(run=r).count())
-
-if __name__ == '__main__':
- main()
Removed: zorg/trunk/lnt/viewer/Util.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/Util.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/Util.py (original)
+++ zorg/trunk/lnt/viewer/Util.py (removed)
@@ -1,213 +0,0 @@
-import colorsys
-import math
-
-def detectCPUs():
- """
- Detects the number of CPUs on a system. Cribbed from pp.
- """
- import os
- # Linux, Unix and MacOS:
- if hasattr(os, "sysconf"):
- if os.sysconf_names.has_key("SC_NPROCESSORS_ONLN"):
- # Linux & Unix:
- ncpus = os.sysconf("SC_NPROCESSORS_ONLN")
- if isinstance(ncpus, int) and ncpus > 0:
- return ncpus
- else: # OSX:
- return int(os.popen2("sysctl -n hw.ncpu")[1].read())
- # Windows:
- if os.environ.has_key("NUMBER_OF_PROCESSORS"):
- ncpus = int(os.environ["NUMBER_OF_PROCESSORS"]);
- if ncpus > 0:
- return ncpus
- return 1 # Default
-
-def safediv(a, b, default=None):
- try:
- return a/b
- except ZeroDivisionError:
- return default
-
-def makeDarkColor(h):
- h = h%1.
- s = 0.95
- v = 0.8
- return colorsys.hsv_to_rgb(h,0.9+s*.1,v)
-
-def makeMediumColor(h):
- h = h%1.
- s = .68
- v = 0.92
- return colorsys.hsv_to_rgb(h,s,v)
-
-def makeLightColor(h):
- h = h%1.
- s = (0.5,0.4)[h>0.5 and h<0.8]
- v = 1.0
- return colorsys.hsv_to_rgb(h,s,v)
-
-def makeBetterColor(h):
- h = math.cos(h*math.pi*.5)
- s = .8 + ((math.cos(h * math.pi*.5) + 1)*.5) * .2
- v = .88
- return colorsys.hsv_to_rgb(h,s,v)
-
-class multidict:
- def __init__(self, elts=()):
- self.data = {}
- for key,value in elts:
- self[key] = value
-
- def __getitem__(self, item):
- return self.data[item]
- def __setitem__(self, key, value):
- if key in self.data:
- self.data[key].append(value)
- else:
- self.data[key] = [value]
- def items(self):
- return self.data.items()
- def values(self):
- return self.data.values()
- def keys(self):
- return self.data.keys()
- def __len__(self):
- return len(self.data)
- def get(self, key, default=None):
- return self.data.get(key, default)
-
-def any_true(list, predicate):
- for i in list:
- if predicate(i):
- return True
- return False
-
-def any_false(list, predicate):
- return any_true(list, lambda x: not predicate(x))
-
-def all_true(list, predicate):
- return not any_false(list, predicate)
-
-def all_false(list, predicate):
- return not any_true(list, predicate)
-
-def geometric_mean(l):
- iPow = 1./len(l)
- return reduce(lambda a,b: a*b, [v**iPow for v in l])
-
-def mean(l):
- return sum(l) / len(l)
-
-def median(l):
- l = list(l)
- l.sort()
- N = len(l)
- return (l[(N - 1)//2] +
- l[(N + 0)//2]) * .5
-
-def prependLines(prependStr, str):
- return ('\n'+prependStr).join(str.splitlines())
-
-def pprint(object, useRepr=True):
- def recur(ob):
- return pprint(ob, useRepr)
- def wrapString(prefix, string, suffix):
- return '%s%s%s' % (prefix,
- prependLines(' ' * len(prefix),
- string),
- suffix)
- def pprintArgs(name, args):
- return wrapString(name + '(', ',\n'.join(map(recur,args)), ')')
-
- if isinstance(object, tuple):
- return wrapString('(', ',\n'.join(map(recur,object)),
- [')',',)'][len(object) == 1])
- elif isinstance(object, list):
- return wrapString('[', ',\n'.join(map(recur,object)), ']')
- elif isinstance(object, set):
- return pprintArgs('set', list(object))
- elif isinstance(object, dict):
- elts = []
- for k,v in object.items():
- kr = recur(k)
- vr = recur(v)
- elts.append('%s : %s' % (kr,
- prependLines(' ' * (3 + len(kr.splitlines()[-1])),
- vr)))
- return wrapString('{', ',\n'.join(elts), '}')
- else:
- if useRepr:
- return repr(object)
- return str(object)
-
-def prefixAndPPrint(prefix, object, useRepr=True):
- return prefix + prependLines(' '*len(prefix), pprint(object, useRepr))
-
-def clamp(v, minVal, maxVal):
- return min(max(v, minVal), maxVal)
-
-def lerp(a,b,t):
- t_ = 1. - t
- return tuple([av*t_ + bv*t for av,bv in zip(a,b)])
-
-class PctCell:
- # Color levels
- kNeutralColor = (1,1,1)
- kNegativeColor = (0,1,0)
- kPositiveColor = (1,0,0)
- # Invalid color
- kNANColor = (.86,.86,.86)
- kInvalidColor = (0,0,1)
-
- def __init__(self, value, reverse=False, precision=2, delta=False):
- if delta and isinstance(value, float):
- value -= 1
- self.value = value
- self.reverse = reverse
- self.precision = precision
-
- def getColor(self):
- v = self.value
- if not isinstance(v, float):
- return self.kNANColor
-
- # Clamp value.
- v = clamp(v, -1, 1)
-
- if self.reverse:
- v = -v
- if v < 0:
- c = self.kNegativeColor
- else:
- c = self.kPositiveColor
- t = abs(v)
-
- # Smooth mapping to put first 20% of change into 50% of range, although
- # really we should compensate for luma.
- t = math.sin((t ** .477) * math.pi * .5)
- return lerp(self.kNeutralColor, c, t)
-
- def getValue(self):
- if not isinstance(self.value, float):
- return self.value
- return '%.*f%%' % (self.precision, self.value*100)
-
- def render(self):
- import quixote.html
- r,g,b = [clamp(int(v*255), 0, 255)
- for v in self.getColor()]
- res = '<td bgcolor="#%02x%02x%02x">%s</td>' % (r,g,b, self.getValue())
- return quixote.html.htmltext(res)
-
-
-def addOtherFormValues(form):
- import quixote
- request = quixote.get_request()
- for name,value in request.form.items():
- if form.get_widget(name) is None:
- form.add(quixote.form.HiddenWidget, name, value=value)
-
-def sorted(l, *args, **kwargs):
- l = list(l)
- l.sort(*args, **kwargs)
- return l
Removed: zorg/trunk/lnt/viewer/__init__.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/__init__.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/__init__.py (original)
+++ zorg/trunk/lnt/viewer/__init__.py (removed)
@@ -1 +0,0 @@
-__all__ = []
Removed: zorg/trunk/lnt/viewer/js/View2D.js
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/js/View2D.js?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/js/View2D.js (original)
+++ zorg/trunk/lnt/viewer/js/View2D.js (removed)
@@ -1,842 +0,0 @@
-//===-- View2D.js - HTML5 Canvas Based 2D View/Graph Widget ---------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a generic 2D view widget and a 2D graph widget on top of
-// it, using the HTML5 Canvas. It currently supports Firefox and Safari
-// (Chromium should work, but is untested).
-//
-// See the Graph2D implementation for details of how to extend the View2D
-// object.
-//
-// FIXME: Currently, this uses MooTools extensions, but I would like to rewrite
-// it in pure JS for more portability (e.g., use in Buildbot).
-//
-//===----------------------------------------------------------------------===//
-
-function lerp(a, b, t) {
- return a * (1.0 - t) + b * t;
-}
-
-function clamp(a, lower, upper) {
- return Math.max(lower, Math.min(upper, a));
-}
-
-function vec2_neg (a) { return [-a[0] , -a[1] ]; };
-function vec2_add (a, b) { return [a[0]+b[0], a[1]+b[1]]; };
-function vec2_addN(a, b) { return [a[0]+b , a[1]+b ]; };
-function vec2_sub (a, b) { return [a[0]-b[0], a[1]-b[1]]; };
-function vec2_subN(a, b) { return [a[0]-b , a[1]-b ]; };
-function vec2_mul (a, b) { return [a[0]*b[0], a[1]*b[1]]; };
-function vec2_mulN(a, b) { return [a[0]*b , a[1]*b ]; };
-function vec2_div (a, b) { return [a[0]/b[0], a[1]/b[1]]; };
-function vec2_divN(a, b) { return [a[0]/b , a[1]/b ]; };
-
-function vec3_neg (a) { return [-a[0] , -a[1] , -a[2] ]; };
-function vec3_add (a, b) { return [a[0]+b[0], a[1]+b[1], a[2]+b[2]]; };
-function vec3_addN(a, b) { return [a[0]+b , a[1]+b, a[2]+b ]; };
-function vec3_sub (a, b) { return [a[0]-b[0], a[1]-b[1], a[2]-b[2]]; };
-function vec3_subN(a, b) { return [a[0]-b , a[1]-b, a[2]-b ]; };
-function vec3_mul (a, b) { return [a[0]*b[0], a[1]*b[1], a[2]*b[2]]; };
-function vec3_mulN(a, b) { return [a[0]*b , a[1]*b, a[2]*b ]; };
-function vec3_div (a, b) { return [a[0]/b[0], a[1]/b[1], a[2]/b[2]]; };
-function vec3_divN(a, b) { return [a[0]/b , a[1]/b, a[2]/b ]; };
-
-function vec2_lerp(a, b, t) {
- return [lerp(a[0], b[0], t), lerp(a[1], b[1], t)];
-}
-function vec2_mag(a) {
- return a[0] * a[0] + a[1] * a[1];
-}
-function vec2_len(a) {
- return Math.sqrt(vec2_mag(a));
-}
-
-function vec2_floor(a) {
- return [Math.floor(a[0]), Math.floor(a[1])];
-}
-function vec2_ceil(a) {
- return [Math.ceil(a[0]), Math.ceil(a[1])];
-}
-
-function vec3_floor(a) {
- return [Math.floor(a[0]), Math.floor(a[1]), Math.floor(a[2])];
-}
-function vec3_ceil(a) {
- return [Math.ceil(a[0]), Math.ceil(a[1]), Math.ceil(a[2])];
-}
-
-function vec2_log(a) {
- return [Math.log(a[0]), Math.log(a[1])];
-}
-function vec2_pow(a, b) {
- return [Math.pow(a[0], b[0]), Math.pow(a[1], b[1])];
-}
-function vec2_Npow(a, b) {
- return [Math.pow(a, b[0]), Math.pow(a, b[1])];
-}
-function vec2_powN(a, b) {
- return [Math.pow(a[0], b), Math.pow(a[1], b)];
-}
-
-function vec2_min(a, b) {
- return [Math.min(a[0], b[0]), Math.min(a[1], b[1])];
-}
-function vec2_max(a, b) {
- return [Math.max(a[0], b[0]), Math.max(a[1], b[1])];
-}
-function vec2_clamp(a, lower, upper) {
- return [clamp(a[0], lower[0], upper[0]),
- clamp(a[1], lower[1], upper[1])];
-}
-function vec2_clampN(a, lower, upper) {
- return [clamp(a[0], lower, upper),
- clamp(a[1], lower, upper)];
-}
-
-function vec3_min(a, b) {
- return [Math.min(a[0], b[0]), Math.min(a[1], b[1]), Math.min(a[2], b[2])];
-}
-function vec3_max(a, b) {
- return [Math.max(a[0], b[0]), Math.max(a[1], b[1]), Math.max(a[2], b[2])];
-}
-function vec3_clamp(a, lower, upper) {
- return [clamp(a[0], lower[0], upper[0]),
- clamp(a[1], lower[1], upper[1]),
- clamp(a[2], lower[2], upper[2])];
-}
-function vec3_clampN(a, lower, upper) {
- return [clamp(a[0], lower, upper),
- clamp(a[1], lower, upper),
- clamp(a[2], lower, upper)];
-}
-
-function vec2_cswap(a, swap) {
- if (swap)
- return [a[1],a[0]];
- return a;
-}
-
-function col3_to_rgb(col) {
- var norm = vec3_floor(vec3_clampN(vec3_mulN(col, 255), 0, 255));
- return "rgb(" + norm[0] + "," + norm[1] + "," + norm[2] + ")";
-}
-
-function col4_to_rgba(col) {
- var norm = vec3_floor(vec3_clampN(vec3_mulN(col, 255), 0, 255));
- return "rgb(" + norm[0] + "," + norm[1] + "," + norm[2] + "," + col[3] + ")";
-}
-
-var ViewData = new Class ({
- initialize: function(location, scale) {
- if (!location)
- location = [0, 0];
- if (!scale)
- scale = [1, 1];
-
- this.location = location;
- this.scale = scale;
- },
-
- copy: function() {
- return new ViewData(this.location, this.scale);
- },
-});
-
-var ViewAction = new Class ({
- initialize: function(mode, v2d, start) {
- this.mode = mode;
- this.start = start;
- this.vd = v2d.viewData.copy();
- },
-
- update: function(v2d, co) {
- if (this.mode == 'p') {
- var delta = vec2_sub(v2d.convertClientToNDC(co, this.vd),
- v2d.convertClientToNDC(this.start, this.vd))
- v2d.viewData.location = vec2_add(this.vd.location, delta);
- } else {
- var delta = vec2_sub(v2d.convertClientToNDC(co, this.vd),
- v2d.convertClientToNDC(this.start, this.vd))
- v2d.viewData.scale = vec2_Npow(Math.E,
- vec2_addN(vec2_log(this.vd.scale),
- delta[1]))
- v2d.viewData.location = vec2_mul(this.vd.location,
- vec2_div(v2d.viewData.scale,
- this.vd.scale))
- }
-
- v2d.refresh();
- },
-
- complete: function(v2d, co) {
- this.update(v2d, co);
- },
-
- abort: function(v2d) {
- v2d.viewData = this.vd;
- },
-});
-
-var View2D = new Class ({
- initialize: function(canvasname) {
- this.canvasname = canvasname
- this.viewData = new ViewData();
- this.size = [1, 1];
- this.aspect = 1;
- this.registered = false;
-
- this.viewAction = null;
-
- this.useWidgets = true;
- this.previewPosition = [5, 5];
- this.previewSize = [60, 60];
-
- this.clearColor = [1, 1, 1];
-
- // Bound once registered.
- this.canvas = null;
- },
-
- registerEvents: function(canvas) {
- if (this.registered)
- return;
-
- this.registered = true;
-
- this.canvas = canvas;
-
- // FIXME: Why do I have to do this?
- var obj = this;
-
- canvas.addEvent('mousedown', function(event) { obj.onMouseDown(event); })
- canvas.addEvent('mousemove', function(event) { obj.onMouseMove(event); })
- canvas.addEvent('mouseup', function(event) { obj.onMouseUp(event); })
- canvas.addEvent('mousewheel', function(event) { obj.onMouseWheel(event); })
-
- // FIXME: Capturing!
- },
-
- onMouseDown: function(event) {
- pos = [event.client.x - this.canvas.offsetLeft,
- this.size[1] - 1 - (event.client.y - this.canvas.offsetTop)];
-
- if (this.viewAction != null)
- this.viewAction.abort(this);
-
- if (event.shift)
- this.viewAction = new ViewAction('p', this, pos);
- else if (event.alt || event.meta)
- this.viewAction = new ViewAction('z', this, pos);
- event.stop();
- },
- onMouseMove: function(event) {
- pos = [event.client.x - this.canvas.offsetLeft,
- this.size[1] - 1 - (event.client.y - this.canvas.offsetTop)];
-
- if (this.viewAction != null)
- this.viewAction.update(this, pos);
- event.stop();
- },
- onMouseUp: function(event) {
- pos = [event.client.x - this.canvas.offsetLeft,
- this.size[1] - 1 - (event.client.y - this.canvas.offsetTop)];
-
- if (this.viewAction != null)
- this.viewAction.complete(this, pos);
- this.viewAction = null;
- event.stop();
- },
- onMouseWheel: function(event) {
- if (this.viewAction == null) {
- var factor = event.wheel;
- if (event.shift)
- factor *= .1;
- var zoom = 1.0 + .03 * factor;
- this.viewData.location = vec2_mulN(this.viewData.location, zoom);
- this.viewData.scale = vec2_mulN(this.viewData.scale, zoom);
- this.refresh();
- }
- event.stop();
- },
-
- setViewData: function(vd) {
- // FIXME: Check equality and avoid refresh.
- this.viewData = vd;
- this.refresh();
- },
-
- refresh: function() {
- // FIXME: Event loop?
- this.draw();
- },
-
- // Coordinate conversion.
-
- getAspectScale: function() {
- if (this.aspect > 1) {
- return [1.0 / this.aspect, 1.0];
- } else {
- return [1.0, this.aspect];
- }
- },
-
- getPixelSize: function() {
- return vec2_sub(this.convertClientToWorld([1,1]),
- this.convertClientToWorld([0,0]));
- },
-
- convertClientToNDC: function(pt, vd) {
- if (vd == null)
- vd = this.viewData
- return [pt[0] / this.size[0] * 2 - 1,
- pt[1] / this.size[1] * 2 - 1];
- },
-
- convertClientToWorld: function(pt, vd) {
- if (vd == null)
- vd = this.viewData
- pt = this.convertClientToNDC(pt, vd)
- pt = vec2_sub(pt, vd.location);
- pt = vec2_div(pt, vec2_mul(vd.scale, this.getAspectScale()));
- return pt;
- },
-
- convertWorldToPreview: function(pt, pos, size) {
- var asp_scale = this.getAspectScale();
- pt = vec2_mul(pt, asp_scale);
- pt = vec2_addN(pt, 1);
- pt = vec2_mulN(pt, .5);
- pt = vec2_mul(pt, size);
- pt = vec2_add(pt, pos);
- return pt;
- },
-
- setViewMatrix: function(ctx) {
- ctx.scale(this.size[0], this.size[1]);
- ctx.scale(.5, .5);
- ctx.translate(1, 1);
- ctx.translate(this.viewData.location[0], this.viewData.location[1]);
- var scale = vec2_mul(this.viewData.scale, this.getAspectScale());
- ctx.scale(scale[0], scale[1]);
- },
-
- setPreviewMatrix: function(ctx, pos, size) {
- ctx.translate(pos[0], pos[1]);
- ctx.scale(size[0], size[1]);
- ctx.scale(.5, .5);
- ctx.translate(1, 1);
- var scale = this.getAspectScale();
- ctx.scale(scale[0], scale[1]);
- },
-
- setWindowMatrix: function(ctx) {
- ctx.translate(.5, .5);
- ctx.translate(0, this.size[1]);
- ctx.scale(1, -1);
- },
-
- draw: function() {
- var canvas = document.getElementById(this.canvasname);
- var ctx = canvas.getContext("2d");
-
- this.registerEvents(canvas);
-
- if (canvas.width != this.size[0] || canvas.height != this.size[1]) {
- this.size = [canvas.width, canvas.height];
- this.aspect = canvas.width / canvas.height;
- this.previewPosition[0] = this.size[0] - this.previewSize[0] - 5;
- this.on_size_change();
- }
-
- this.on_draw_start();
-
- ctx.save();
-
- // Clear and draw the view content.
- ctx.save();
- this.setWindowMatrix(ctx);
-
- ctx.clearRect(0, 0, this.size[0], this.size[1]);
- ctx.fillStyle = col3_to_rgb(this.clearColor);
- ctx.fillRect(0, 0, this.size[0], this.size[1]);
-
- this.setViewMatrix(ctx);
- this.on_draw(canvas, ctx);
- ctx.restore();
-
- if (this.useWidgets)
- this.drawPreview(canvas, ctx)
-
- ctx.restore();
- },
-
- drawPreview: function(canvas, ctx) {
- // Setup the preview context.
- this.setWindowMatrix(ctx);
-
- // Draw the preview area outline.
- ctx.fillStyle = "rgba(128,128,128,.5)";
- ctx.fillRect(this.previewPosition[0]-1, this.previewPosition[1]-1,
- this.previewSize[0]+2, this.previewSize[1]+2);
- ctx.lineWidth = 1;
- ctx.strokeStyle = "rgb(0,0,0)";
- ctx.strokeRect(this.previewPosition[0]-1, this.previewPosition[1]-1,
- this.previewSize[0]+2, this.previewSize[1]+2);
-
- // Compute the aspect corrected preview area.
- var pv_size = [this.previewSize[0], this.previewSize[1]];
- if (this.aspect > 1) {
- pv_size[1] /= this.aspect;
- } else {
- pv_size[0] *= this.aspect;
- }
- var pv_pos = vec2_add(this.previewPosition,
- vec2_mulN(vec2_sub(this.previewSize, pv_size), .5));
-
- // Draw the preview, making sure to clip to the proper area.
- ctx.save();
- ctx.beginPath();
- ctx.rect(pv_pos[0], pv_pos[1], pv_size[0], pv_size[1]);
- ctx.clip();
- ctx.closePath();
-
- this.setPreviewMatrix(ctx, pv_pos, pv_size);
- this.on_draw_preview(canvas, ctx);
- ctx.restore();
-
- // Draw the current view overlay.
- //
- // FIXME: Find a replacement for stippling.
- ll = this.convertClientToWorld([0, 0])
- ur = this.convertClientToWorld(this.size);
-
- // Convert to pixel coordinates instead of drawing in content
- // perspective.
- ll = vec2_floor(this.convertWorldToPreview(ll, pv_pos, pv_size))
- ur = vec2_ceil(this.convertWorldToPreview(ur, pv_pos, pv_size))
- ll = vec2_clamp(ll, this.previewPosition,
- vec2_add(this.previewPosition, this.previewSize))
- ur = vec2_clamp(ur, this.previewPosition,
- vec2_add(this.previewPosition, this.previewSize))
-
- ctx.strokeStyle = "rgba(128,128,128,255)";
- ctx.lineWidth = 1;
- ctx.strokeRect(ll[0], ll[1], ur[0] - ll[0], ur[1] - ll[1]);
- },
-
- on_size_change: function() {},
- on_draw_start: function() {},
- on_draw: function(canvas, ctx) {},
- on_draw_preview: function(canvas, ctx) {},
-});
-
-var View2DTest = new Class ({
- Extends: View2D,
-
- on_draw: function(canvas, ctx) {
- ctx.fillStyle = "rgb(255,255,255)";
- ctx.fillRect(-1000, -1000, 2000, 20000);
-
- ctx.lineWidth = .01;
- ctx.strokeTyle = "rgb(0,200,0)";
- ctx.strokeRect(-1, -1, 2, 2);
-
- ctx.fillStyle = "rgb(200,0,0)";
- ctx.fillRect(-.8, -.8, 1, 1);
-
- ctx.fillStyle = "rgb(0,0,200)";
- ctx.beginPath();
- ctx.arc(0, 0, .5, 0, 2 * Math.PI, false);
- ctx.fill();
- ctx.closePath();
- },
-
- on_draw_preview: function(canvas, ctx) {
- ctx.fillStyle = "rgba(255,255,255,.4)";
- ctx.fillRect(-1000, -1000, 2000, 20000);
-
- ctx.lineWidth = .01;
- ctx.strokeTyle = "rgba(0,200,0,.4)";
- ctx.strokeRect(-1, -1, 2, 2);
-
- ctx.fillStyle = "rgba(200,0,0,.4)";
- ctx.fillRect(-.8, -.8, 1, 1);
-
- ctx.fillStyle = "rgba(0,0,200,.4)";
- ctx.beginPath();
- ctx.arc(0, 0, .5, 0, 2 * Math.PI, false);
- ctx.fill();
- ctx.closePath();
- },
-});
-
-var Graph2D_GraphInfo = new Class ({
- initialize: function() {
- this.xAxisH = 0;
- this.yAxisW = 0;
- this.ll = [0, 0];
- this.ur = [1, 1];
- },
-
- toNDC: function(pt) {
- return [2 * (pt[0] - this.ll[0]) / (this.ur[0] - this.ll[0]) - 1,
- 2 * (pt[1] - this.ll[1]) / (this.ur[1] - this.ll[1]) - 1];
- },
-
- fromNDC: function(pt) {
- return [this.ll[0] + (this.ur[0] - this.ll[0]) * (pt[0] + 1) * .5,
- this.ll[1] + (this.ur[1] - this.ll[1]) * (pt[1] + 1) * .5];
- },
-});
-
-var Graph2D_PlotStyle = new Class ({
- initialize: function() {},
-
- plot: function(graph, ctx, data) {},
-});
-
-var Graph2D_LinePlotStyle = new Class ({
- Extends: Graph2D_PlotStyle,
-
- initialize: function(width, color) {
- if (!width)
- width = 1;
- if (!color)
- color = [0,0,0];
-
- this.parent();
- this.width = width;
- this.color = color;
- },
-
- plot: function(graph, ctx, data) {
- if (data.length === 0)
- return;
-
- ctx.beginPath();
- var co = graph.graphInfo.toNDC(data[0]);
- ctx.moveTo(co[0], co[1]);
- for (var i = 1, e = data.length; i != e; ++i) {
- var co = graph.graphInfo.toNDC(data[i]);
- ctx.lineTo(co[0], co[1]);
- }
- ctx.lineWidth = this.width * (graph.getPixelSize()[0] + graph.getPixelSize()[1]) * .5;
- ctx.strokeStyle = col3_to_rgb(this.color);
- ctx.stroke();
- },
-});
-
-var Graph2D_Axis = new Class ({
- // Static Methods
- formats: {
- normal: function(value, iDigits, fDigits) {
- // FIXME: iDigits?
- return value.toFixed(fDigits);
- },
- day: function(value, iDigits, fDigits) {
- var date = new Date(value * 1000.);
- var res = date.getUTCFullYear();
- res += "-" + (date.getUTCMonth() + 1);
- res += "-" + (date.getUTCDate() + 1);
- return res;
- },
- },
-
- initialize: function(dir, format) {
- if (!format)
- format = this.formats.normal;
-
- this.dir = dir;
- this.format = format;
- },
-
- draw: function(graph, ctx, ll, ur, mainUR) {
- var dir = this.dir, ndir = 1 - this.dir;
- var vMin = ll[dir];
- var vMax = ur[dir];
- var near = ll[ndir];
- var far = ur[ndir];
- var border = mainUR[ndir];
-
- var line_base = (graph.getPixelSize()[0] + graph.getPixelSize()[1]) * .5;
- ctx.lineWidth = 2 * line_base;
- ctx.strokeStyle = "rgb(0,0,0)";
-
- ctx.beginPath();
- var co = vec2_cswap([vMin, far], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.moveTo(co[0], co[1]);
- var co = vec2_cswap([vMax, far], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.lineTo(co[0], co[1]);
- ctx.stroke();
-
- var delta = vMax - vMin;
- var steps = Math.floor(Math.log(delta) / Math.log(10));
- if (delta / Math.pow(10, steps) >= 5.0) {
- var size = .5;
- } else if (delta / Math.pow(10, steps) >= 2.5) {
- var size = .25;
- } else {
- var size = .1;
- }
- size *= Math.pow(10, steps);
-
- if (steps <= 0) {
- var iDigits = 0, fDigits = 1 + Math.abs(steps);
- } else {
- var iDigits = steps, fDigits = 0;
- }
-
- var start = Math.ceil(vMin / size);
- var end = Math.ceil(vMax / size);
-
- // FIXME: Draw in window coordinates to make crisper.
-
- // FIXME: Draw grid in layers to avoid ugly overlaps.
-
- for (var i = start; i != end; ++i) {
- if (i == 0) {
- ctx.lineWidth = 3 * line_base;
- var p = .5;
- } else if (!(i & 1)) {
- ctx.lineWidth = 2 * line_base;
- var p = .5;
- } else {
- ctx.lineWidth = 1 * line_base;
- var p = .75;
- }
-
- ctx.beginPath();
- var co = vec2_cswap([i * size, lerp(near, far, p)], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.moveTo(co[0], co[1]);
- var co = vec2_cswap([i * size, far], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.lineTo(co[0], co[1]);
- ctx.stroke();
- }
-
- for (var alt = 0; alt < 2; ++alt) {
- if (alt)
- ctx.strokeStyle = "rgba(190,190,190,.5)";
- else
- ctx.strokeStyle = "rgba(128,128,128,.5)";
- ctx.lineWidth = 1 * line_base;
- ctx.beginPath();
- for (var i = start; i != end; ++i) {
- if (i == 0)
- continue;
- if ((i & 1) == alt) {
- var co = vec2_cswap([i * size, far], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.moveTo(co[0], co[1]);
- var co = vec2_cswap([i * size, border], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.lineTo(co[0], co[1]);
- }
- }
- ctx.stroke();
-
- if (start <= 0 && 0 < end) {
- ctx.beginPath();
- var co = vec2_cswap([0, far], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.moveTo(co[0], co[1]);
- var co = vec2_cswap([0, border], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.lineTo(co[0], co[1]);
- ctx.strokeStyle = "rgba(64,64,64,.5)";
- ctx.lineWidth = 3 * line_base;
- ctx.stroke();
- }
- }
-
- // FIXME: Draw this in screen coordinates, and stop being stupid. Also,
- // figure out font height?
- if (this.dir == 1) {
- var offset = [-.5, -.25];
- } else {
- var offset = [-.5, 1.1];
- }
- ctx.fillStyle = "rgb(0,0,0)";
- var pxl = graph.getPixelSize();
- for (var i = start; i != end; ++i) {
- if ((i & 1) == 0) {
- var label = this.format(i * size, iDigits, fDigits);
- ctx.save();
- var co = vec2_cswap([i*size, lerp(near, far, .5)], dir);
- co = graph.graphInfo.toNDC(co);
- ctx.translate(co[0], co[1]);
- ctx.scale(pxl[0], -pxl[1]);
- // FIXME: Abstract.
- var bb_w = label.length * 5;
- if (ctx.measureText != null)
- bb_w = ctx.measureText(label).width;
- var bb_h = 12;
- // FIXME: Abstract? Or ignore.
- if (ctx.fillText != null) {
- ctx.fillText(label, bb_w*offset[0], bb_h*offset[1]);
- } else if (ctx.mozDrawText != null) {
- ctx.translate(bb_w*offset[0], bb_h*offset[1]);
- ctx.mozDrawText(label);
- }
- ctx.restore();
- }
- }
- },
-});
-
-var Graph2D = new Class ({
- Extends: View2D,
-
- initialize: function(canvasname) {
- this.parent(canvasname);
-
- this.useWidgets = false;
- this.plots = [];
- this.graphInfo = null;
- this.xAxis = new Graph2D_Axis(0);
- this.yAxis = new Graph2D_Axis(1);
- this.debugText = null;
-
- this.clearColor = [.8, .8, .8];
- },
-
- //
-
- graphChanged: function() {
- this.graphInfo = null;
- // FIXME: Need event loop.
- this.refresh();
- },
-
- layoutGraph: function() {
- var gi = new Graph2D_GraphInfo();
-
- gi.xAxisH = 40;
- gi.yAxisW = 40;
-
- var min = null, max = null;
- for (var i = 0, e = this.plots.length; i != e; ++i) {
- var data = this.plots[i][0];
- for (var i2 = 0, e2 = data.length; i2 != e2; ++i2) {
- if (min == null)
- min = data[i2];
- else
- min = vec2_min(min, data[i2]);
-
- if (max == null)
- max = data[i2];
- else
- max = vec2_max(max, data[i2]);
- }
- }
-
- if (min === null)
- min = [0, 0];
- if (max === null)
- max = [0, 0];
- if (Math.abs(max[0] - min[0]) < .001)
- max[0] += 1;
- if (Math.abs(max[1] - min[1]) < .001)
- max[1] += 1;
-
- // Set graph transform to the [min,max] rect to the content area with
- // some padding.
- //
- // FIXME: Add real mat3 and implement this properly.
- var pad = 5;
- var vd = new ViewData();
- var ll_target = this.convertClientToWorld([gi.yAxisW + pad, gi.xAxisH + pad], vd);
- var ur_target = this.convertClientToWorld(vec2_subN(this.size, pad), vd);
- var target_size = vec2_sub(ur_target, ll_target);
- var target_center = vec2_add(ll_target, vec2_mulN(target_size, .5));
-
- var center = vec2_mulN(vec2_add(min, max), .5);
- var size = vec2_sub(max, min);
-
- var scale = vec2_mulN(target_size, .5);
- size = vec2_div(size, scale);
- center = vec2_sub(center, vec2_mulN(vec2_mul(target_center, size), .5));
-
- gi.ll = vec2_sub(center, vec2_mulN(size, .5));
- gi.ur = vec2_add(center, vec2_mulN(size, .5));
-
- return gi;
- },
-
- //
-
- convertClientToGraph: function(pt) {
- return this.graphInfo.fromNDC(this.convertClientToWorld(pt));
- },
-
- //
-
- on_size_change: function() {
- this.graphInfo = null;
- },
-
- on_draw_start: function() {
- if (!this.graphInfo)
- this.graphInfo = this.layoutGraph();
- },
-
- on_draw: function(canvas, ctx) {
- var gi = this.graphInfo;
- var w = this.size[0], h = this.size[1];
-
- this.xAxis.draw(this, ctx,
- this.convertClientToGraph([gi.yAxisW, 0]),
- this.convertClientToGraph([w, gi.xAxisH]),
- this.convertClientToGraph([w, h]))
- this.yAxis.draw(this, ctx,
- this.convertClientToGraph([0, gi.xAxisH]),
- this.convertClientToGraph([gi.yAxisW, h]),
- this.convertClientToGraph([w, h]))
-
- if (this.debugText != null) {
- ctx.save();
- ctx.setTransform(1, 0, 0, 1, 0, 0);
- ctx.fillText(this.debugText, this.size[0]/2 + 10, this.size[1]/2 + 10);
- ctx.restore();
- }
-
- // Draw the contents.
- ctx.save();
- ctx.beginPath();
- var content_ll = this.convertClientToWorld([gi.yAxisW, gi.xAxisH]);
- var content_ur = this.convertClientToWorld(this.size);
- ctx.rect(content_ll[0], content_ll[1],
- content_ur[0]-content_ll[0], content_ur[1]-content_ll[1]);
- ctx.clip();
-
- for (var i = 0, e = this.plots.length; i != e; ++i) {
- var data = this.plots[i][0];
- var style = this.plots[i][1];
- style.plot(this, ctx, data);
- }
- ctx.restore();
- },
-
- // Client API.
-
- clearPlots: function() {
- this.plots = [];
- this.graphChanged();
- },
-
- addPlot: function(data, style) {
- if (!style)
- style = new Graph2D_LinePlotStyle(1);
- this.plots.push( [data, style] );
- this.graphChanged();
- },
-});
Removed: zorg/trunk/lnt/viewer/js/View2DTest.html
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/js/View2DTest.html?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/js/View2DTest.html (original)
+++ zorg/trunk/lnt/viewer/js/View2DTest.html (removed)
@@ -1,57 +0,0 @@
-<html>
- <head>
- <title>View2D Test</title>
- <script src="../resources/mootools-1.2.4-core-nc.js"></script>
- <script src="View2D.js"></script>
- <script type="text/javascript">
-var viewA, viewB, graphA;
-
-function init() {
- viewA = new View2DTest("view2d");
- viewA.viewData.location = [-.2, -.15];
- viewA.viewData.scale = [2, 2];
- viewA.draw();
-
- viewB = new View2DTest("view2d_2");
- viewB.viewData.location = [-.2, -.15];
- viewB.viewData.scale = [.5, .5];
- viewB.draw();
-
- var pts_0 = [ [0, 0], [1, 1.3], [2, 2.2], [3, 1.3], [4, 4],
- [5,3], [6, 4], [7, 4.4]];
- pts_0 = pts_0.map(function(item, index, array) {
- return vec2_mulN(item, .1);
- });
- var pts_1 = pts_0.map(function(item, index, array) {
- return [item[0], .2 + item[1] * (1 - item[0] / 2)];
- });
- var pts_2 = pts_0.map(function(item, index, array) {
- return [item[0], 1 - item[1]];
- });
- graphA = new Graph2D("graph2d");
-if (1) {
- graphA.addPlot(pts_0, new Graph2D_LinePlotStyle(2));
- graphA.addPlot(pts_1);
- graphA.addPlot(pts_2, new Graph2D_LinePlotStyle(null, [1,0,0]));
-} else {
- graphA.addPlot([[1248617856.000000,1.398600],[1248960469.000000,1.241700],[1249396047.000000,1.214300],[1249488792.000000,1.211600],[1249564554.000000,1.239500],[1249732514.000000,1.239200],[1249819044.000000,1.236300],[1249910746.000000,1.234200],[1249996733.000000,1.236000],[1250083258.000000,1.252600],[1250255237.000000,1.260400],[1250341501.000000,1.253500],[1250427966.000000,1.262600],[1250514329.000000,1.261600],[1250600211.000000,1.249100],[1250686801.000000,1.250700],[1250773065.000000,1.255400],[1250859519.000000,1.246300],[1250946756.000000,1.245900],[1251032239.000000,1.238200],[1251118837.000000,1.238000],[1251205034.000000,1.241900],[1251292148.000000,1.236500],[1251379354.000000,1.230200],[1251466226.000000,1.228700],[1251552218.000000,1.233600],[1251638633.000000,1.222400],[1251725230.000000,1.222100],[1251811608.000000,1.239100],[1251898565.000000,1.230200],[1251984695.000000,1.241700],[1252070572.000000,1.205800],[1252157268.000000,1.211100],[1252243914.
000000,1.210300],[1252330714.000000,1.206000],[1252416809.000000,1.210800],[1252590190.000000,1.216800],[1252675459.000000,1.214400],[1252762486.000000,1.220700],[1252886652.000000,1.221700],[1252935938.000000,1.215200],[1253021864.000000,1.213800],[1253108596.000000,1.213800],[1253194864.000000,1.231900],[1253281344.000000,1.232000],[1253366664.000000,1.238400],[1253453169.000000,1.232500],[1253539839.000000,1.230100],[1253627357.000000,1.232600],[1253713381.000000,1.235700],[1253799754.000000,1.232400],[1253886021.000000,1.241900],[1253972269.000000,1.229700],[1254058753.000000,1.229100],[1254145361.000000,1.284000],[1254231276.000000,1.295200],[1254317581.000000,1.299800],[1254405166.000000,1.340600],[1254490117.000000,1.305300],[1254576631.000000,1.304100],[1254662979.000000,1.303700],[1254749498.000000,1.306800],[1254835808.000000,1.306200],[1254922190.000000,1.270100],[1255008713.000000,1.270900],[1255094924.000000,1.267300],[1255181629.000000,1.265100],[1255267916.000
000,1.283300],[1255354566.000000,1.285500],[1255440921.000000,1.287100],[1255526237.000000,1.269800],[1255613420.000000,1.318400],[1255700706.000000,1.301600],[1255786760.000000,1.305000],[1255873293.000000,1.305000],[1255959875.000000,1.438800],[1256046280.000000,1.437400],[1256132389.000000,1.439100],[1256218592.000000,1.461200],[1256304662.000000,1.464100],[1256391812.000000,1.462300],[1256478151.000000,1.469600],[1256564495.000000,1.472300],[1256823554.000000,1.474000],[1256909311.000000,1.477200],[1256996077.000000,1.459000],[1257082516.000000,1.426100],[1257258543.000000,1.433700],[1257344527.000000,1.452600],[1257431075.000000,1.440700],[1257516720.000000,1.443300],[1257602894.000000,1.503300],[1257863543.000000,1.550200],[1257948938.000000,1.532500],[1258035827.000000,1.534900],[1258122304.000000,1.535600],[1258207973.000000,1.546700],[1258294248.000000,1.534700],[1258382337.000000,1.544000],[1258551986.000000,1.509100],[1258640333.000000,1.554300],[1258728912.000000
,1.541100],[1258815149.000000,1.602700],[1258901720.000000,1.685900]]);
-graphA.xAxis.format = graphA.xAxis.formats.day;
-}
- graphA.draw();
-}
- </script>
- </head>
- <body onload="init()" bgcolor="#AAAAAA">
- <canvas id="graph2d" width="600" height="400"></canvas>
- <br>
- <table>
- <tr>
- <td><canvas id="view2d" width="300" height="200"></canvas></td>
- <td><canvas id="view2d_2" width="200" height="350"></canvas></td>
- </tr>
- </table>
- Shift-Left Mouse: Pan<br>
- Alt/Meta-Left Mouse: Zoom<br>
- Wheel: Zoom (<i>Shift Slows</i>)<br>
- </body>
-</html>
Removed: zorg/trunk/lnt/viewer/machines.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/machines.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/machines.ptl (original)
+++ zorg/trunk/lnt/viewer/machines.ptl (removed)
@@ -1,90 +0,0 @@
-# -*- python -*-
-
-import sys
-from quixote import get_response, redirect
-from quixote.directory import Directory
-from quixote.errors import TraversalError
-
-class MachineUI(Directory):
- _q_exports = [""]
-
- def __init__(self, root, idstr):
- self.root = root
- try:
- self.id = int(idstr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
-
- def _q_index [html] (self):
- # Get a DB conntection
- db = self.root.getDB()
-
- m = db.getMachine(self.id)
-
- self.root.getHeader("zorg:machine:%d" % self.id, '../..')
-
- """
- <h2>Machine: %s:%d</h2>
- """ % (m.name, m.number)
-
-
- # Machine Info
- """
- <table border=1 cellborder=1>
- <tr>
- <th>Key</th>
- <th>Value</th>
- </tr>
- </thead>
- """
- for mi in m.info.values():
- """
- <tr>
- <td>%s</td>
- <td>%s</td>
- </tr>""" % (mi.key, mi.value)
- """
- </table>
- """
-
- # List runs
- """
- <h3>Associated Runs</h3>
- <table class="sortable" border=1 cellborder=1>
- <thead>
- <tr>
- <th>Run ID</th>
- <th>Start Time</th>
- <th>End Time</th>
- </tr>
- </thead>
- """
- for r in db.runs(machine=m):
- """
- <tr>
- <td><a href="../../runs/%d/">%d</a></td>
- <td>%s</td>
- <td>%s</td>
- </tr>
- """ % (r.id, r.id, r.start_time, r.end_time)
- """
- </table>
- """
-
- self.root.getFooter()
-
-class MachinesDirectory(Directory):
- _q_exports = [""]
-
- def __init__(self, root):
- Directory.__init__(self)
- self.root = root
-
- def _q_index [plain] (self):
- """
- machine access
- """
-
- def _q_lookup(self, component):
- return MachineUI(self.root, component)
Removed: zorg/trunk/lnt/viewer/nightlytest.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/nightlytest.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/nightlytest.ptl (original)
+++ zorg/trunk/lnt/viewer/nightlytest.ptl (removed)
@@ -1,800 +0,0 @@
-# -*- python -*-
-
-import sys
-import time
-
-import quixote
-from quixote.directory import Directory
-from quixote.errors import TraversalError
-
-import Util, NTStyleBrowser
-from Util import safediv
-from NTUtil import *
-
-from PerfDB import Machine, Run
-
-class NightlyTestRunUI(NTStyleBrowser.TestRunUI):
- _q_exports = ["", "graphSingle"]
-
- def __init__(self, *args, **kwargs):
- NTStyleBrowser.TestRunUI.__init__(self, *args, **kwargs)
- self.popupDepth = 0
-
- def getTags(self):
- return (None, 'nightlytest')
-
- def getTitle(self):
- return 'LLVM Nightly Test Results'
-
- def getHeaderTitle(self):
- return 'LLVM Nightly Test Results'
-
- def getParameters(self):
- return ()
-
- def renderFullContents [html] (self, db, run, compareTo, summary):
- """<p>"""
- self.getAllResults(db, run, compareTo, summary)
-
- def renderBriefContents [html] (self, db, run, compareTo, summary):
- if compareTo:
- self.getComparisonPopups(db, run, compareTo, summary)
-
- def renderCommonContents [html] (self, db, run, compareTo, summary):
- # Test suite failure information.
-
- failures = self.getFailuresForRun(db, run, summary)
-
- if compareTo is not None:
- prevFailures = self.getFailuresForRun(db, compareTo, summary)
- newFailures = [(name, list(set(items) -
- set(prevFailures.get(name,[]))))
- for name,items in failures.items()]
- newFailures = dict([(name, items)
- for name,items in newFailures
- if items])
-
- if newFailures:
- newFailures = sorted(newFailures.items())
- self.renderTestSuiteFailures('newTSFailures',
- '<b>New Test Suite Failures</b>',
- newFailures)
-
- failures = sorted(failures.items())
- self.renderTestSuiteFailures('tsFailures',
- 'Test Suite Failures', failures)
-
- def renderTestSuiteFailures [html] (self, id, title, failures):
- numFailures = sum([len(items) for _,items in failures])
- title = '%d %s (All)' % (numFailures, title)
-
- self.renderPopupBegin(id, title, True)
- self.renderPopupBegin(id+'.all', 'All', True)
- for name,items in failures:
- """
- %s <font color="grey">[%s]</font><br>
- """ % (name, ', '.join(items))
- self.renderPopupEnd()
-
- # Also show failure by type.
- byType = Util.multidict([(item,name)
- for name,items in failures
- for item in items])
- byType = sorted(byType.items())
-
- for i,(item,names) in enumerate(byType):
- title = '%d %s' % (len(names), item)
- self.renderPopupBegin(id+'.%d' % i, title, True)
- for name in names:
- """
- %s<br>""" % name
- self.renderPopupEnd()
-
- self.renderPopupEnd()
-
- def renderPopupBegin [html] (self, id, title, hidden):
- self.popupDepth += 1
- """\
- <p>
- <a href="javascript://" onclick="toggleLayer('%s')"; id="%s_">(%s) %s</a>
- <div id="%s" style="display: %s;" class="hideable_%d">
- """ % (id, id, ("+","-")[hidden], title, id, ("","none")[hidden],
- self.popupDepth)
- def renderPopupEnd [html] (self):
- """
- </div>"""
- self.popupDepth -= 1
-
- def getFailuresForRun(self, db, run, summary):
- failures = Util.multidict()
- for keyname,title in kTSKeys.items():
- for testname in summary.testNames:
- fullname = 'nightlytest.' + testname + '.' + keyname + '.success'
- t = summary.testMap.get(str(fullname))
- if t is None:
- continue
- samples = summary.getRunSamples(run).get(t.id)
- if not samples or samples[0]:
- continue
- failures[testname] = title
- return failures
-
- def getAllResults [html] (self, db, run, compareTo, summary):
- columns = [('GCCAS', 'gcc.compile.time', None, ()),
- ('Bitcode','bc.compile.size', None, ()),
- ('LLC<br>compile','llc.compile.time', None, ('bc.compile.size',)),
- ('LLC-BETA<br>compile','llc-beta.compile.time', None, ('bc.compile.size',)),
- ('JIT<br>codegen','jit.compile.time', None, ('bc.compile.size',)),
- ('GCC','gcc.exec.time', None, ('gcc.compile.time',)),
- ('CBE','cbe.exec.time', None, ('bc.compile.size',)),
- ('LLC','llc.exec.time', None, ('llc.compile.time',)),
- ('LLC-BETA','llc-beta.exec.time', None, ('llc-beta.compile.time',)),
- ('JIT','jit.exec.time', None, ('jit.compile.time',)),
- ('GCC/CBE','gcc.exec.time','cbe.exec.time', ()),
- ('GCC/LLC','gcc.exec.time','llc.exec.time', ()),
- ('GCC/LLC-BETA','gcc.exec.time','llc-beta.exec.time',()),
- ('LLC/LLC-BETA','llc.exec.time','llc-beta.exec.time',())]
-
- # Add interface to hiding columns by test or column type.
- keyIndices = Util.multidict()
- ratioIndices = []
- pctIndices = []
-
- idx = 1
- for info in columns:
- isCmp = info[2] is not None
- key = str(info[1]).split(str('.'))[0]
- if not isCmp:
- keyIndices[key] = idx
- keyIndices[key] = idx + 1
- pctIndices.append(idx + 1)
- idx += 2
- else:
- keyIndices[key] = idx
- ratioIndices.append(idx)
- idx += 1
- """
- <form>
- <table border="1">
- <thead>
- <tr>
- <th>Column Visibility</th>
- <th>GCC</th>
- <th>LLC</th>
- <th>CBE</th>
- <th>JIT</th>
- <th>LLC-BETA</th>
- <th>Percentages</th>
- <th>Ratios</th>
- </tr>
- </thead>
- <tr>
- <td>Enabled</td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- </tr>
- </table>
- </form>
- """ % (', '.join(map(str, keyIndices['gcc'])),
- ', '.join(map(str, keyIndices['llc'])),
- ', '.join(map(str, keyIndices['cbe'])),
- ', '.join(map(str, keyIndices['jit'])),
- ', '.join(map(str, keyIndices['llc-beta'])),
- ', '.join(map(str, pctIndices)),
- ', '.join(map(str, ratioIndices)))
-
- # The main table.
- """
- <table class="sortable" border="1" cellspacing="0" cellpadding="0" id="programs">
- <thead>
- <tr>
- <th>Program</th>
- """
- for name,key,cmp,dependsOn in columns:
- if cmp is None:
- """
- <th>%s</th>
- <th>%%<br>change<br>in<br>%s</th>
- """ % (name, name)
- else:
- """<th>%s</th>""" % name
- """
- </tr>
- </thead>
- """
-
- runSamples = summary.getRunSamples(run)
- prevSamples = summary.getRunSamples(compareTo)
- testNames = list(summary.testNames)
- testNames.sort(key = lambda x: x.lower())
- for testName in testNames:
- # FIXME: We need some id for the "program". The dotted name system
- # solves this...
- fullname = str('nightlytest.' + testName + '.' +
- 'gcc.compile.success')
- t = summary.testMap.get(fullname)
- assert t
- """
- <tr>
- <td><a href="../programs/%s/">%s</a></td>
- """ % (t.id, testName,)
-
- for name,key,cmp,dependsOn in columns:
- if cmp is None:
- fullname = str('nightlytest.' + testName + '.' + key)
- t = summary.testMap.get(fullname)
- if t is None:
- current = prev = None
- else:
- current = runSamples.get(t.id)
- prev = prevSamples.get(t.id)
- if current:
- value = current[0]
- if key.endswith('size'):
- """<td>%d</td>""" % int(value)
- else:
- """<td>%.4f</td>""" % value
- if prev:
- pct = safediv(value, prev[0],
- '<center><font size=-2>nan</font></center>')
- else:
- pct = 'N/A'
- else:
- # Only mark failure if nothing we depend on failed.
- failed = True
- for d in dependsOn:
- t = summary.testMap.get(str('nightlytest.' + testName + '.' + d))
- if not t or not runSamples.get(t.id):
- failed = False
- break
- if failed:
- """<td bgcolor="#FF0000">*</td>"""
- else:
- """<td>N/A</td>"""
- pct = 'N/A'
- Util.PctCell(pct, delta=True).render()
- else:
- tNum = summary.testMap.get(str('nightlytest.' + testName + '.' + key))
- tDen = summary.testMap.get(str('nightlytest.' + testName + '.' + cmp))
- if tNum is None or tDen is None:
- num = den = None
- else:
- num = runSamples.get(tNum.id)
- den = runSamples.get(tDen.id)
- if num and den:
- pct = safediv(num[0], den[0])
- if pct is None:
- """<td>N/A</td>"""
- else:
- """<td>%.2f</td>""" % (pct,)
- else:
- """<td>N/A</td>"""
- """
- </tr>
- """
- """
- </table>
- """
-
- def getComparisonPopups [html] (self, db, run, compareTo, summary):
- runSamples = summary.getRunSamples(run)
- prevSamples = summary.getRunSamples(compareTo)
-
- for i,(name,key) in enumerate(kComparisonKinds):
- if not key:
- # FIXME: File Size
- deltas = []
- else:
- deltas = []
- for testName in summary.testNames:
- fullname = str('nightlytest.' + testName + '.' + key)
- t = summary.testMap.get(fullname)
- if not t:
- continue
- current = runSamples.get(t.id)
- prev = prevSamples.get(t.id)
- if not current or not prev:
- continue
- current = current[0]
- prev = prev[0]
- pct = safediv(current, prev)
- if pct is None:
- continue
- pctDelta = pct - 1.
- if abs(pctDelta) < .05:
- continue
- if min(prev,current) <= .2:
- continue
- deltas.append( (t.id, testName, current, prev, pctDelta) )
-
- hidden = len(deltas) == 0
- """
- <p>
- <a href="javascript://" onclick="toggleLayer('%s')"; id="%s_">(%s) %d %s Significant Changes</a>
- <div id="%s" style="display: %s;" class="hideable">
- """ % (name, name, ("+","-")[hidden], len(deltas), name, name, ("","none")[hidden])
- if deltas:
- # Redirect or something so we don't have to specify
- # run here; that is silly.
- """
- <form method="GET" action="graphSingle">
- <input type="hidden" name="run" value="%d">
- <input type="hidden" name="kind" value="%d">
- <form method="GET" action="graphSingle">
- <table class="sortable" border=1>
- <thead>
- <tr>
- <th class="sorttable_nosort"><input type="checkbox" id="checkAll.%d"></th>
- <th>Program</th>
- <th>%% Change</th>
- <th>Previous Value</th>
- <th>Current Value</th>
- </tr>
- </thead>
- """ % (run.id, i, i,)
- for id, name, current, prev, pctDelta in deltas:
- """
- <tr>
- <td><input type="checkbox" name="cb.%d" id="cb_group.%d"></td>
- <td><a href="../programs/%s/">%s</a></td>
- %s
- <td>%s</td>
- <td>%s</td>
- </tr>
- """ % (id, i, id, name,
- Util.PctCell(pctDelta).render(), prev, current)
- """
- </table>
- <input type="submit" value="Compare Values">
- </form>
- """
-
- """
- </div>
- """
-
- def graphSingle [html] (self):
- request = quixote.get_request()
- full = request.form.get('full', '')
- allResults = not not full
-
- # Get a DB connection
- db = self.root.getDB()
-
- run = self.getActiveRun(db)
- runs = db.runs(run.machine).order_by(Run.start_time.desc()).all()
- machine = run.machine
-
- request = quixote.get_request()
- kindStr = request.form.get('kind')
- kind = None
- try:
- kind = kComparisonKinds[int(kindStr)]
- except:
- pass
- tests = []
- for name,value in request.form.items():
- if name.startswith(str('cb.')):
- testIDStr = name[3:]
- try:
- testID = int(str(testIDStr))
- tests.append(db.getTest(testID))
- except:
- pass
-
- # Collect samples by test and machine, then bin into runs.
- samplesByTest = {}
- for t in tests:
- samples = samplesByTest[t.id] = samplesByTest.get(t.id,{})
-
- q = db.session.query(Sample.run_id,
- Sample.value).join(Run)
- q = q.filter(Run.machine_id == machine.id)
- q = q.filter(Sample.test_id == t.id)
- for s_run_id,s_value in q:
- samples[s_run_id] = s_value
-
- legend = []
- plots = ""
- for i,test in enumerate(tests):
- data = []
- for run in runs:
- value = samplesByTest.get(test.id,{}).get(run.id)
- if value is not None:
- timeval = time.mktime(run.start_time.timetuple())
- data.append((timeval, value))
- data.sort()
-
- col = list(Util.makeDarkColor(float(i) / len(tests)))
- pts = ','.join(['[%f,%f]' % (t,v) for t,v in data])
- style = "new Graph2D_LinePlotStyle(1, %r)" % col
- plots += " graph.addPlot([%s], %s);\n" % (pts,style)
-
- legend.append((test.name.split(str('.'),1)[1], col))
- graph_init = """\
- function init() {
- graph = new Graph2D("graph");
- graph.clearColor = [1, 1, 1];
- %s
- graph.xAxis.format = graph.xAxis.formats.day;
- graph.draw();
- }
- """ % (plots,)
-
- self.root.getHeader("Nightly Test Results", "../..",
- addPopupJS=True, addGraphJS=True,
- addJSScript=graph_init,
- onload='init()')
-
- """
- <center>
- <h2>LLVM Nightly Test Results</h2>
- </center>
- """
-
- # Graph2D based graph.
- """
- <h3>Graph</h3>
- <table>
- <tr>
- <td rowspan=2 valign="top">
- <canvas id="graph" width="600" height="400"></canvas>
- </td>
- <td valign="top">
- <table cellspacing=4 border=1>
- <tr><th colspan=2>Test</th></tr>
- """
- for name,col in legend:
- """<tr><td bgcolor="%02x%02x%02x"> </td><td>%s</td></tr>""" % (
- 255*col[0], 255*col[1], 255*col[2], name)
- """
- </table>
- </td></tr>
- <tr><td align="right" valign="bottom">
- <font size="-2">
- Shift-Left Mouse: Pan<br>
- Alt/Meta-Left Mouse: Zoom<br>
- Wheel: Zoom (<i>Shift Slows</i>)<br>
- </font>
- </td></tr>
- </table>
- """
-
- """<h3>Values</h3>
- <a href="javascript://" onclick="toggleLayer('graph_values');"
- id="graph_values_">(-) Graph Values</a>
- <div id="graph_values" style="display: none;" class="hideable">
- <table class="sortable" border=1>
- <thead>
- <tr>
- <th>Run</th>
- <th>Timestamp</th>
- """
- for t in tests:
- """
- <th>%s</th>
- """ % (t.name,)
- """
- </thead>
- """
-
- for run in runs:
- """
- <tr>
- <td>%d</td>
- <td>%s</td>""" % (run.id, run.start_time)
- for t in tests:
- value = samplesByTest.get(t.id,{}).get(run.id, 'N/A')
- """
- <td>%s</td>""" % value
- """
- </tr>"""
- """
- </table>
- </div>
- """
-
- self.root.getFooter()
-
-class NightlyTestMachineUI(Directory):
- _q_exports = [""]
-
- def __init__(self, root, idstr):
- self.root = root
- try:
- self.id = int(idstr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
- def _q_index [html] (self):
- self.root.getHeader("Nightly Test Results", "../../..",
- addPopupJS=True)
-
- # Get a DB connection
- db = self.root.getDB()
-
- machine = db.getMachine(self.id)
-
- # Find all runs on this machine.
- runs = db.runs(machine).order_by(Run.start_time.desc()).all()
-
- """
- <center>
- <h1>LLVM Nightly Test Results</h1>
- <table>
- <tr>
- <td align=right>Machine:</td>
- <td>%s:%d</td>
- </tr>
- </table>
- </center>
- <p>
- """ % (machine.name, machine.number)
-
- # FIXME: List previous machines with the same nickname?
- """
- <table width="100%%" border=1>
- <tr>
- <td valign="top" width="200">
- <a href="../..">Homepage</a>
- <h4>Relatives:</h4>
- <ul>
- """
- # List all machines with this name.
- for m in db.machines(name=machine.name):
- """<li><a href="../%d">%s:%d</a></li>""" % (m.id, m.name, m.number)
- """
- </ul>
- <h4>Runs:</h4>
- <ul>
- """
-
- # Show the most recent 10 runs.
- for r in runs[:10]:
- """ <li> <a href="../../%d/">%s</a> """ % (r.id, r.start_time)
-
- # Full list of runs in a drop down.
- #
- # FIXME: Link to run correctly.
- """
- <p>
- <form method="GET" action="../../1/">
- <select name="run">
- """
- for r in runs:
- """\
- <option value="%d">%s""" % (r.id, r.start_time)
-
- """
- </select>
- <input type="submit" value="Go to Run">
- </form>
- """
-
- """
- </ul>
- </td>
- <td valign="top">
- <table border=1>
- <tr>
- <td> <b>Nickname</b> </td>
- <td> %s </td>
- </tr>
- """ % (machine.name,)
- for mi in machine.info.values():
- """
- <tr>
- <td> <b>%s</b> </td>
- <td>%s</td>
- </tr>
- """ % (mi.key, mi.value)
- """
- <tr>
- <td> <b>Machine ID</b> </td>
- <td> %d </td>
- </tr>
- </table>
- <p>
- """ % (machine.id,)
-
- # List associated runs.
- """
- <table class="sortable" border=1>
- <thead>
- <tr>
- <th>Start Time</th>
- <th>End Time</th>
- <th> </th>
- </thead>
- """
- for r in runs:
- """
- <tr>
- <td>%s</td>
- <td>%s</td>
- <td><a href="../../%d">View Results</a></td>
- </tr>""" % (r.start_time, r.end_time, r.id)
- """
- </table>
- """
-
- """
- </td>
- </tr>
- </table>
- """
-
- self.root.getFooter()
-
-class NightlyTestProgramUI(Directory):
- _q_exports = [""]
-
- def __init__(self, root, testIDStr):
- self.root = root
- try:
- self.testID = int(testIDStr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
- def _q_index [html] (self):
- self.root.getHeader("Nightly Test Results", "../../..",
- addPopupJS=True)
-
- # Get a DB connection.
- db = self.root.getDB()
-
- # Get the test we use to derive the name.
- t = db.getTest(id = self.testID)
- programName = t.name.split(str('.'), 3)[1]
-
- # Collect runs within the last 48 hours of the most recent report.
- import datetime
- runs = []
- most_recent, = db.session.query(Run.start_time).\
- order_by(Run.start_time.desc()).first()
- cutoff = most_recent - datetime.timedelta(days=2)
- runs = db.session.query(Run).\
- filter(Run.start_time >= cutoff).\
- order_by(Run.start_time.desc()).all()
-
- """
- <center>
- <h1>LLVM Nightly Test Results</h1>
- <table>
- <tr>
- <td align=right>Program:</td>
- <td>%s</td>
- </tr>
- </table>
- </center>
- <p>
- """ % (programName,)
-
- self.getAllResults(db, programName, runs)
-
- self.root.getFooter()
-
- def getAllResults [html] (self, db, testName, runs):
- columns = [('GCCAS', 'gcc.compile.time', ()),
- ('Bitcode','bc.compile.size', ()),
- ('LLC<br>compile','llc.compile.time', ('bc.compile.size',)),
- ('LLC-BETA<br>compile','llc-beta.compile.time', ('bc.compile.size',)),
- ('JIT<br>codegen','jit.compile.time', ('bc.compile.size',)),
- ('GCC','gcc.exec.time', ('gcc.compile.time',)),
- ('CBE','cbe.exec.time', ('bc.compile.size',)),
- ('LLC','llc.exec.time', ('llc.compile.time',)),
- ('LLC-BETA','llc-beta.exec.time', ('llc-beta.compile.time',)),
- ('JIT','jit.exec.time', ('jit.compile.time',))]
-
- # Add interface to hiding columns by test or column type.
- keyIndices = Util.multidict()
- for idx,info in enumerate(columns):
- key = str(info[1]).split(str('.'))[0]
- keyIndices[key] = idx + 2
- """
- <form>
- <table border="1">
- <thead>
- <tr>
- <th>Column Visibility</th>
- <th>GCC</th>
- <th>LLC</th>
- <th>CBE</th>
- <th>JIT</th>
- <th>LLC-BETA</th>
- </tr>
- </thead>
- <tr>
- <td>Enabled</td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- <td><input type='checkbox' onClick='javascript:show_hide_column("programs", [%s]);' checked></td>
- </tr>
- </table>
- </form>
- """ % (', '.join(map(str, keyIndices['gcc'])),
- ', '.join(map(str, keyIndices['llc'])),
- ', '.join(map(str, keyIndices['cbe'])),
- ', '.join(map(str, keyIndices['jit'])),
- ', '.join(map(str, keyIndices['llc-beta'])))
-
- # The main table.
- """
- <table class="sortable" border="1" cellspacing="0" cellpadding="0" id="programs">
- <thead>
- <tr>
- <th>Machine</th>
- <th>Run Start</th>
- """
- for name,key,dependsOn in columns:
- """<th>%s</th>""" % (name, )
- """
- </tr>
- </thead>
- """
-
- for run in runs:
- """
- <tr>
- <td><a href="../../machines/%d">%s:%d</a></td>
- <td><a href="../../%d">%s</a></td>
- """ % (run.machine.id, run.machine.name, run.machine.number,
- run.id, run.start_time)
-
- for name,key,dependsOn in columns:
- fullname = str('nightlytest.' + testName + '.' + key)
- # FIXME: Make fast.
- current = getTestNameValueInRun(db, run, fullname)
- if current is not None:
- if key.endswith('size'):
- """<td>%d</td>""" % int(current)
- else:
- """<td>%.4f</td>""" % current
- else:
- # Only mark failure if nothing we depend on failed.
- failed = True
- for d in dependsOn:
- # FIXME: Make fast.
- t = getTestNameValueInRun(db, run,
- str('nightlytest.' + testName + '.' + d))
- if t is None:
- failed = False
- break
- if failed:
- """<td bgcolor="#FF0000">*</td>"""
- else:
- """<td>N/A</td>"""
- """
- </tr>
- """
- """
- </table>
- """
-
-class NightlyTestDirectory(NTStyleBrowser.RecentMachineDirectory):
- _q_exports = [""]
-
- def getTags(self):
- return (None, 'nightlytest')
-
- def getTitle(self):
- return 'Nightly Test'
-
- def getHeaderTitle(self):
- return 'LLVM Nightly Test'
-
- def getTestRunUI(self, component):
- return NightlyTestRunUI(self.root, component)
-
- def getTestMachineUI(self, component):
- return NightlyTestMachineUI(self.root, component)
-
- def getProgramUI(self, component):
- return NightlyTestProgramUI(self.root, component)
Removed: zorg/trunk/lnt/viewer/publisher.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/publisher.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/publisher.py (original)
+++ zorg/trunk/lnt/viewer/publisher.py (removed)
@@ -1,48 +0,0 @@
-import time
-from quixote.publish import Publisher
-
-# FIXME: This is a bit of a hack.
-class ExtPublisher(Publisher):
- def __init__(self, *args, **kwargs):
- Publisher.__init__(self, *args, **kwargs)
- self.create_time = time.time()
-
- def process_request(self, request):
- request.start_time = time.time()
- return Publisher.process_request(self, request)
-
-class ThreadedPublisher(ExtPublisher):
- is_thread_safe = True
-
- def __init__ (self, root_namespace, *args, **kwargs):
- ExtPublisher.__init__(self, root_namespace, *args, **kwargs)
- self._request_dict = {}
-
- def _set_request(self, request):
- import thread
- self._request_dict[thread.get_ident()] = request
-
- def _clear_request(self):
- import thread
- try:
- del self._request_dict[thread.get_ident()]
- except KeyError:
- pass
-
- def get_request(self):
- import thread
- return self._request_dict.get(thread.get_ident())
-
-def create_publisher(configPath, configData, threaded=False):
- import Config
- config = Config.Config.fromData(configPath, configData)
-
- from quixote import enable_ptl
- enable_ptl()
-
- from root import RootDirectory
- if threaded:
- publisher_class = ThreadedPublisher
- else:
- publisher_class = ExtPublisher
- return publisher_class(RootDirectory(config), display_exceptions='plain')
Removed: zorg/trunk/lnt/viewer/resources/form.css
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/resources/form.css?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/resources/form.css (original)
+++ zorg/trunk/lnt/viewer/resources/form.css (removed)
@@ -1,75 +0,0 @@
-/* Derived from Quixote's BASIC_FORM_CSS */
-
-form.quixote div.title {
- font-weight: bold;
-}
-
-form.quixote br.submit,
-form.quixote br.widget,
-br.quixoteform {
- clear: left;
-}
-
-form.quixote div.submit br.widget {
- display: none;
-}
-
-form.quixote div.widget {
- float: left;
- padding: 4px;
- padding-right: 1em;
- margin-bottom: 6px;
-}
-
-/* pretty forms (attribute selector hides from broken browsers (e.g. IE) */
-form.quixote[action] {
- float: left;
-}
-
-form.quixote[action] > div.widget {
- float: none;
-}
-
-form.quixote[action] > br.widget {
- display: none;
-}
-
-form.quixote div.widget div.widget {
- padding: 0;
- margin-bottom: 0;
-}
-
-form.quixote div.SubmitWidget {
- float: left
-}
-
-form.quixote div.content {
- margin-left: 0.6em; /* indent content */
-}
-
-form.quixote div.content div.content {
- margin-left: 0; /* indent content only for top-level widgets */
-}
-
-form.quixote div.error {
- color: #c00;
- font-size: small;
- margin-top: .1em;
-}
-
-form.quixote div.hint {
- font-size: small;
- font-style: italic;
- margin-top: .1em;
-}
-
-form.quixote div.errornotice {
- color: #c00;
- padding: 0.5em;
- margin: 0.5em;
-}
-
-form.quixote div.FormTokenWidget,
-form.quixote.div.HiddenWidget {
- display: none;
-}
Removed: zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js (original)
+++ zorg/trunk/lnt/viewer/resources/mootools-1.2.4-core-nc.js (removed)
@@ -1,4329 +0,0 @@
-/*
----
-
-script: Core.js
-
-description: The core of MooTools, contains all the base functions and the Native and Hash implementations. Required by all the other scripts.
-
-license: MIT-style license.
-
-copyright: Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/).
-
-authors: The MooTools production team (http://mootools.net/developers/)
-
-inspiration:
-- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)
-- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)
-
-provides: [Mootools, Native, Hash.base, Array.each, $util]
-
-...
-*/
-
-var MooTools = {
- 'version': '1.2.4',
- 'build': '0d9113241a90b9cd5643b926795852a2026710d4'
-};
-
-var Native = function(options){
- options = options || {};
- var name = options.name;
- var legacy = options.legacy;
- var protect = options.protect;
- var methods = options.implement;
- var generics = options.generics;
- var initialize = options.initialize;
- var afterImplement = options.afterImplement || function(){};
- var object = initialize || legacy;
- generics = generics !== false;
-
- object.constructor = Native;
- object.$family = {name: 'native'};
- if (legacy && initialize) object.prototype = legacy.prototype;
- object.prototype.constructor = object;
-
- if (name){
- var family = name.toLowerCase();
- object.prototype.$family = {name: family};
- Native.typize(object, family);
- }
-
- var add = function(obj, name, method, force){
- if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;
- if (generics) Native.genericize(obj, name, protect);
- afterImplement.call(obj, name, method);
- return obj;
- };
-
- object.alias = function(a1, a2, a3){
- if (typeof a1 == 'string'){
- var pa1 = this.prototype[a1];
- if ((a1 = pa1)) return add(this, a2, a1, a3);
- }
- for (var a in a1) this.alias(a, a1[a], a2);
- return this;
- };
-
- object.implement = function(a1, a2, a3){
- if (typeof a1 == 'string') return add(this, a1, a2, a3);
- for (var p in a1) add(this, p, a1[p], a2);
- return this;
- };
-
- if (methods) object.implement(methods);
-
- return object;
-};
-
-Native.genericize = function(object, property, check){
- if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){
- var args = Array.prototype.slice.call(arguments);
- return object.prototype[property].apply(args.shift(), args);
- };
-};
-
-Native.implement = function(objects, properties){
- for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);
-};
-
-Native.typize = function(object, family){
- if (!object.type) object.type = function(item){
- return ($type(item) === family);
- };
-};
-
-(function(){
- var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String};
- for (var n in natives) new Native({name: n, initialize: natives[n], protect: true});
-
- var types = {'boolean': Boolean, 'native': Native, 'object': Object};
- for (var t in types) Native.typize(types[t], t);
-
- var generics = {
- 'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"],
- 'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"]
- };
- for (var g in generics){
- for (var i = generics[g].length; i--;) Native.genericize(natives[g], generics[g][i], true);
- }
-})();
-
-var Hash = new Native({
-
- name: 'Hash',
-
- initialize: function(object){
- if ($type(object) == 'hash') object = $unlink(object.getClean());
- for (var key in object) this[key] = object[key];
- return this;
- }
-
-});
-
-Hash.implement({
-
- forEach: function(fn, bind){
- for (var key in this){
- if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);
- }
- },
-
- getClean: function(){
- var clean = {};
- for (var key in this){
- if (this.hasOwnProperty(key)) clean[key] = this[key];
- }
- return clean;
- },
-
- getLength: function(){
- var length = 0;
- for (var key in this){
- if (this.hasOwnProperty(key)) length++;
- }
- return length;
- }
-
-});
-
-Hash.alias('forEach', 'each');
-
-Array.implement({
-
- forEach: function(fn, bind){
- for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);
- }
-
-});
-
-Array.alias('forEach', 'each');
-
-function $A(iterable){
- if (iterable.item){
- var l = iterable.length, array = new Array(l);
- while (l--) array[l] = iterable[l];
- return array;
- }
- return Array.prototype.slice.call(iterable);
-};
-
-function $arguments(i){
- return function(){
- return arguments[i];
- };
-};
-
-function $chk(obj){
- return !!(obj || obj === 0);
-};
-
-function $clear(timer){
- clearTimeout(timer);
- clearInterval(timer);
- return null;
-};
-
-function $defined(obj){
- return (obj != undefined);
-};
-
-function $each(iterable, fn, bind){
- var type = $type(iterable);
- ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);
-};
-
-function $empty(){};
-
-function $extend(original, extended){
- for (var key in (extended || {})) original[key] = extended[key];
- return original;
-};
-
-function $H(object){
- return new Hash(object);
-};
-
-function $lambda(value){
- return ($type(value) == 'function') ? value : function(){
- return value;
- };
-};
-
-function $merge(){
- var args = Array.slice(arguments);
- args.unshift({});
- return $mixin.apply(null, args);
-};
-
-function $mixin(mix){
- for (var i = 1, l = arguments.length; i < l; i++){
- var object = arguments[i];
- if ($type(object) != 'object') continue;
- for (var key in object){
- var op = object[key], mp = mix[key];
- mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op);
- }
- }
- return mix;
-};
-
-function $pick(){
- for (var i = 0, l = arguments.length; i < l; i++){
- if (arguments[i] != undefined) return arguments[i];
- }
- return null;
-};
-
-function $random(min, max){
- return Math.floor(Math.random() * (max - min + 1) + min);
-};
-
-function $splat(obj){
- var type = $type(obj);
- return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];
-};
-
-var $time = Date.now || function(){
- return +new Date;
-};
-
-function $try(){
- for (var i = 0, l = arguments.length; i < l; i++){
- try {
- return arguments[i]();
- } catch(e){}
- }
- return null;
-};
-
-function $type(obj){
- if (obj == undefined) return false;
- if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;
- if (obj.nodeName){
- switch (obj.nodeType){
- case 1: return 'element';
- case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
- }
- } else if (typeof obj.length == 'number'){
- if (obj.callee) return 'arguments';
- else if (obj.item) return 'collection';
- }
- return typeof obj;
-};
-
-function $unlink(object){
- var unlinked;
- switch ($type(object)){
- case 'object':
- unlinked = {};
- for (var p in object) unlinked[p] = $unlink(object[p]);
- break;
- case 'hash':
- unlinked = new Hash(object);
- break;
- case 'array':
- unlinked = [];
- for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);
- break;
- default: return object;
- }
- return unlinked;
-};
-
-
-/*
----
-
-script: Browser.js
-
-description: The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.
-
-license: MIT-style license.
-
-requires:
-- /Native
-- /$util
-
-provides: [Browser, Window, Document, $exec]
-
-...
-*/
-
-var Browser = $merge({
-
- Engine: {name: 'unknown', version: 0},
-
- Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},
-
- Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)},
-
- Plugins: {},
-
- Engines: {
-
- presto: function(){
- return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925));
- },
-
- trident: function(){
- return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? ((document.querySelectorAll) ? 6 : 5) : 4);
- },
-
- webkit: function(){
- return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419);
- },
-
- gecko: function(){
- return (!document.getBoxObjectFor && window.mozInnerScreenX == null) ? false : ((document.getElementsByClassName) ? 19 : 18);
- }
-
- }
-
-}, Browser || {});
-
-Browser.Platform[Browser.Platform.name] = true;
-
-Browser.detect = function(){
-
- for (var engine in this.Engines){
- var version = this.Engines[engine]();
- if (version){
- this.Engine = {name: engine, version: version};
- this.Engine[engine] = this.Engine[engine + version] = true;
- break;
- }
- }
-
- return {name: engine, version: version};
-
-};
-
-Browser.detect();
-
-Browser.Request = function(){
- return $try(function(){
- return new XMLHttpRequest();
- }, function(){
- return new ActiveXObject('MSXML2.XMLHTTP');
- }, function(){
- return new ActiveXObject('Microsoft.XMLHTTP');
- });
-};
-
-Browser.Features.xhr = !!(Browser.Request());
-
-Browser.Plugins.Flash = (function(){
- var version = ($try(function(){
- return navigator.plugins['Shockwave Flash'].description;
- }, function(){
- return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');
- }) || '0 r0').match(/\d+/g);
- return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0};
-})();
-
-function $exec(text){
- if (!text) return text;
- if (window.execScript){
- window.execScript(text);
- } else {
- var script = document.createElement('script');
- script.setAttribute('type', 'text/javascript');
- script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text;
- document.head.appendChild(script);
- document.head.removeChild(script);
- }
- return text;
-};
-
-Native.UID = 1;
-
-var $uid = (Browser.Engine.trident) ? function(item){
- return (item.uid || (item.uid = [Native.UID++]))[0];
-} : function(item){
- return item.uid || (item.uid = Native.UID++);
-};
-
-var Window = new Native({
-
- name: 'Window',
-
- legacy: (Browser.Engine.trident) ? null: window.Window,
-
- initialize: function(win){
- $uid(win);
- if (!win.Element){
- win.Element = $empty;
- if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2
- win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};
- }
- win.document.window = win;
- return $extend(win, Window.Prototype);
- },
-
- afterImplement: function(property, value){
- window[property] = Window.Prototype[property] = value;
- }
-
-});
-
-Window.Prototype = {$family: {name: 'window'}};
-
-new Window(window);
-
-var Document = new Native({
-
- name: 'Document',
-
- legacy: (Browser.Engine.trident) ? null: window.Document,
-
- initialize: function(doc){
- $uid(doc);
- doc.head = doc.getElementsByTagName('head')[0];
- doc.html = doc.getElementsByTagName('html')[0];
- if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){
- doc.execCommand("BackgroundImageCache", false, true);
- });
- if (Browser.Engine.trident) doc.window.attachEvent('onunload', function(){
- doc.window.detachEvent('onunload', arguments.callee);
- doc.head = doc.html = doc.window = null;
- });
- return $extend(doc, Document.Prototype);
- },
-
- afterImplement: function(property, value){
- document[property] = Document.Prototype[property] = value;
- }
-
-});
-
-Document.Prototype = {$family: {name: 'document'}};
-
-new Document(document);
-
-
-/*
----
-
-script: Array.js
-
-description: Contains Array Prototypes like each, contains, and erase.
-
-license: MIT-style license.
-
-requires:
-- /$util
-- /Array.each
-
-provides: [Array]
-
-...
-*/
-
-Array.implement({
-
- every: function(fn, bind){
- for (var i = 0, l = this.length; i < l; i++){
- if (!fn.call(bind, this[i], i, this)) return false;
- }
- return true;
- },
-
- filter: function(fn, bind){
- var results = [];
- for (var i = 0, l = this.length; i < l; i++){
- if (fn.call(bind, this[i], i, this)) results.push(this[i]);
- }
- return results;
- },
-
- clean: function(){
- return this.filter($defined);
- },
-
- indexOf: function(item, from){
- var len = this.length;
- for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){
- if (this[i] === item) return i;
- }
- return -1;
- },
-
- map: function(fn, bind){
- var results = [];
- for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);
- return results;
- },
-
- some: function(fn, bind){
- for (var i = 0, l = this.length; i < l; i++){
- if (fn.call(bind, this[i], i, this)) return true;
- }
- return false;
- },
-
- associate: function(keys){
- var obj = {}, length = Math.min(this.length, keys.length);
- for (var i = 0; i < length; i++) obj[keys[i]] = this[i];
- return obj;
- },
-
- link: function(object){
- var result = {};
- for (var i = 0, l = this.length; i < l; i++){
- for (var key in object){
- if (object[key](this[i])){
- result[key] = this[i];
- delete object[key];
- break;
- }
- }
- }
- return result;
- },
-
- contains: function(item, from){
- return this.indexOf(item, from) != -1;
- },
-
- extend: function(array){
- for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);
- return this;
- },
-
- getLast: function(){
- return (this.length) ? this[this.length - 1] : null;
- },
-
- getRandom: function(){
- return (this.length) ? this[$random(0, this.length - 1)] : null;
- },
-
- include: function(item){
- if (!this.contains(item)) this.push(item);
- return this;
- },
-
- combine: function(array){
- for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);
- return this;
- },
-
- erase: function(item){
- for (var i = this.length; i--; i){
- if (this[i] === item) this.splice(i, 1);
- }
- return this;
- },
-
- empty: function(){
- this.length = 0;
- return this;
- },
-
- flatten: function(){
- var array = [];
- for (var i = 0, l = this.length; i < l; i++){
- var type = $type(this[i]);
- if (!type) continue;
- array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);
- }
- return array;
- },
-
- hexToRgb: function(array){
- if (this.length != 3) return null;
- var rgb = this.map(function(value){
- if (value.length == 1) value += value;
- return value.toInt(16);
- });
- return (array) ? rgb : 'rgb(' + rgb + ')';
- },
-
- rgbToHex: function(array){
- if (this.length < 3) return null;
- if (this.length == 4 && this[3] == 0 && !array) return 'transparent';
- var hex = [];
- for (var i = 0; i < 3; i++){
- var bit = (this[i] - 0).toString(16);
- hex.push((bit.length == 1) ? '0' + bit : bit);
- }
- return (array) ? hex : '#' + hex.join('');
- }
-
-});
-
-
-/*
----
-
-script: Function.js
-
-description: Contains Function Prototypes like create, bind, pass, and delay.
-
-license: MIT-style license.
-
-requires:
-- /Native
-- /$util
-
-provides: [Function]
-
-...
-*/
-
-Function.implement({
-
- extend: function(properties){
- for (var property in properties) this[property] = properties[property];
- return this;
- },
-
- create: function(options){
- var self = this;
- options = options || {};
- return function(event){
- var args = options.arguments;
- args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);
- if (options.event) args = [event || window.event].extend(args);
- var returns = function(){
- return self.apply(options.bind || null, args);
- };
- if (options.delay) return setTimeout(returns, options.delay);
- if (options.periodical) return setInterval(returns, options.periodical);
- if (options.attempt) return $try(returns);
- return returns();
- };
- },
-
- run: function(args, bind){
- return this.apply(bind, $splat(args));
- },
-
- pass: function(args, bind){
- return this.create({bind: bind, arguments: args});
- },
-
- bind: function(bind, args){
- return this.create({bind: bind, arguments: args});
- },
-
- bindWithEvent: function(bind, args){
- return this.create({bind: bind, arguments: args, event: true});
- },
-
- attempt: function(args, bind){
- return this.create({bind: bind, arguments: args, attempt: true})();
- },
-
- delay: function(delay, bind, args){
- return this.create({bind: bind, arguments: args, delay: delay})();
- },
-
- periodical: function(periodical, bind, args){
- return this.create({bind: bind, arguments: args, periodical: periodical})();
- }
-
-});
-
-
-/*
----
-
-script: Number.js
-
-description: Contains Number Prototypes like limit, round, times, and ceil.
-
-license: MIT-style license.
-
-requires:
-- /Native
-- /$util
-
-provides: [Number]
-
-...
-*/
-
-Number.implement({
-
- limit: function(min, max){
- return Math.min(max, Math.max(min, this));
- },
-
- round: function(precision){
- precision = Math.pow(10, precision || 0);
- return Math.round(this * precision) / precision;
- },
-
- times: function(fn, bind){
- for (var i = 0; i < this; i++) fn.call(bind, i, this);
- },
-
- toFloat: function(){
- return parseFloat(this);
- },
-
- toInt: function(base){
- return parseInt(this, base || 10);
- }
-
-});
-
-Number.alias('times', 'each');
-
-(function(math){
- var methods = {};
- math.each(function(name){
- if (!Number[name]) methods[name] = function(){
- return Math[name].apply(null, [this].concat($A(arguments)));
- };
- });
- Number.implement(methods);
-})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);
-
-
-/*
----
-
-script: String.js
-
-description: Contains String Prototypes like camelCase, capitalize, test, and toInt.
-
-license: MIT-style license.
-
-requires:
-- /Native
-
-provides: [String]
-
-...
-*/
-
-String.implement({
-
- test: function(regex, params){
- return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);
- },
-
- contains: function(string, separator){
- return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;
- },
-
- trim: function(){
- return this.replace(/^\s+|\s+$/g, '');
- },
-
- clean: function(){
- return this.replace(/\s+/g, ' ').trim();
- },
-
- camelCase: function(){
- return this.replace(/-\D/g, function(match){
- return match.charAt(1).toUpperCase();
- });
- },
-
- hyphenate: function(){
- return this.replace(/[A-Z]/g, function(match){
- return ('-' + match.charAt(0).toLowerCase());
- });
- },
-
- capitalize: function(){
- return this.replace(/\b[a-z]/g, function(match){
- return match.toUpperCase();
- });
- },
-
- escapeRegExp: function(){
- return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
- },
-
- toInt: function(base){
- return parseInt(this, base || 10);
- },
-
- toFloat: function(){
- return parseFloat(this);
- },
-
- hexToRgb: function(array){
- var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
- return (hex) ? hex.slice(1).hexToRgb(array) : null;
- },
-
- rgbToHex: function(array){
- var rgb = this.match(/\d{1,3}/g);
- return (rgb) ? rgb.rgbToHex(array) : null;
- },
-
- stripScripts: function(option){
- var scripts = '';
- var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
- scripts += arguments[1] + '\n';
- return '';
- });
- if (option === true) $exec(scripts);
- else if ($type(option) == 'function') option(scripts, text);
- return text;
- },
-
- substitute: function(object, regexp){
- return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){
- if (match.charAt(0) == '\\') return match.slice(1);
- return (object[name] != undefined) ? object[name] : '';
- });
- }
-
-});
-
-
-/*
----
-
-script: Hash.js
-
-description: Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.
-
-license: MIT-style license.
-
-requires:
-- /Hash.base
-
-provides: [Hash]
-
-...
-*/
-
-Hash.implement({
-
- has: Object.prototype.hasOwnProperty,
-
- keyOf: function(value){
- for (var key in this){
- if (this.hasOwnProperty(key) && this[key] === value) return key;
- }
- return null;
- },
-
- hasValue: function(value){
- return (Hash.keyOf(this, value) !== null);
- },
-
- extend: function(properties){
- Hash.each(properties || {}, function(value, key){
- Hash.set(this, key, value);
- }, this);
- return this;
- },
-
- combine: function(properties){
- Hash.each(properties || {}, function(value, key){
- Hash.include(this, key, value);
- }, this);
- return this;
- },
-
- erase: function(key){
- if (this.hasOwnProperty(key)) delete this[key];
- return this;
- },
-
- get: function(key){
- return (this.hasOwnProperty(key)) ? this[key] : null;
- },
-
- set: function(key, value){
- if (!this[key] || this.hasOwnProperty(key)) this[key] = value;
- return this;
- },
-
- empty: function(){
- Hash.each(this, function(value, key){
- delete this[key];
- }, this);
- return this;
- },
-
- include: function(key, value){
- if (this[key] == undefined) this[key] = value;
- return this;
- },
-
- map: function(fn, bind){
- var results = new Hash;
- Hash.each(this, function(value, key){
- results.set(key, fn.call(bind, value, key, this));
- }, this);
- return results;
- },
-
- filter: function(fn, bind){
- var results = new Hash;
- Hash.each(this, function(value, key){
- if (fn.call(bind, value, key, this)) results.set(key, value);
- }, this);
- return results;
- },
-
- every: function(fn, bind){
- for (var key in this){
- if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;
- }
- return true;
- },
-
- some: function(fn, bind){
- for (var key in this){
- if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;
- }
- return false;
- },
-
- getKeys: function(){
- var keys = [];
- Hash.each(this, function(value, key){
- keys.push(key);
- });
- return keys;
- },
-
- getValues: function(){
- var values = [];
- Hash.each(this, function(value){
- values.push(value);
- });
- return values;
- },
-
- toQueryString: function(base){
- var queryString = [];
- Hash.each(this, function(value, key){
- if (base) key = base + '[' + key + ']';
- var result;
- switch ($type(value)){
- case 'object': result = Hash.toQueryString(value, key); break;
- case 'array':
- var qs = {};
- value.each(function(val, i){
- qs[i] = val;
- });
- result = Hash.toQueryString(qs, key);
- break;
- default: result = key + '=' + encodeURIComponent(value);
- }
- if (value != undefined) queryString.push(result);
- });
-
- return queryString.join('&');
- }
-
-});
-
-Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});
-
-
-/*
----
-
-script: Event.js
-
-description: Contains the Event Class, to make the event object cross-browser.
-
-license: MIT-style license.
-
-requires:
-- /Window
-- /Document
-- /Hash
-- /Array
-- /Function
-- /String
-
-provides: [Event]
-
-...
-*/
-
-var Event = new Native({
-
- name: 'Event',
-
- initialize: function(event, win){
- win = win || window;
- var doc = win.document;
- event = event || win.event;
- if (event.$extended) return event;
- this.$extended = true;
- var type = event.type;
- var target = event.target || event.srcElement;
- while (target && target.nodeType == 3) target = target.parentNode;
-
- if (type.test(/key/)){
- var code = event.which || event.keyCode;
- var key = Event.Keys.keyOf(code);
- if (type == 'keydown'){
- var fKey = code - 111;
- if (fKey > 0 && fKey < 13) key = 'f' + fKey;
- }
- key = key || String.fromCharCode(code).toLowerCase();
- } else if (type.match(/(click|mouse|menu)/i)){
- doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
- var page = {
- x: event.pageX || event.clientX + doc.scrollLeft,
- y: event.pageY || event.clientY + doc.scrollTop
- };
- var client = {
- x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,
- y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY
- };
- if (type.match(/DOMMouseScroll|mousewheel/)){
- var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
- }
- var rightClick = (event.which == 3) || (event.button == 2);
- var related = null;
- if (type.match(/over|out/)){
- switch (type){
- case 'mouseover': related = event.relatedTarget || event.fromElement; break;
- case 'mouseout': related = event.relatedTarget || event.toElement;
- }
- if (!(function(){
- while (related && related.nodeType == 3) related = related.parentNode;
- return true;
- }).create({attempt: Browser.Engine.gecko})()) related = false;
- }
- }
-
- return $extend(this, {
- event: event,
- type: type,
-
- page: page,
- client: client,
- rightClick: rightClick,
-
- wheel: wheel,
-
- relatedTarget: related,
- target: target,
-
- code: code,
- key: key,
-
- shift: event.shiftKey,
- control: event.ctrlKey,
- alt: event.altKey,
- meta: event.metaKey
- });
- }
-
-});
-
-Event.Keys = new Hash({
- 'enter': 13,
- 'up': 38,
- 'down': 40,
- 'left': 37,
- 'right': 39,
- 'esc': 27,
- 'space': 32,
- 'backspace': 8,
- 'tab': 9,
- 'delete': 46
-});
-
-Event.implement({
-
- stop: function(){
- return this.stopPropagation().preventDefault();
- },
-
- stopPropagation: function(){
- if (this.event.stopPropagation) this.event.stopPropagation();
- else this.event.cancelBubble = true;
- return this;
- },
-
- preventDefault: function(){
- if (this.event.preventDefault) this.event.preventDefault();
- else this.event.returnValue = false;
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Class.js
-
-description: Contains the Class Function for easily creating, extending, and implementing reusable Classes.
-
-license: MIT-style license.
-
-requires:
-- /$util
-- /Native
-- /Array
-- /String
-- /Function
-- /Number
-- /Hash
-
-provides: [Class]
-
-...
-*/
-
-function Class(params){
-
- if (params instanceof Function) params = {initialize: params};
-
- var newClass = function(){
- Object.reset(this);
- if (newClass._prototyping) return this;
- this._current = $empty;
- var value = (this.initialize) ? this.initialize.apply(this, arguments) : this;
- delete this._current; delete this.caller;
- return value;
- }.extend(this);
-
- newClass.implement(params);
-
- newClass.constructor = Class;
- newClass.prototype.constructor = newClass;
-
- return newClass;
-
-};
-
-Function.prototype.protect = function(){
- this._protected = true;
- return this;
-};
-
-Object.reset = function(object, key){
-
- if (key == null){
- for (var p in object) Object.reset(object, p);
- return object;
- }
-
- delete object[key];
-
- switch ($type(object[key])){
- case 'object':
- var F = function(){};
- F.prototype = object[key];
- var i = new F;
- object[key] = Object.reset(i);
- break;
- case 'array': object[key] = $unlink(object[key]); break;
- }
-
- return object;
-
-};
-
-new Native({name: 'Class', initialize: Class}).extend({
-
- instantiate: function(F){
- F._prototyping = true;
- var proto = new F;
- delete F._prototyping;
- return proto;
- },
-
- wrap: function(self, key, method){
- if (method._origin) method = method._origin;
-
- return function(){
- if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.');
- var caller = this.caller, current = this._current;
- this.caller = current; this._current = arguments.callee;
- var result = method.apply(this, arguments);
- this._current = current; this.caller = caller;
- return result;
- }.extend({_owner: self, _origin: method, _name: key});
-
- }
-
-});
-
-Class.implement({
-
- implement: function(key, value){
-
- if ($type(key) == 'object'){
- for (var p in key) this.implement(p, key[p]);
- return this;
- }
-
- var mutator = Class.Mutators[key];
-
- if (mutator){
- value = mutator.call(this, value);
- if (value == null) return this;
- }
-
- var proto = this.prototype;
-
- switch ($type(value)){
-
- case 'function':
- if (value._hidden) return this;
- proto[key] = Class.wrap(this, key, value);
- break;
-
- case 'object':
- var previous = proto[key];
- if ($type(previous) == 'object') $mixin(previous, value);
- else proto[key] = $unlink(value);
- break;
-
- case 'array':
- proto[key] = $unlink(value);
- break;
-
- default: proto[key] = value;
-
- }
-
- return this;
-
- }
-
-});
-
-Class.Mutators = {
-
- Extends: function(parent){
-
- this.parent = parent;
- this.prototype = Class.instantiate(parent);
-
- this.implement('parent', function(){
- var name = this.caller._name, previous = this.caller._owner.parent.prototype[name];
- if (!previous) throw new Error('The method "' + name + '" has no parent.');
- return previous.apply(this, arguments);
- }.protect());
-
- },
-
- Implements: function(items){
- $splat(items).each(function(item){
- if (item instanceof Function) item = Class.instantiate(item);
- this.implement(item);
- }, this);
-
- }
-
-};
-
-
-/*
----
-
-script: Class.Extras.js
-
-description: Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.
-
-license: MIT-style license.
-
-requires:
-- /Class
-
-provides: [Chain, Events, Options]
-
-...
-*/
-
-var Chain = new Class({
-
- $chain: [],
-
- chain: function(){
- this.$chain.extend(Array.flatten(arguments));
- return this;
- },
-
- callChain: function(){
- return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;
- },
-
- clearChain: function(){
- this.$chain.empty();
- return this;
- }
-
-});
-
-var Events = new Class({
-
- $events: {},
-
- addEvent: function(type, fn, internal){
- type = Events.removeOn(type);
- if (fn != $empty){
- this.$events[type] = this.$events[type] || [];
- this.$events[type].include(fn);
- if (internal) fn.internal = true;
- }
- return this;
- },
-
- addEvents: function(events){
- for (var type in events) this.addEvent(type, events[type]);
- return this;
- },
-
- fireEvent: function(type, args, delay){
- type = Events.removeOn(type);
- if (!this.$events || !this.$events[type]) return this;
- this.$events[type].each(function(fn){
- fn.create({'bind': this, 'delay': delay, 'arguments': args})();
- }, this);
- return this;
- },
-
- removeEvent: function(type, fn){
- type = Events.removeOn(type);
- if (!this.$events[type]) return this;
- if (!fn.internal) this.$events[type].erase(fn);
- return this;
- },
-
- removeEvents: function(events){
- var type;
- if ($type(events) == 'object'){
- for (type in events) this.removeEvent(type, events[type]);
- return this;
- }
- if (events) events = Events.removeOn(events);
- for (type in this.$events){
- if (events && events != type) continue;
- var fns = this.$events[type];
- for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);
- }
- return this;
- }
-
-});
-
-Events.removeOn = function(string){
- return string.replace(/^on([A-Z])/, function(full, first){
- return first.toLowerCase();
- });
-};
-
-var Options = new Class({
-
- setOptions: function(){
- this.options = $merge.run([this.options].extend(arguments));
- if (!this.addEvent) return this;
- for (var option in this.options){
- if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
- this.addEvent(option, this.options[option]);
- delete this.options[option];
- }
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Element.js
-
-description: One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser, time-saver methods to let you easily work with HTML Elements.
-
-license: MIT-style license.
-
-requires:
-- /Window
-- /Document
-- /Array
-- /String
-- /Function
-- /Number
-- /Hash
-
-provides: [Element, Elements, $, $$, Iframe]
-
-...
-*/
-
-var Element = new Native({
-
- name: 'Element',
-
- legacy: window.Element,
-
- initialize: function(tag, props){
- var konstructor = Element.Constructors.get(tag);
- if (konstructor) return konstructor(props);
- if (typeof tag == 'string') return document.newElement(tag, props);
- return document.id(tag).set(props);
- },
-
- afterImplement: function(key, value){
- Element.Prototype[key] = value;
- if (Array[key]) return;
- Elements.implement(key, function(){
- var items = [], elements = true;
- for (var i = 0, j = this.length; i < j; i++){
- var returns = this[i][key].apply(this[i], arguments);
- items.push(returns);
- if (elements) elements = ($type(returns) == 'element');
- }
- return (elements) ? new Elements(items) : items;
- });
- }
-
-});
-
-Element.Prototype = {$family: {name: 'element'}};
-
-Element.Constructors = new Hash;
-
-var IFrame = new Native({
-
- name: 'IFrame',
-
- generics: false,
-
- initialize: function(){
- var params = Array.link(arguments, {properties: Object.type, iframe: $defined});
- var props = params.properties || {};
- var iframe = document.id(params.iframe);
- var onload = props.onload || $empty;
- delete props.onload;
- props.id = props.name = $pick(props.id, props.name, iframe ? (iframe.id || iframe.name) : 'IFrame_' + $time());
- iframe = new Element(iframe || 'iframe', props);
- var onFrameLoad = function(){
- var host = $try(function(){
- return iframe.contentWindow.location.host;
- });
- if (!host || host == window.location.host){
- var win = new Window(iframe.contentWindow);
- new Document(iframe.contentWindow.document);
- $extend(win.Element.prototype, Element.Prototype);
- }
- onload.call(iframe.contentWindow, iframe.contentWindow.document);
- };
- var contentWindow = $try(function(){
- return iframe.contentWindow;
- });
- ((contentWindow && contentWindow.document.body) || window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);
- return iframe;
- }
-
-});
-
-var Elements = new Native({
-
- initialize: function(elements, options){
- options = $extend({ddup: true, cash: true}, options);
- elements = elements || [];
- if (options.ddup || options.cash){
- var uniques = {}, returned = [];
- for (var i = 0, l = elements.length; i < l; i++){
- var el = document.id(elements[i], !options.cash);
- if (options.ddup){
- if (uniques[el.uid]) continue;
- uniques[el.uid] = true;
- }
- if (el) returned.push(el);
- }
- elements = returned;
- }
- return (options.cash) ? $extend(elements, this) : elements;
- }
-
-});
-
-Elements.implement({
-
- filter: function(filter, bind){
- if (!filter) return this;
- return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){
- return item.match(filter);
- } : filter, bind));
- }
-
-});
-
-Document.implement({
-
- newElement: function(tag, props){
- if (Browser.Engine.trident && props){
- ['name', 'type', 'checked'].each(function(attribute){
- if (!props[attribute]) return;
- tag += ' ' + attribute + '="' + props[attribute] + '"';
- if (attribute != 'checked') delete props[attribute];
- });
- tag = '<' + tag + '>';
- }
- return document.id(this.createElement(tag)).set(props);
- },
-
- newTextNode: function(text){
- return this.createTextNode(text);
- },
-
- getDocument: function(){
- return this;
- },
-
- getWindow: function(){
- return this.window;
- },
-
- id: (function(){
-
- var types = {
-
- string: function(id, nocash, doc){
- id = doc.getElementById(id);
- return (id) ? types.element(id, nocash) : null;
- },
-
- element: function(el, nocash){
- $uid(el);
- if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){
- var proto = Element.Prototype;
- for (var p in proto) el[p] = proto[p];
- };
- return el;
- },
-
- object: function(obj, nocash, doc){
- if (obj.toElement) return types.element(obj.toElement(doc), nocash);
- return null;
- }
-
- };
-
- types.textnode = types.whitespace = types.window = types.document = $arguments(0);
-
- return function(el, nocash, doc){
- if (el && el.$family && el.uid) return el;
- var type = $type(el);
- return (types[type]) ? types[type](el, nocash, doc || document) : null;
- };
-
- })()
-
-});
-
-if (window.$ == null) Window.implement({
- $: function(el, nc){
- return document.id(el, nc, this.document);
- }
-});
-
-Window.implement({
-
- $$: function(selector){
- if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);
- var elements = [];
- var args = Array.flatten(arguments);
- for (var i = 0, l = args.length; i < l; i++){
- var item = args[i];
- switch ($type(item)){
- case 'element': elements.push(item); break;
- case 'string': elements.extend(this.document.getElements(item, true));
- }
- }
- return new Elements(elements);
- },
-
- getDocument: function(){
- return this.document;
- },
-
- getWindow: function(){
- return this;
- }
-
-});
-
-Native.implement([Element, Document], {
-
- getElement: function(selector, nocash){
- return document.id(this.getElements(selector, true)[0] || null, nocash);
- },
-
- getElements: function(tags, nocash){
- tags = tags.split(',');
- var elements = [];
- var ddup = (tags.length > 1);
- tags.each(function(tag){
- var partial = this.getElementsByTagName(tag.trim());
- (ddup) ? elements.extend(partial) : elements = partial;
- }, this);
- return new Elements(elements, {ddup: ddup, cash: !nocash});
- }
-
-});
-
-(function(){
-
-var collected = {}, storage = {};
-var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};
-
-var get = function(uid){
- return (storage[uid] || (storage[uid] = {}));
-};
-
-var clean = function(item, retain){
- if (!item) return;
- var uid = item.uid;
- if (Browser.Engine.trident){
- if (item.clearAttributes){
- var clone = retain && item.cloneNode(false);
- item.clearAttributes();
- if (clone) item.mergeAttributes(clone);
- } else if (item.removeEvents){
- item.removeEvents();
- }
- if ((/object/i).test(item.tagName)){
- for (var p in item){
- if (typeof item[p] == 'function') item[p] = $empty;
- }
- Element.dispose(item);
- }
- }
- if (!uid) return;
- collected[uid] = storage[uid] = null;
-};
-
-var purge = function(){
- Hash.each(collected, clean);
- if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);
- if (window.CollectGarbage) CollectGarbage();
- collected = storage = null;
-};
-
-var walk = function(element, walk, start, match, all, nocash){
- var el = element[start || walk];
- var elements = [];
- while (el){
- if (el.nodeType == 1 && (!match || Element.match(el, match))){
- if (!all) return document.id(el, nocash);
- elements.push(el);
- }
- el = el[walk];
- }
- return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;
-};
-
-var attributes = {
- 'html': 'innerHTML',
- 'class': 'className',
- 'for': 'htmlFor',
- 'defaultValue': 'defaultValue',
- 'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'
-};
-var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];
-var camels = ['value', 'type', 'defaultValue', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];
-
-bools = bools.associate(bools);
-
-Hash.extend(attributes, bools);
-Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));
-
-var inserters = {
-
- before: function(context, element){
- if (element.parentNode) element.parentNode.insertBefore(context, element);
- },
-
- after: function(context, element){
- if (!element.parentNode) return;
- var next = element.nextSibling;
- (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);
- },
-
- bottom: function(context, element){
- element.appendChild(context);
- },
-
- top: function(context, element){
- var first = element.firstChild;
- (first) ? element.insertBefore(context, first) : element.appendChild(context);
- }
-
-};
-
-inserters.inside = inserters.bottom;
-
-Hash.each(inserters, function(inserter, where){
-
- where = where.capitalize();
-
- Element.implement('inject' + where, function(el){
- inserter(this, document.id(el, true));
- return this;
- });
-
- Element.implement('grab' + where, function(el){
- inserter(document.id(el, true), this);
- return this;
- });
-
-});
-
-Element.implement({
-
- set: function(prop, value){
- switch ($type(prop)){
- case 'object':
- for (var p in prop) this.set(p, prop[p]);
- break;
- case 'string':
- var property = Element.Properties.get(prop);
- (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);
- }
- return this;
- },
-
- get: function(prop){
- var property = Element.Properties.get(prop);
- return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);
- },
-
- erase: function(prop){
- var property = Element.Properties.get(prop);
- (property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);
- return this;
- },
-
- setProperty: function(attribute, value){
- var key = attributes[attribute];
- if (value == undefined) return this.removeProperty(attribute);
- if (key && bools[attribute]) value = !!value;
- (key) ? this[key] = value : this.setAttribute(attribute, '' + value);
- return this;
- },
-
- setProperties: function(attributes){
- for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);
- return this;
- },
-
- getProperty: function(attribute){
- var key = attributes[attribute];
- var value = (key) ? this[key] : this.getAttribute(attribute, 2);
- return (bools[attribute]) ? !!value : (key) ? value : value || null;
- },
-
- getProperties: function(){
- var args = $A(arguments);
- return args.map(this.getProperty, this).associate(args);
- },
-
- removeProperty: function(attribute){
- var key = attributes[attribute];
- (key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);
- return this;
- },
-
- removeProperties: function(){
- Array.each(arguments, this.removeProperty, this);
- return this;
- },
-
- hasClass: function(className){
- return this.className.contains(className, ' ');
- },
-
- addClass: function(className){
- if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();
- return this;
- },
-
- removeClass: function(className){
- this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
- return this;
- },
-
- toggleClass: function(className){
- return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);
- },
-
- adopt: function(){
- Array.flatten(arguments).each(function(element){
- element = document.id(element, true);
- if (element) this.appendChild(element);
- }, this);
- return this;
- },
-
- appendText: function(text, where){
- return this.grab(this.getDocument().newTextNode(text), where);
- },
-
- grab: function(el, where){
- inserters[where || 'bottom'](document.id(el, true), this);
- return this;
- },
-
- inject: function(el, where){
- inserters[where || 'bottom'](this, document.id(el, true));
- return this;
- },
-
- replaces: function(el){
- el = document.id(el, true);
- el.parentNode.replaceChild(this, el);
- return this;
- },
-
- wraps: function(el, where){
- el = document.id(el, true);
- return this.replaces(el).grab(el, where);
- },
-
- getPrevious: function(match, nocash){
- return walk(this, 'previousSibling', null, match, false, nocash);
- },
-
- getAllPrevious: function(match, nocash){
- return walk(this, 'previousSibling', null, match, true, nocash);
- },
-
- getNext: function(match, nocash){
- return walk(this, 'nextSibling', null, match, false, nocash);
- },
-
- getAllNext: function(match, nocash){
- return walk(this, 'nextSibling', null, match, true, nocash);
- },
-
- getFirst: function(match, nocash){
- return walk(this, 'nextSibling', 'firstChild', match, false, nocash);
- },
-
- getLast: function(match, nocash){
- return walk(this, 'previousSibling', 'lastChild', match, false, nocash);
- },
-
- getParent: function(match, nocash){
- return walk(this, 'parentNode', null, match, false, nocash);
- },
-
- getParents: function(match, nocash){
- return walk(this, 'parentNode', null, match, true, nocash);
- },
-
- getSiblings: function(match, nocash){
- return this.getParent().getChildren(match, nocash).erase(this);
- },
-
- getChildren: function(match, nocash){
- return walk(this, 'nextSibling', 'firstChild', match, true, nocash);
- },
-
- getWindow: function(){
- return this.ownerDocument.window;
- },
-
- getDocument: function(){
- return this.ownerDocument;
- },
-
- getElementById: function(id, nocash){
- var el = this.ownerDocument.getElementById(id);
- if (!el) return null;
- for (var parent = el.parentNode; parent != this; parent = parent.parentNode){
- if (!parent) return null;
- }
- return document.id(el, nocash);
- },
-
- getSelected: function(){
- return new Elements($A(this.options).filter(function(option){
- return option.selected;
- }));
- },
-
- getComputedStyle: function(property){
- if (this.currentStyle) return this.currentStyle[property.camelCase()];
- var computed = this.getDocument().defaultView.getComputedStyle(this, null);
- return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;
- },
-
- toQueryString: function(){
- var queryString = [];
- this.getElements('input, select, textarea', true).each(function(el){
- if (!el.name || el.disabled || el.type == 'submit' || el.type == 'reset' || el.type == 'file') return;
- var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){
- return opt.value;
- }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;
- $splat(value).each(function(val){
- if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));
- });
- });
- return queryString.join('&');
- },
-
- clone: function(contents, keepid){
- contents = contents !== false;
- var clone = this.cloneNode(contents);
- var clean = function(node, element){
- if (!keepid) node.removeAttribute('id');
- if (Browser.Engine.trident){
- node.clearAttributes();
- node.mergeAttributes(element);
- node.removeAttribute('uid');
- if (node.options){
- var no = node.options, eo = element.options;
- for (var j = no.length; j--;) no[j].selected = eo[j].selected;
- }
- }
- var prop = props[element.tagName.toLowerCase()];
- if (prop && element[prop]) node[prop] = element[prop];
- };
-
- if (contents){
- var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');
- for (var i = ce.length; i--;) clean(ce[i], te[i]);
- }
-
- clean(clone, this);
- return document.id(clone);
- },
-
- destroy: function(){
- Element.empty(this);
- Element.dispose(this);
- clean(this, true);
- return null;
- },
-
- empty: function(){
- $A(this.childNodes).each(function(node){
- Element.destroy(node);
- });
- return this;
- },
-
- dispose: function(){
- return (this.parentNode) ? this.parentNode.removeChild(this) : this;
- },
-
- hasChild: function(el){
- el = document.id(el, true);
- if (!el) return false;
- if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);
- return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);
- },
-
- match: function(tag){
- return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));
- }
-
-});
-
-Native.implement([Element, Window, Document], {
-
- addListener: function(type, fn){
- if (type == 'unload'){
- var old = fn, self = this;
- fn = function(){
- self.removeListener('unload', fn);
- old();
- };
- } else {
- collected[this.uid] = this;
- }
- if (this.addEventListener) this.addEventListener(type, fn, false);
- else this.attachEvent('on' + type, fn);
- return this;
- },
-
- removeListener: function(type, fn){
- if (this.removeEventListener) this.removeEventListener(type, fn, false);
- else this.detachEvent('on' + type, fn);
- return this;
- },
-
- retrieve: function(property, dflt){
- var storage = get(this.uid), prop = storage[property];
- if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;
- return $pick(prop);
- },
-
- store: function(property, value){
- var storage = get(this.uid);
- storage[property] = value;
- return this;
- },
-
- eliminate: function(property){
- var storage = get(this.uid);
- delete storage[property];
- return this;
- }
-
-});
-
-window.addListener('unload', purge);
-
-})();
-
-Element.Properties = new Hash;
-
-Element.Properties.style = {
-
- set: function(style){
- this.style.cssText = style;
- },
-
- get: function(){
- return this.style.cssText;
- },
-
- erase: function(){
- this.style.cssText = '';
- }
-
-};
-
-Element.Properties.tag = {
-
- get: function(){
- return this.tagName.toLowerCase();
- }
-
-};
-
-Element.Properties.html = (function(){
- var wrapper = document.createElement('div');
-
- var translations = {
- table: [1, '<table>', '</table>'],
- select: [1, '<select>', '</select>'],
- tbody: [2, '<table><tbody>', '</tbody></table>'],
- tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']
- };
- translations.thead = translations.tfoot = translations.tbody;
-
- var html = {
- set: function(){
- var html = Array.flatten(arguments).join('');
- var wrap = Browser.Engine.trident && translations[this.get('tag')];
- if (wrap){
- var first = wrapper;
- first.innerHTML = wrap[1] + html + wrap[2];
- for (var i = wrap[0]; i--;) first = first.firstChild;
- this.empty().adopt(first.childNodes);
- } else {
- this.innerHTML = html;
- }
- }
- };
-
- html.erase = html.set;
-
- return html;
-})();
-
-if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {
- get: function(){
- if (this.innerText) return this.innerText;
- var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);
- var text = temp.innerText;
- temp.destroy();
- return text;
- }
-};
-
-
-/*
----
-
-script: Element.Event.js
-
-description: Contains Element methods for dealing with events. This file also includes mouseenter and mouseleave custom Element Events.
-
-license: MIT-style license.
-
-requires:
-- /Element
-- /Event
-
-provides: [Element.Event]
-
-...
-*/
-
-Element.Properties.events = {set: function(events){
- this.addEvents(events);
-}};
-
-Native.implement([Element, Window, Document], {
-
- addEvent: function(type, fn){
- var events = this.retrieve('events', {});
- events[type] = events[type] || {'keys': [], 'values': []};
- if (events[type].keys.contains(fn)) return this;
- events[type].keys.push(fn);
- var realType = type, custom = Element.Events.get(type), condition = fn, self = this;
- if (custom){
- if (custom.onAdd) custom.onAdd.call(this, fn);
- if (custom.condition){
- condition = function(event){
- if (custom.condition.call(this, event)) return fn.call(this, event);
- return true;
- };
- }
- realType = custom.base || realType;
- }
- var defn = function(){
- return fn.call(self);
- };
- var nativeEvent = Element.NativeEvents[realType];
- if (nativeEvent){
- if (nativeEvent == 2){
- defn = function(event){
- event = new Event(event, self.getWindow());
- if (condition.call(self, event) === false) event.stop();
- };
- }
- this.addListener(realType, defn);
- }
- events[type].values.push(defn);
- return this;
- },
-
- removeEvent: function(type, fn){
- var events = this.retrieve('events');
- if (!events || !events[type]) return this;
- var pos = events[type].keys.indexOf(fn);
- if (pos == -1) return this;
- events[type].keys.splice(pos, 1);
- var value = events[type].values.splice(pos, 1)[0];
- var custom = Element.Events.get(type);
- if (custom){
- if (custom.onRemove) custom.onRemove.call(this, fn);
- type = custom.base || type;
- }
- return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;
- },
-
- addEvents: function(events){
- for (var event in events) this.addEvent(event, events[event]);
- return this;
- },
-
- removeEvents: function(events){
- var type;
- if ($type(events) == 'object'){
- for (type in events) this.removeEvent(type, events[type]);
- return this;
- }
- var attached = this.retrieve('events');
- if (!attached) return this;
- if (!events){
- for (type in attached) this.removeEvents(type);
- this.eliminate('events');
- } else if (attached[events]){
- while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);
- attached[events] = null;
- }
- return this;
- },
-
- fireEvent: function(type, args, delay){
- var events = this.retrieve('events');
- if (!events || !events[type]) return this;
- events[type].keys.each(function(fn){
- fn.create({'bind': this, 'delay': delay, 'arguments': args})();
- }, this);
- return this;
- },
-
- cloneEvents: function(from, type){
- from = document.id(from);
- var fevents = from.retrieve('events');
- if (!fevents) return this;
- if (!type){
- for (var evType in fevents) this.cloneEvents(from, evType);
- } else if (fevents[type]){
- fevents[type].keys.each(function(fn){
- this.addEvent(type, fn);
- }, this);
- }
- return this;
- }
-
-});
-
-Element.NativeEvents = {
- click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons
- mousewheel: 2, DOMMouseScroll: 2, //mouse wheel
- mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement
- keydown: 2, keypress: 2, keyup: 2, //keyboard
- focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements
- load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
- error: 1, abort: 1, scroll: 1 //misc
-};
-
-(function(){
-
-var $check = function(event){
- var related = event.relatedTarget;
- if (related == undefined) return true;
- if (related === false) return false;
- return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));
-};
-
-Element.Events = new Hash({
-
- mouseenter: {
- base: 'mouseover',
- condition: $check
- },
-
- mouseleave: {
- base: 'mouseout',
- condition: $check
- },
-
- mousewheel: {
- base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'
- }
-
-});
-
-})();
-
-
-/*
----
-
-script: Element.Style.js
-
-description: Contains methods for interacting with the styles of Elements in a fashionable way.
-
-license: MIT-style license.
-
-requires:
-- /Element
-
-provides: [Element.Style]
-
-...
-*/
-
-Element.Properties.styles = {set: function(styles){
- this.setStyles(styles);
-}};
-
-Element.Properties.opacity = {
-
- set: function(opacity, novisibility){
- if (!novisibility){
- if (opacity == 0){
- if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';
- } else {
- if (this.style.visibility != 'visible') this.style.visibility = 'visible';
- }
- }
- if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;
- if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';
- this.style.opacity = opacity;
- this.store('opacity', opacity);
- },
-
- get: function(){
- return this.retrieve('opacity', 1);
- }
-
-};
-
-Element.implement({
-
- setOpacity: function(value){
- return this.set('opacity', value, true);
- },
-
- getOpacity: function(){
- return this.get('opacity');
- },
-
- setStyle: function(property, value){
- switch (property){
- case 'opacity': return this.set('opacity', parseFloat(value));
- case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
- }
- property = property.camelCase();
- if ($type(value) != 'string'){
- var map = (Element.Styles.get(property) || '@').split(' ');
- value = $splat(value).map(function(val, i){
- if (!map[i]) return '';
- return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
- }).join(' ');
- } else if (value == String(Number(value))){
- value = Math.round(value);
- }
- this.style[property] = value;
- return this;
- },
-
- getStyle: function(property){
- switch (property){
- case 'opacity': return this.get('opacity');
- case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';
- }
- property = property.camelCase();
- var result = this.style[property];
- if (!$chk(result)){
- result = [];
- for (var style in Element.ShortStyles){
- if (property != style) continue;
- for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));
- return result.join(' ');
- }
- result = this.getComputedStyle(property);
- }
- if (result){
- result = String(result);
- var color = result.match(/rgba?\([\d\s,]+\)/);
- if (color) result = result.replace(color[0], color[0].rgbToHex());
- }
- if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){
- if (property.test(/^(height|width)$/)){
- var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;
- values.each(function(value){
- size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();
- }, this);
- return this['offset' + property.capitalize()] - size + 'px';
- }
- if ((Browser.Engine.presto) && String(result).test('px')) return result;
- if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';
- }
- return result;
- },
-
- setStyles: function(styles){
- for (var style in styles) this.setStyle(style, styles[style]);
- return this;
- },
-
- getStyles: function(){
- var result = {};
- Array.flatten(arguments).each(function(key){
- result[key] = this.getStyle(key);
- }, this);
- return result;
- }
-
-});
-
-Element.Styles = new Hash({
- left: '@px', top: '@px', bottom: '@px', right: '@px',
- width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',
- backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',
- fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',
- margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',
- borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',
- zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'
-});
-
-Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};
-
-['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
- var Short = Element.ShortStyles;
- var All = Element.Styles;
- ['margin', 'padding'].each(function(style){
- var sd = style + direction;
- Short[style][sd] = All[sd] = '@px';
- });
- var bd = 'border' + direction;
- Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';
- var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';
- Short[bd] = {};
- Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';
- Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';
- Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';
-});
-
-
-/*
----
-
-script: Element.Dimensions.js
-
-description: Contains methods to work with size, scroll, or positioning of Elements and the window object.
-
-license: MIT-style license.
-
-credits:
-- Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).
-- Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).
-
-requires:
-- /Element
-
-provides: [Element.Dimensions]
-
-...
-*/
-
-(function(){
-
-Element.implement({
-
- scrollTo: function(x, y){
- if (isBody(this)){
- this.getWindow().scrollTo(x, y);
- } else {
- this.scrollLeft = x;
- this.scrollTop = y;
- }
- return this;
- },
-
- getSize: function(){
- if (isBody(this)) return this.getWindow().getSize();
- return {x: this.offsetWidth, y: this.offsetHeight};
- },
-
- getScrollSize: function(){
- if (isBody(this)) return this.getWindow().getScrollSize();
- return {x: this.scrollWidth, y: this.scrollHeight};
- },
-
- getScroll: function(){
- if (isBody(this)) return this.getWindow().getScroll();
- return {x: this.scrollLeft, y: this.scrollTop};
- },
-
- getScrolls: function(){
- var element = this, position = {x: 0, y: 0};
- while (element && !isBody(element)){
- position.x += element.scrollLeft;
- position.y += element.scrollTop;
- element = element.parentNode;
- }
- return position;
- },
-
- getOffsetParent: function(){
- var element = this;
- if (isBody(element)) return null;
- if (!Browser.Engine.trident) return element.offsetParent;
- while ((element = element.parentNode) && !isBody(element)){
- if (styleString(element, 'position') != 'static') return element;
- }
- return null;
- },
-
- getOffsets: function(){
- if (this.getBoundingClientRect){
- var bound = this.getBoundingClientRect(),
- html = document.id(this.getDocument().documentElement),
- htmlScroll = html.getScroll(),
- elemScrolls = this.getScrolls(),
- elemScroll = this.getScroll(),
- isFixed = (styleString(this, 'position') == 'fixed');
-
- return {
- x: bound.left.toInt() + elemScrolls.x - elemScroll.x + ((isFixed) ? 0 : htmlScroll.x) - html.clientLeft,
- y: bound.top.toInt() + elemScrolls.y - elemScroll.y + ((isFixed) ? 0 : htmlScroll.y) - html.clientTop
- };
- }
-
- var element = this, position = {x: 0, y: 0};
- if (isBody(this)) return position;
-
- while (element && !isBody(element)){
- position.x += element.offsetLeft;
- position.y += element.offsetTop;
-
- if (Browser.Engine.gecko){
- if (!borderBox(element)){
- position.x += leftBorder(element);
- position.y += topBorder(element);
- }
- var parent = element.parentNode;
- if (parent && styleString(parent, 'overflow') != 'visible'){
- position.x += leftBorder(parent);
- position.y += topBorder(parent);
- }
- } else if (element != this && Browser.Engine.webkit){
- position.x += leftBorder(element);
- position.y += topBorder(element);
- }
-
- element = element.offsetParent;
- }
- if (Browser.Engine.gecko && !borderBox(this)){
- position.x -= leftBorder(this);
- position.y -= topBorder(this);
- }
- return position;
- },
-
- getPosition: function(relative){
- if (isBody(this)) return {x: 0, y: 0};
- var offset = this.getOffsets(),
- scroll = this.getScrolls();
- var position = {
- x: offset.x - scroll.x,
- y: offset.y - scroll.y
- };
- var relativePosition = (relative && (relative = document.id(relative))) ? relative.getPosition() : {x: 0, y: 0};
- return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};
- },
-
- getCoordinates: function(element){
- if (isBody(this)) return this.getWindow().getCoordinates();
- var position = this.getPosition(element),
- size = this.getSize();
- var obj = {
- left: position.x,
- top: position.y,
- width: size.x,
- height: size.y
- };
- obj.right = obj.left + obj.width;
- obj.bottom = obj.top + obj.height;
- return obj;
- },
-
- computePosition: function(obj){
- return {
- left: obj.x - styleNumber(this, 'margin-left'),
- top: obj.y - styleNumber(this, 'margin-top')
- };
- },
-
- setPosition: function(obj){
- return this.setStyles(this.computePosition(obj));
- }
-
-});
-
-
-Native.implement([Document, Window], {
-
- getSize: function(){
- if (Browser.Engine.presto || Browser.Engine.webkit){
- var win = this.getWindow();
- return {x: win.innerWidth, y: win.innerHeight};
- }
- var doc = getCompatElement(this);
- return {x: doc.clientWidth, y: doc.clientHeight};
- },
-
- getScroll: function(){
- var win = this.getWindow(), doc = getCompatElement(this);
- return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};
- },
-
- getScrollSize: function(){
- var doc = getCompatElement(this), min = this.getSize();
- return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};
- },
-
- getPosition: function(){
- return {x: 0, y: 0};
- },
-
- getCoordinates: function(){
- var size = this.getSize();
- return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};
- }
-
-});
-
-// private methods
-
-var styleString = Element.getComputedStyle;
-
-function styleNumber(element, style){
- return styleString(element, style).toInt() || 0;
-};
-
-function borderBox(element){
- return styleString(element, '-moz-box-sizing') == 'border-box';
-};
-
-function topBorder(element){
- return styleNumber(element, 'border-top-width');
-};
-
-function leftBorder(element){
- return styleNumber(element, 'border-left-width');
-};
-
-function isBody(element){
- return (/^(?:body|html)$/i).test(element.tagName);
-};
-
-function getCompatElement(element){
- var doc = element.getDocument();
- return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;
-};
-
-})();
-
-//aliases
-Element.alias('setPosition', 'position'); //compatability
-
-Native.implement([Window, Document, Element], {
-
- getHeight: function(){
- return this.getSize().y;
- },
-
- getWidth: function(){
- return this.getSize().x;
- },
-
- getScrollTop: function(){
- return this.getScroll().y;
- },
-
- getScrollLeft: function(){
- return this.getScroll().x;
- },
-
- getScrollHeight: function(){
- return this.getScrollSize().y;
- },
-
- getScrollWidth: function(){
- return this.getScrollSize().x;
- },
-
- getTop: function(){
- return this.getPosition().y;
- },
-
- getLeft: function(){
- return this.getPosition().x;
- }
-
-});
-
-
-/*
----
-
-script: Selectors.js
-
-description: Adds advanced CSS-style querying capabilities for targeting HTML Elements. Includes pseudo selectors.
-
-license: MIT-style license.
-
-requires:
-- /Element
-
-provides: [Selectors]
-
-...
-*/
-
-Native.implement([Document, Element], {
-
- getElements: function(expression, nocash){
- expression = expression.split(',');
- var items, local = {};
- for (var i = 0, l = expression.length; i < l; i++){
- var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);
- if (i != 0 && elements.item) elements = $A(elements);
- items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);
- }
- return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});
- }
-
-});
-
-Element.implement({
-
- match: function(selector){
- if (!selector || (selector == this)) return true;
- var tagid = Selectors.Utils.parseTagAndID(selector);
- var tag = tagid[0], id = tagid[1];
- if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;
- var parsed = Selectors.Utils.parseSelector(selector);
- return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;
- }
-
-});
-
-var Selectors = {Cache: {nth: {}, parsed: {}}};
-
-Selectors.RegExps = {
- id: (/#([\w-]+)/),
- tag: (/^(\w+|\*)/),
- quick: (/^(\w+|\*)$/),
- splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),
- combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)
-};
-
-Selectors.Utils = {
-
- chk: function(item, uniques){
- if (!uniques) return true;
- var uid = $uid(item);
- if (!uniques[uid]) return uniques[uid] = true;
- return false;
- },
-
- parseNthArgument: function(argument){
- if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];
- var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);
- if (!parsed) return false;
- var inta = parseInt(parsed[1], 10);
- var a = (inta || inta === 0) ? inta : 1;
- var special = parsed[2] || false;
- var b = parseInt(parsed[3], 10) || 0;
- if (a != 0){
- b--;
- while (b < 1) b += a;
- while (b >= a) b -= a;
- } else {
- a = b;
- special = 'index';
- }
- switch (special){
- case 'n': parsed = {a: a, b: b, special: 'n'}; break;
- case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;
- case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;
- case 'first': parsed = {a: 0, special: 'index'}; break;
- case 'last': parsed = {special: 'last-child'}; break;
- case 'only': parsed = {special: 'only-child'}; break;
- default: parsed = {a: (a - 1), special: 'index'};
- }
-
- return Selectors.Cache.nth[argument] = parsed;
- },
-
- parseSelector: function(selector){
- if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];
- var m, parsed = {classes: [], pseudos: [], attributes: []};
- while ((m = Selectors.RegExps.combined.exec(selector))){
- var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7];
- if (cn){
- parsed.classes.push(cn);
- } else if (pn){
- var parser = Selectors.Pseudo.get(pn);
- if (parser) parsed.pseudos.push({parser: parser, argument: pa});
- else parsed.attributes.push({name: pn, operator: '=', value: pa});
- } else if (an){
- parsed.attributes.push({name: an, operator: ao, value: av});
- }
- }
- if (!parsed.classes.length) delete parsed.classes;
- if (!parsed.attributes.length) delete parsed.attributes;
- if (!parsed.pseudos.length) delete parsed.pseudos;
- if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;
- return Selectors.Cache.parsed[selector] = parsed;
- },
-
- parseTagAndID: function(selector){
- var tag = selector.match(Selectors.RegExps.tag);
- var id = selector.match(Selectors.RegExps.id);
- return [(tag) ? tag[1] : '*', (id) ? id[1] : false];
- },
-
- filter: function(item, parsed, local){
- var i;
- if (parsed.classes){
- for (i = parsed.classes.length; i--; i){
- var cn = parsed.classes[i];
- if (!Selectors.Filters.byClass(item, cn)) return false;
- }
- }
- if (parsed.attributes){
- for (i = parsed.attributes.length; i--; i){
- var att = parsed.attributes[i];
- if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;
- }
- }
- if (parsed.pseudos){
- for (i = parsed.pseudos.length; i--; i){
- var psd = parsed.pseudos[i];
- if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;
- }
- }
- return true;
- },
-
- getByTagAndID: function(ctx, tag, id){
- if (id){
- var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true);
- return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];
- } else {
- return ctx.getElementsByTagName(tag);
- }
- },
-
- search: function(self, expression, local){
- var splitters = [];
-
- var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){
- splitters.push(m1);
- return ':)' + m2;
- }).split(':)');
-
- var items, filtered, item;
-
- for (var i = 0, l = selectors.length; i < l; i++){
-
- var selector = selectors[i];
-
- if (i == 0 && Selectors.RegExps.quick.test(selector)){
- items = self.getElementsByTagName(selector);
- continue;
- }
-
- var splitter = splitters[i - 1];
-
- var tagid = Selectors.Utils.parseTagAndID(selector);
- var tag = tagid[0], id = tagid[1];
-
- if (i == 0){
- items = Selectors.Utils.getByTagAndID(self, tag, id);
- } else {
- var uniques = {}, found = [];
- for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);
- items = found;
- }
-
- var parsed = Selectors.Utils.parseSelector(selector);
-
- if (parsed){
- filtered = [];
- for (var m = 0, n = items.length; m < n; m++){
- item = items[m];
- if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);
- }
- items = filtered;
- }
-
- }
-
- return items;
-
- }
-
-};
-
-Selectors.Getters = {
-
- ' ': function(found, self, tag, id, uniques){
- var items = Selectors.Utils.getByTagAndID(self, tag, id);
- for (var i = 0, l = items.length; i < l; i++){
- var item = items[i];
- if (Selectors.Utils.chk(item, uniques)) found.push(item);
- }
- return found;
- },
-
- '>': function(found, self, tag, id, uniques){
- var children = Selectors.Utils.getByTagAndID(self, tag, id);
- for (var i = 0, l = children.length; i < l; i++){
- var child = children[i];
- if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);
- }
- return found;
- },
-
- '+': function(found, self, tag, id, uniques){
- while ((self = self.nextSibling)){
- if (self.nodeType == 1){
- if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
- break;
- }
- }
- return found;
- },
-
- '~': function(found, self, tag, id, uniques){
- while ((self = self.nextSibling)){
- if (self.nodeType == 1){
- if (!Selectors.Utils.chk(self, uniques)) break;
- if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);
- }
- }
- return found;
- }
-
-};
-
-Selectors.Filters = {
-
- byTag: function(self, tag){
- return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));
- },
-
- byID: function(self, id){
- return (!id || (self.id && self.id == id));
- },
-
- byClass: function(self, klass){
- return (self.className && self.className.contains && self.className.contains(klass, ' '));
- },
-
- byPseudo: function(self, parser, argument, local){
- return parser.call(self, argument, local);
- },
-
- byAttribute: function(self, name, operator, value){
- var result = Element.prototype.getProperty.call(self, name);
- if (!result) return (operator == '!=');
- if (!operator || value == undefined) return true;
- switch (operator){
- case '=': return (result == value);
- case '*=': return (result.contains(value));
- case '^=': return (result.substr(0, value.length) == value);
- case '$=': return (result.substr(result.length - value.length) == value);
- case '!=': return (result != value);
- case '~=': return result.contains(value, ' ');
- case '|=': return result.contains(value, '-');
- }
- return false;
- }
-
-};
-
-Selectors.Pseudo = new Hash({
-
- // w3c pseudo selectors
-
- checked: function(){
- return this.checked;
- },
-
- empty: function(){
- return !(this.innerText || this.textContent || '').length;
- },
-
- not: function(selector){
- return !Element.match(this, selector);
- },
-
- contains: function(text){
- return (this.innerText || this.textContent || '').contains(text);
- },
-
- 'first-child': function(){
- return Selectors.Pseudo.index.call(this, 0);
- },
-
- 'last-child': function(){
- var element = this;
- while ((element = element.nextSibling)){
- if (element.nodeType == 1) return false;
- }
- return true;
- },
-
- 'only-child': function(){
- var prev = this;
- while ((prev = prev.previousSibling)){
- if (prev.nodeType == 1) return false;
- }
- var next = this;
- while ((next = next.nextSibling)){
- if (next.nodeType == 1) return false;
- }
- return true;
- },
-
- 'nth-child': function(argument, local){
- argument = (argument == undefined) ? 'n' : argument;
- var parsed = Selectors.Utils.parseNthArgument(argument);
- if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);
- var count = 0;
- local.positions = local.positions || {};
- var uid = $uid(this);
- if (!local.positions[uid]){
- var self = this;
- while ((self = self.previousSibling)){
- if (self.nodeType != 1) continue;
- count ++;
- var position = local.positions[$uid(self)];
- if (position != undefined){
- count = position + count;
- break;
- }
- }
- local.positions[uid] = count;
- }
- return (local.positions[uid] % parsed.a == parsed.b);
- },
-
- // custom pseudo selectors
-
- index: function(index){
- var element = this, count = 0;
- while ((element = element.previousSibling)){
- if (element.nodeType == 1 && ++count > index) return false;
- }
- return (count == index);
- },
-
- even: function(argument, local){
- return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);
- },
-
- odd: function(argument, local){
- return Selectors.Pseudo['nth-child'].call(this, '2n', local);
- },
-
- selected: function(){
- return this.selected;
- },
-
- enabled: function(){
- return (this.disabled === false);
- }
-
-});
-
-
-/*
----
-
-script: DomReady.js
-
-description: Contains the custom event domready.
-
-license: MIT-style license.
-
-requires:
-- /Element.Event
-
-provides: [DomReady]
-
-...
-*/
-
-Element.Events.domready = {
-
- onAdd: function(fn){
- if (Browser.loaded) fn.call(this);
- }
-
-};
-
-(function(){
-
- var domready = function(){
- if (Browser.loaded) return;
- Browser.loaded = true;
- window.fireEvent('domready');
- document.fireEvent('domready');
- };
-
- window.addEvent('load', domready);
-
- if (Browser.Engine.trident){
- var temp = document.createElement('div');
- (function(){
- ($try(function(){
- temp.doScroll(); // Technique by Diego Perini
- return document.id(temp).inject(document.body).set('html', 'temp').dispose();
- })) ? domready() : arguments.callee.delay(50);
- })();
- } else if (Browser.Engine.webkit && Browser.Engine.version < 525){
- (function(){
- (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);
- })();
- } else {
- document.addEvent('DOMContentLoaded', domready);
- }
-
-})();
-
-
-/*
----
-
-script: JSON.js
-
-description: JSON encoder and decoder.
-
-license: MIT-style license.
-
-See Also: <http://www.json.org/>
-
-requires:
-- /Array
-- /String
-- /Number
-- /Function
-- /Hash
-
-provides: [JSON]
-
-...
-*/
-
-var JSON = new Hash(this.JSON && {
- stringify: JSON.stringify,
- parse: JSON.parse
-}).extend({
-
- $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},
-
- $replaceChars: function(chr){
- return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
- },
-
- encode: function(obj){
- switch ($type(obj)){
- case 'string':
- return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
- case 'array':
- return '[' + String(obj.map(JSON.encode).clean()) + ']';
- case 'object': case 'hash':
- var string = [];
- Hash.each(obj, function(value, key){
- var json = JSON.encode(value);
- if (json) string.push(JSON.encode(key) + ':' + json);
- });
- return '{' + string + '}';
- case 'number': case 'boolean': return String(obj);
- case false: return 'null';
- }
- return null;
- },
-
- decode: function(string, secure){
- if ($type(string) != 'string' || !string.length) return null;
- if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;
- return eval('(' + string + ')');
- }
-
-});
-
-Native.implement([Hash, Array, String, Number], {
-
- toJSON: function(){
- return JSON.encode(this);
- }
-
-});
-
-
-/*
----
-
-script: Cookie.js
-
-description: Class for creating, reading, and deleting browser Cookies.
-
-license: MIT-style license.
-
-credits:
-- Based on the functions by Peter-Paul Koch (http://quirksmode.org).
-
-requires:
-- /Options
-
-provides: [Cookie]
-
-...
-*/
-
-var Cookie = new Class({
-
- Implements: Options,
-
- options: {
- path: false,
- domain: false,
- duration: false,
- secure: false,
- document: document
- },
-
- initialize: function(key, options){
- this.key = key;
- this.setOptions(options);
- },
-
- write: function(value){
- value = encodeURIComponent(value);
- if (this.options.domain) value += '; domain=' + this.options.domain;
- if (this.options.path) value += '; path=' + this.options.path;
- if (this.options.duration){
- var date = new Date();
- date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);
- value += '; expires=' + date.toGMTString();
- }
- if (this.options.secure) value += '; secure';
- this.options.document.cookie = this.key + '=' + value;
- return this;
- },
-
- read: function(){
- var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');
- return (value) ? decodeURIComponent(value[1]) : null;
- },
-
- dispose: function(){
- new Cookie(this.key, $merge(this.options, {duration: -1})).write('');
- return this;
- }
-
-});
-
-Cookie.write = function(key, value, options){
- return new Cookie(key, options).write(value);
-};
-
-Cookie.read = function(key){
- return new Cookie(key).read();
-};
-
-Cookie.dispose = function(key, options){
- return new Cookie(key, options).dispose();
-};
-
-
-/*
----
-
-script: Swiff.js
-
-description: Wrapper for embedding SWF movies. Supports External Interface Communication.
-
-license: MIT-style license.
-
-credits:
-- Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.
-
-requires:
-- /Options
-- /$util
-
-provides: [Swiff]
-
-...
-*/
-
-var Swiff = new Class({
-
- Implements: [Options],
-
- options: {
- id: null,
- height: 1,
- width: 1,
- container: null,
- properties: {},
- params: {
- quality: 'high',
- allowScriptAccess: 'always',
- wMode: 'transparent',
- swLiveConnect: true
- },
- callBacks: {},
- vars: {}
- },
-
- toElement: function(){
- return this.object;
- },
-
- initialize: function(path, options){
- this.instance = 'Swiff_' + $time();
-
- this.setOptions(options);
- options = this.options;
- var id = this.id = options.id || this.instance;
- var container = document.id(options.container);
-
- Swiff.CallBacks[this.instance] = {};
-
- var params = options.params, vars = options.vars, callBacks = options.callBacks;
- var properties = $extend({height: options.height, width: options.width}, options.properties);
-
- var self = this;
-
- for (var callBack in callBacks){
- Swiff.CallBacks[this.instance][callBack] = (function(option){
- return function(){
- return option.apply(self.object, arguments);
- };
- })(callBacks[callBack]);
- vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
- }
-
- params.flashVars = Hash.toQueryString(vars);
- if (Browser.Engine.trident){
- properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
- params.movie = path;
- } else {
- properties.type = 'application/x-shockwave-flash';
- properties.data = path;
- }
- var build = '<object id="' + id + '"';
- for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
- build += '>';
- for (var param in params){
- if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
- }
- build += '</object>';
- this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
- },
-
- replaces: function(element){
- element = document.id(element, true);
- element.parentNode.replaceChild(this.toElement(), element);
- return this;
- },
-
- inject: function(element){
- document.id(element, true).appendChild(this.toElement());
- return this;
- },
-
- remote: function(){
- return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));
- }
-
-});
-
-Swiff.CallBacks = {};
-
-Swiff.remote = function(obj, fn){
- var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');
- return eval(rs);
-};
-
-
-/*
----
-
-script: Fx.js
-
-description: Contains the basic animation logic to be extended by all other Fx Classes.
-
-license: MIT-style license.
-
-requires:
-- /Chain
-- /Events
-- /Options
-
-provides: [Fx]
-
-...
-*/
-
-var Fx = new Class({
-
- Implements: [Chain, Events, Options],
-
- options: {
- /*
- onStart: $empty,
- onCancel: $empty,
- onComplete: $empty,
- */
- fps: 50,
- unit: false,
- duration: 500,
- link: 'ignore'
- },
-
- initialize: function(options){
- this.subject = this.subject || this;
- this.setOptions(options);
- this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();
- var wait = this.options.wait;
- if (wait === false) this.options.link = 'cancel';
- },
-
- getTransition: function(){
- return function(p){
- return -(Math.cos(Math.PI * p) - 1) / 2;
- };
- },
-
- step: function(){
- var time = $time();
- if (time < this.time + this.options.duration){
- var delta = this.transition((time - this.time) / this.options.duration);
- this.set(this.compute(this.from, this.to, delta));
- } else {
- this.set(this.compute(this.from, this.to, 1));
- this.complete();
- }
- },
-
- set: function(now){
- return now;
- },
-
- compute: function(from, to, delta){
- return Fx.compute(from, to, delta);
- },
-
- check: function(){
- if (!this.timer) return true;
- switch (this.options.link){
- case 'cancel': this.cancel(); return true;
- case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
- }
- return false;
- },
-
- start: function(from, to){
- if (!this.check(from, to)) return this;
- this.from = from;
- this.to = to;
- this.time = 0;
- this.transition = this.getTransition();
- this.startTimer();
- this.onStart();
- return this;
- },
-
- complete: function(){
- if (this.stopTimer()) this.onComplete();
- return this;
- },
-
- cancel: function(){
- if (this.stopTimer()) this.onCancel();
- return this;
- },
-
- onStart: function(){
- this.fireEvent('start', this.subject);
- },
-
- onComplete: function(){
- this.fireEvent('complete', this.subject);
- if (!this.callChain()) this.fireEvent('chainComplete', this.subject);
- },
-
- onCancel: function(){
- this.fireEvent('cancel', this.subject).clearChain();
- },
-
- pause: function(){
- this.stopTimer();
- return this;
- },
-
- resume: function(){
- this.startTimer();
- return this;
- },
-
- stopTimer: function(){
- if (!this.timer) return false;
- this.time = $time() - this.time;
- this.timer = $clear(this.timer);
- return true;
- },
-
- startTimer: function(){
- if (this.timer) return false;
- this.time = $time() - this.time;
- this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
- return true;
- }
-
-});
-
-Fx.compute = function(from, to, delta){
- return (to - from) * delta + from;
-};
-
-Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};
-
-
-/*
----
-
-script: Fx.CSS.js
-
-description: Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.
-
-license: MIT-style license.
-
-requires:
-- /Fx
-- /Element.Style
-
-provides: [Fx.CSS]
-
-...
-*/
-
-Fx.CSS = new Class({
-
- Extends: Fx,
-
- //prepares the base from/to object
-
- prepare: function(element, property, values){
- values = $splat(values);
- var values1 = values[1];
- if (!$chk(values1)){
- values[1] = values[0];
- values[0] = element.getStyle(property);
- }
- var parsed = values.map(this.parse);
- return {from: parsed[0], to: parsed[1]};
- },
-
- //parses a value into an array
-
- parse: function(value){
- value = $lambda(value)();
- value = (typeof value == 'string') ? value.split(' ') : $splat(value);
- return value.map(function(val){
- val = String(val);
- var found = false;
- Fx.CSS.Parsers.each(function(parser, key){
- if (found) return;
- var parsed = parser.parse(val);
- if ($chk(parsed)) found = {value: parsed, parser: parser};
- });
- found = found || {value: val, parser: Fx.CSS.Parsers.String};
- return found;
- });
- },
-
- //computes by a from and to prepared objects, using their parsers.
-
- compute: function(from, to, delta){
- var computed = [];
- (Math.min(from.length, to.length)).times(function(i){
- computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});
- });
- computed.$family = {name: 'fx:css:value'};
- return computed;
- },
-
- //serves the value as settable
-
- serve: function(value, unit){
- if ($type(value) != 'fx:css:value') value = this.parse(value);
- var returned = [];
- value.each(function(bit){
- returned = returned.concat(bit.parser.serve(bit.value, unit));
- });
- return returned;
- },
-
- //renders the change to an element
-
- render: function(element, property, value, unit){
- element.setStyle(property, this.serve(value, unit));
- },
-
- //searches inside the page css to find the values for a selector
-
- search: function(selector){
- if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];
- var to = {};
- Array.each(document.styleSheets, function(sheet, j){
- var href = sheet.href;
- if (href && href.contains('://') && !href.contains(document.domain)) return;
- var rules = sheet.rules || sheet.cssRules;
- Array.each(rules, function(rule, i){
- if (!rule.style) return;
- var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){
- return m.toLowerCase();
- }) : null;
- if (!selectorText || !selectorText.test('^' + selector + '$')) return;
- Element.Styles.each(function(value, style){
- if (!rule.style[style] || Element.ShortStyles[style]) return;
- value = String(rule.style[style]);
- to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;
- });
- });
- });
- return Fx.CSS.Cache[selector] = to;
- }
-
-});
-
-Fx.CSS.Cache = {};
-
-Fx.CSS.Parsers = new Hash({
-
- Color: {
- parse: function(value){
- if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);
- return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;
- },
- compute: function(from, to, delta){
- return from.map(function(value, i){
- return Math.round(Fx.compute(from[i], to[i], delta));
- });
- },
- serve: function(value){
- return value.map(Number);
- }
- },
-
- Number: {
- parse: parseFloat,
- compute: Fx.compute,
- serve: function(value, unit){
- return (unit) ? value + unit : value;
- }
- },
-
- String: {
- parse: $lambda(false),
- compute: $arguments(1),
- serve: $arguments(0)
- }
-
-});
-
-
-/*
----
-
-script: Fx.Tween.js
-
-description: Formerly Fx.Style, effect to transition any CSS property for an element.
-
-license: MIT-style license.
-
-requires:
-- /Fx.CSS
-
-provides: [Fx.Tween, Element.fade, Element.highlight]
-
-...
-*/
-
-Fx.Tween = new Class({
-
- Extends: Fx.CSS,
-
- initialize: function(element, options){
- this.element = this.subject = document.id(element);
- this.parent(options);
- },
-
- set: function(property, now){
- if (arguments.length == 1){
- now = property;
- property = this.property || this.options.property;
- }
- this.render(this.element, property, now, this.options.unit);
- return this;
- },
-
- start: function(property, from, to){
- if (!this.check(property, from, to)) return this;
- var args = Array.flatten(arguments);
- this.property = this.options.property || args.shift();
- var parsed = this.prepare(this.element, this.property, args);
- return this.parent(parsed.from, parsed.to);
- }
-
-});
-
-Element.Properties.tween = {
-
- set: function(options){
- var tween = this.retrieve('tween');
- if (tween) tween.cancel();
- return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));
- },
-
- get: function(options){
- if (options || !this.retrieve('tween')){
- if (options || !this.retrieve('tween:options')) this.set('tween', options);
- this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));
- }
- return this.retrieve('tween');
- }
-
-};
-
-Element.implement({
-
- tween: function(property, from, to){
- this.get('tween').start(arguments);
- return this;
- },
-
- fade: function(how){
- var fade = this.get('tween'), o = 'opacity', toggle;
- how = $pick(how, 'toggle');
- switch (how){
- case 'in': fade.start(o, 1); break;
- case 'out': fade.start(o, 0); break;
- case 'show': fade.set(o, 1); break;
- case 'hide': fade.set(o, 0); break;
- case 'toggle':
- var flag = this.retrieve('fade:flag', this.get('opacity') == 1);
- fade.start(o, (flag) ? 0 : 1);
- this.store('fade:flag', !flag);
- toggle = true;
- break;
- default: fade.start(o, arguments);
- }
- if (!toggle) this.eliminate('fade:flag');
- return this;
- },
-
- highlight: function(start, end){
- if (!end){
- end = this.retrieve('highlight:original', this.getStyle('background-color'));
- end = (end == 'transparent') ? '#fff' : end;
- }
- var tween = this.get('tween');
- tween.start('background-color', start || '#ffff88', end).chain(function(){
- this.setStyle('background-color', this.retrieve('highlight:original'));
- tween.callChain();
- }.bind(this));
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Fx.Morph.js
-
-description: Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.
-
-license: MIT-style license.
-
-requires:
-- /Fx.CSS
-
-provides: [Fx.Morph]
-
-...
-*/
-
-Fx.Morph = new Class({
-
- Extends: Fx.CSS,
-
- initialize: function(element, options){
- this.element = this.subject = document.id(element);
- this.parent(options);
- },
-
- set: function(now){
- if (typeof now == 'string') now = this.search(now);
- for (var p in now) this.render(this.element, p, now[p], this.options.unit);
- return this;
- },
-
- compute: function(from, to, delta){
- var now = {};
- for (var p in from) now[p] = this.parent(from[p], to[p], delta);
- return now;
- },
-
- start: function(properties){
- if (!this.check(properties)) return this;
- if (typeof properties == 'string') properties = this.search(properties);
- var from = {}, to = {};
- for (var p in properties){
- var parsed = this.prepare(this.element, p, properties[p]);
- from[p] = parsed.from;
- to[p] = parsed.to;
- }
- return this.parent(from, to);
- }
-
-});
-
-Element.Properties.morph = {
-
- set: function(options){
- var morph = this.retrieve('morph');
- if (morph) morph.cancel();
- return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));
- },
-
- get: function(options){
- if (options || !this.retrieve('morph')){
- if (options || !this.retrieve('morph:options')) this.set('morph', options);
- this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));
- }
- return this.retrieve('morph');
- }
-
-};
-
-Element.implement({
-
- morph: function(props){
- this.get('morph').start(props);
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Fx.Transitions.js
-
-description: Contains a set of advanced transitions to be used with any of the Fx Classes.
-
-license: MIT-style license.
-
-credits:
-- Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.
-
-requires:
-- /Fx
-
-provides: [Fx.Transitions]
-
-...
-*/
-
-Fx.implement({
-
- getTransition: function(){
- var trans = this.options.transition || Fx.Transitions.Sine.easeInOut;
- if (typeof trans == 'string'){
- var data = trans.split(':');
- trans = Fx.Transitions;
- trans = trans[data[0]] || trans[data[0].capitalize()];
- if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')];
- }
- return trans;
- }
-
-});
-
-Fx.Transition = function(transition, params){
- params = $splat(params);
- return $extend(transition, {
- easeIn: function(pos){
- return transition(pos, params);
- },
- easeOut: function(pos){
- return 1 - transition(1 - pos, params);
- },
- easeInOut: function(pos){
- return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;
- }
- });
-};
-
-Fx.Transitions = new Hash({
-
- linear: $arguments(0)
-
-});
-
-Fx.Transitions.extend = function(transitions){
- for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);
-};
-
-Fx.Transitions.extend({
-
- Pow: function(p, x){
- return Math.pow(p, x[0] || 6);
- },
-
- Expo: function(p){
- return Math.pow(2, 8 * (p - 1));
- },
-
- Circ: function(p){
- return 1 - Math.sin(Math.acos(p));
- },
-
- Sine: function(p){
- return 1 - Math.sin((1 - p) * Math.PI / 2);
- },
-
- Back: function(p, x){
- x = x[0] || 1.618;
- return Math.pow(p, 2) * ((x + 1) * p - x);
- },
-
- Bounce: function(p){
- var value;
- for (var a = 0, b = 1; 1; a += b, b /= 2){
- if (p >= (7 - 4 * a) / 11){
- value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2);
- break;
- }
- }
- return value;
- },
-
- Elastic: function(p, x){
- return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);
- }
-
-});
-
-['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
- Fx.Transitions[transition] = new Fx.Transition(function(p){
- return Math.pow(p, [i + 2]);
- });
-});
-
-
-/*
----
-
-script: Request.js
-
-description: Powerful all purpose Request Class. Uses XMLHTTPRequest.
-
-license: MIT-style license.
-
-requires:
-- /Element
-- /Chain
-- /Events
-- /Options
-- /Browser
-
-provides: [Request]
-
-...
-*/
-
-var Request = new Class({
-
- Implements: [Chain, Events, Options],
-
- options: {/*
- onRequest: $empty,
- onComplete: $empty,
- onCancel: $empty,
- onSuccess: $empty,
- onFailure: $empty,
- onException: $empty,*/
- url: '',
- data: '',
- headers: {
- 'X-Requested-With': 'XMLHttpRequest',
- 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
- },
- async: true,
- format: false,
- method: 'post',
- link: 'ignore',
- isSuccess: null,
- emulation: true,
- urlEncoded: true,
- encoding: 'utf-8',
- evalScripts: false,
- evalResponse: false,
- noCache: false
- },
-
- initialize: function(options){
- this.xhr = new Browser.Request();
- this.setOptions(options);
- this.options.isSuccess = this.options.isSuccess || this.isSuccess;
- this.headers = new Hash(this.options.headers);
- },
-
- onStateChange: function(){
- if (this.xhr.readyState != 4 || !this.running) return;
- this.running = false;
- this.status = 0;
- $try(function(){
- this.status = this.xhr.status;
- }.bind(this));
- this.xhr.onreadystatechange = $empty;
- if (this.options.isSuccess.call(this, this.status)){
- this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};
- this.success(this.response.text, this.response.xml);
- } else {
- this.response = {text: null, xml: null};
- this.failure();
- }
- },
-
- isSuccess: function(){
- return ((this.status >= 200) && (this.status < 300));
- },
-
- processScripts: function(text){
- if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);
- return text.stripScripts(this.options.evalScripts);
- },
-
- success: function(text, xml){
- this.onSuccess(this.processScripts(text), xml);
- },
-
- onSuccess: function(){
- this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
- },
-
- failure: function(){
- this.onFailure();
- },
-
- onFailure: function(){
- this.fireEvent('complete').fireEvent('failure', this.xhr);
- },
-
- setHeader: function(name, value){
- this.headers.set(name, value);
- return this;
- },
-
- getHeader: function(name){
- return $try(function(){
- return this.xhr.getResponseHeader(name);
- }.bind(this));
- },
-
- check: function(){
- if (!this.running) return true;
- switch (this.options.link){
- case 'cancel': this.cancel(); return true;
- case 'chain': this.chain(this.caller.bind(this, arguments)); return false;
- }
- return false;
- },
-
- send: function(options){
- if (!this.check(options)) return this;
- this.running = true;
-
- var type = $type(options);
- if (type == 'string' || type == 'element') options = {data: options};
-
- var old = this.options;
- options = $extend({data: old.data, url: old.url, method: old.method}, options);
- var data = options.data, url = String(options.url), method = options.method.toLowerCase();
-
- switch ($type(data)){
- case 'element': data = document.id(data).toQueryString(); break;
- case 'object': case 'hash': data = Hash.toQueryString(data);
- }
-
- if (this.options.format){
- var format = 'format=' + this.options.format;
- data = (data) ? format + '&' + data : format;
- }
-
- if (this.options.emulation && !['get', 'post'].contains(method)){
- var _method = '_method=' + method;
- data = (data) ? _method + '&' + data : _method;
- method = 'post';
- }
-
- if (this.options.urlEncoded && method == 'post'){
- var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';
- this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);
- }
-
- if (this.options.noCache){
- var noCache = 'noCache=' + new Date().getTime();
- data = (data) ? noCache + '&' + data : noCache;
- }
-
- var trimPosition = url.lastIndexOf('/');
- if (trimPosition > -1 && (trimPosition = url.indexOf('#')) > -1) url = url.substr(0, trimPosition);
-
- if (data && method == 'get'){
- url = url + (url.contains('?') ? '&' : '?') + data;
- data = null;
- }
-
- this.xhr.open(method.toUpperCase(), url, this.options.async);
-
- this.xhr.onreadystatechange = this.onStateChange.bind(this);
-
- this.headers.each(function(value, key){
- try {
- this.xhr.setRequestHeader(key, value);
- } catch (e){
- this.fireEvent('exception', [key, value]);
- }
- }, this);
-
- this.fireEvent('request');
- this.xhr.send(data);
- if (!this.options.async) this.onStateChange();
- return this;
- },
-
- cancel: function(){
- if (!this.running) return this;
- this.running = false;
- this.xhr.abort();
- this.xhr.onreadystatechange = $empty;
- this.xhr = new Browser.Request();
- this.fireEvent('cancel');
- return this;
- }
-
-});
-
-(function(){
-
-var methods = {};
-['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){
- methods[method] = function(){
- var params = Array.link(arguments, {url: String.type, data: $defined});
- return this.send($extend(params, {method: method}));
- };
-});
-
-Request.implement(methods);
-
-})();
-
-Element.Properties.send = {
-
- set: function(options){
- var send = this.retrieve('send');
- if (send) send.cancel();
- return this.eliminate('send').store('send:options', $extend({
- data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')
- }, options));
- },
-
- get: function(options){
- if (options || !this.retrieve('send')){
- if (options || !this.retrieve('send:options')) this.set('send', options);
- this.store('send', new Request(this.retrieve('send:options')));
- }
- return this.retrieve('send');
- }
-
-};
-
-Element.implement({
-
- send: function(url){
- var sender = this.get('send');
- sender.send({data: this, url: url || sender.options.url});
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Request.HTML.js
-
-description: Extends the basic Request Class with additional methods for interacting with HTML responses.
-
-license: MIT-style license.
-
-requires:
-- /Request
-- /Element
-
-provides: [Request.HTML]
-
-...
-*/
-
-Request.HTML = new Class({
-
- Extends: Request,
-
- options: {
- update: false,
- append: false,
- evalScripts: true,
- filter: false
- },
-
- processHTML: function(text){
- var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
- text = (match) ? match[1] : text;
-
- var container = new Element('div');
-
- return $try(function(){
- var root = '<root>' + text + '</root>', doc;
- if (Browser.Engine.trident){
- doc = new ActiveXObject('Microsoft.XMLDOM');
- doc.async = false;
- doc.loadXML(root);
- } else {
- doc = new DOMParser().parseFromString(root, 'text/xml');
- }
- root = doc.getElementsByTagName('root')[0];
- if (!root) return null;
- for (var i = 0, k = root.childNodes.length; i < k; i++){
- var child = Element.clone(root.childNodes[i], true, true);
- if (child) container.grab(child);
- }
- return container;
- }) || container.set('html', text);
- },
-
- success: function(text){
- var options = this.options, response = this.response;
-
- response.html = text.stripScripts(function(script){
- response.javascript = script;
- });
-
- var temp = this.processHTML(response.html);
-
- response.tree = temp.childNodes;
- response.elements = temp.getElements('*');
-
- if (options.filter) response.tree = response.elements.filter(options.filter);
- if (options.update) document.id(options.update).empty().set('html', response.html);
- else if (options.append) document.id(options.append).adopt(temp.getChildren());
- if (options.evalScripts) $exec(response.javascript);
-
- this.onSuccess(response.tree, response.elements, response.html, response.javascript);
- }
-
-});
-
-Element.Properties.load = {
-
- set: function(options){
- var load = this.retrieve('load');
- if (load) load.cancel();
- return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));
- },
-
- get: function(options){
- if (options || ! this.retrieve('load')){
- if (options || !this.retrieve('load:options')) this.set('load', options);
- this.store('load', new Request.HTML(this.retrieve('load:options')));
- }
- return this.retrieve('load');
- }
-
-};
-
-Element.implement({
-
- load: function(){
- this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));
- return this;
- }
-
-});
-
-
-/*
----
-
-script: Request.JSON.js
-
-description: Extends the basic Request Class with additional methods for sending and receiving JSON data.
-
-license: MIT-style license.
-
-requires:
-- /Request JSON
-
-provides: [Request.HTML]
-
-...
-*/
-
-Request.JSON = new Class({
-
- Extends: Request,
-
- options: {
- secure: true
- },
-
- initialize: function(options){
- this.parent(options);
- this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});
- },
-
- success: function(text){
- this.response.json = JSON.decode(text, this.options.secure);
- this.onSuccess(this.response.json, text);
- }
-
-});
Removed: zorg/trunk/lnt/viewer/resources/popup.js
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/resources/popup.js?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/resources/popup.js (original)
+++ zorg/trunk/lnt/viewer/resources/popup.js (removed)
@@ -1,155 +0,0 @@
-function ShowPop(id)
-{
- if (document.getElementById)
- {
- document.getElementById(id).style.visibility = " visible";
- }
- else if (document.all)
- {
- document.all[id].style.visibility = " visible";
- }
- else if (document.layers)
- {
- document.layers[id].style.visibility = " visible";
- }
-}
-
-
-
-
-
-
-function HidePop(id)
-{
- if (document.getElementById)
- {
- document.getElementById(id).style.visibility = " hidden";
- }
- /*else if (document.all)
- {
- document.all[id].style.visibility = " hidden";
- }
- else if (document.layers)
- {
- document.layers[id].style.visibility = " hidden";
- }*/
-}
-
-
-
-function TogglePop(id)
-{
- if (document.getElementById)
- {
- if(document.getElementById(id).style.visibility == "visible"){
- document.getElementById(id).style.visibility = "hidden";
- }
- else{
- document.getElementById(id).style.visibility = "visible";
- }
- }
- else if (document.all)
- {
- if(document.all[id].style.visibility == "visible"){
- document.all[id].style.visibility = "hidden";
- }
- else{
- document.all[id].style.visibility = "visible";
- }
- }
- else if (document.layers)
- {
- if(document.layers[id].style.visibility == "visible"){
- document.layers[id].style.visibility = "hidden";
- }
- else{
- document.layers[id].style.visibility = "visible";
- }
- }
-}
-
-
-function toggleLayer(whichLayer)
-{
- if (document.getElementById)
- {
- // this is the way the standards work
- var style2 = document.getElementById(whichLayer).style;
- style2.display = style2.display? "":"none";
- var link = document.getElementById(whichLayer+"_").innerHTML;
- if(link.indexOf("(+)") >= 0){
- document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
- }
- else{
- document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
- }
- }//end if
- else if (document.all)
- {
- // this is the way old msie versions work
- var style2 = document.all[whichLayer].style;
- style2.display = style2.display? "":"none";
- var link = document.all[wwhichLayer+"_"].innerHTML;
- if(link.indexOf("(+)") >= 0){
- document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
- }
- else{
- document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
- }
- }
- else if (document.layers)
- {
- // this is the way nn4 works
- var style2 = document.layers[whichLayer].style;
- style2.display = style2.display? "":"none";
- var link = document.layers[whichLayer+"_"].innerHTML;
- if(link.indexOf("(+)") >= 0){
- document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
- }
- else{
- document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
- }
- }
-}//end function
-
-var checkflag="false";
-function check(field) {
- if (checkflag == "false") {
- for (i = 0; i < field.length; i++) {
- field[i].checked = true;
- }
- checkflag = "true";
- return "Uncheck all";
- }
- else {
- for (i = 0; i < field.length; i++) {
- if(field[i].type == 'checkbox'){
- field[i].checked = false;
- }
- }
- checkflag = "false";
- return "Check all";
- }
-}
-
-function show_hide_column(tableName, columns) {
- // Let's be clear hear, I have no idea how to write portable
- // JavaScript. This works in Safari, yo.
- var event = window.event;
- var cb = event.target;
-
- var style = cb.checked ? "table-cell" : "none";
-
- var tbl = document.getElementById(tableName);
- var rows = tbl.getElementsByTagName('tr');
-
- for (var row = 0; row < rows.length; ++row) {
- var cells = rows[row].getElementsByTagName('td');
-
- if (cells.length == 0)
- cells = rows[row].getElementsByTagName('th');
-
- for (var i = 0; i < columns.length; ++i)
- cells[columns[i]].style.display = style;
- }
-}
Removed: zorg/trunk/lnt/viewer/resources/sorttable.js
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/resources/sorttable.js?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/resources/sorttable.js (original)
+++ zorg/trunk/lnt/viewer/resources/sorttable.js (removed)
@@ -1,500 +0,0 @@
-/*
- SortTable
- version 2
- 7th April 2007
- Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
-
- Instructions:
- Download this file
- Add <script src="sorttable.js"></script> to your HTML
- Add class="sortable" to any table you'd like to make sortable
- Click on the headers to sort
-
- Thanks to many, many people for contributions and suggestions.
- Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
- This basically means: do what you want with it.
-*/
-
-
-var stIsIE = /*@cc_on!@*/false;
-
-sorttable = {
- init: function() {
- // quit if this function has already been called
- if (arguments.callee.done) return;
- // flag this function so we don't do the same thing twice
- arguments.callee.done = true;
- // kill the timer
- if (_timer) clearInterval(_timer);
-
- if (!document.createElement || !document.getElementsByTagName) return;
-
- sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
-
- forEach(document.getElementsByTagName('table'), function(table) {
- if (table.className.search(/\bsortable\b/) != -1) {
- sorttable.makeSortable(table);
- }
- });
-
- },
-
- makeSortable: function(table) {
- if (table.getElementsByTagName('thead').length == 0) {
- // table doesn't have a tHead. Since it should have, create one and
- // put the first table row in it.
- the = document.createElement('thead');
- the.appendChild(table.rows[0]);
- table.insertBefore(the,table.firstChild);
- }
- // Safari doesn't support table.tHead, sigh
- if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
-
- //DWD: if (table.tHead.rows.length != 1) return; // can't cope with two header rows
-
-
- // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
- // "total" rows, for example). This is B&R, since what you're supposed
- // to do is put them in a tfoot. So, if there are sortbottom rows,
- // for backwards compatibility, move them to tfoot (creating it if needed).
- sortbottomrows = [];
- for (var i=0; i<table.rows.length; i++) {
- if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
- sortbottomrows[sortbottomrows.length] = table.rows[i];
- }
- }
- if (sortbottomrows) {
- if (table.tFoot == null) {
- // table doesn't have a tfoot. Create one.
- tfo = document.createElement('tfoot');
- table.appendChild(tfo);
- }
- for (var i=0; i<sortbottomrows.length; i++) {
- tfo.appendChild(sortbottomrows[i]);
- }
- delete sortbottomrows;
- }
-
- // work through each column and calculate its type
- for (var j=0; j<table.tHead.rows.length; j++) {
- headrow = table.tHead.rows[j].cells;
- for (var i=0; i<headrow.length; i++) {
- // manually override the type with a sorttable_type attribute
- if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
- mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
- if (mtch) { override = mtch[1]; }
- if (mtch && typeof sorttable["sort_"+override] == 'function') {
- headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
- } else {
- headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
- }
- // make it clickable to sort
- var index = i;
- if (headrow[i].getAttribute("sorttable_index") != null)
- index = headrow[i].getAttribute("sorttable_index");
-
- headrow[i].sorttable_columnindex = index;
- headrow[i].sorttable_tbody = table.tBodies[0];
- dean_addEvent(headrow[i],"click", function(e) {
-
- if (this.className.search(/\bsorttable_sorted\b/) != -1) {
- // if we're already sorted by this column, just
- // reverse the table, which is quicker
- sorttable.reverse(this.sorttable_tbody);
- this.className = this.className.replace('sorttable_sorted',
- 'sorttable_sorted_reverse');
- this.removeChild(document.getElementById('sorttable_sortfwdind'));
- sortrevind = document.createElement('span');
- sortrevind.id = "sorttable_sortrevind";
- sortrevind.innerHTML = stIsIE ? ' <font face="webdings">5</font>' : ' ▴';
- this.appendChild(sortrevind);
- return;
- }
- if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
- // if we're already sorted by this column in reverse, just
- // re-reverse the table, which is quicker
- sorttable.reverse(this.sorttable_tbody);
- this.className = this.className.replace('sorttable_sorted_reverse',
- 'sorttable_sorted');
- this.removeChild(document.getElementById('sorttable_sortrevind'));
- sortfwdind = document.createElement('span');
- sortfwdind.id = "sorttable_sortfwdind";
- sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
- this.appendChild(sortfwdind);
- return;
- }
-
- // remove sorttable_sorted classes
- forEach(table.tHead.rows, function(row) {
- forEach(row.childNodes, function(cell) {
- if (cell.nodeType == 1) { // an element
- cell.className = cell.className.replace('sorttable_sorted_reverse','');
- cell.className = cell.className.replace('sorttable_sorted','');
- }
- })});
- sortfwdind = document.getElementById('sorttable_sortfwdind');
- if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
- sortrevind = document.getElementById('sorttable_sortrevind');
- if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
-
- this.className += ' sorttable_sorted';
- sortfwdind = document.createElement('span');
- sortfwdind.id = "sorttable_sortfwdind";
- sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
- this.appendChild(sortfwdind);
-
- // build an array to sort. This is a Schwartzian transform thing,
- // i.e., we "decorate" each row with the actual sort key,
- // sort based on the sort keys, and then put the rows back in order
- // which is a lot faster because you only do getInnerText once per row
- row_array = [];
- col = this.sorttable_columnindex;
- rows = this.sorttable_tbody.rows;
- for (var j=0; j<rows.length; j++) {
- row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
- }
- /* If you want a stable sort, uncomment the following line */
- //sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
- /* and comment out this one */
- row_array.sort(this.sorttable_sortfunction);
-
- tb = this.sorttable_tbody;
- for (var j=0; j<row_array.length; j++) {
- tb.appendChild(row_array[j][1]);
- }
-
- delete row_array;
- });
- }
- }
- }
- },
-
- guessType: function(table, column) {
- // guess the type of a column based on its first non-blank row
- sortfn = sorttable.sort_alpha;
- for (var i=0; i<table.tBodies[0].rows.length; i++) {
- text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
- if (text != '') {
- if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) {
- return sorttable.sort_numeric;
- }
- // check for a date: dd/mm/yyyy or dd/mm/yy
- // can have / or . or - as separator
- // can be mm/dd as well
- possdate = text.match(sorttable.DATE_RE)
- if (possdate) {
- // looks like a date
- first = parseInt(possdate[1]);
- second = parseInt(possdate[2]);
- if (first > 12) {
- // definitely dd/mm
- return sorttable.sort_ddmm;
- } else if (second > 12) {
- return sorttable.sort_mmdd;
- } else {
- // looks like a date, but we can't tell which, so assume
- // that it's dd/mm (English imperialism!) and keep looking
- sortfn = sorttable.sort_ddmm;
- }
- }
- }
- }
- return sortfn;
- },
-
- getInnerText: function(node) {
- // gets the text we want to use for sorting for a cell.
- // strips leading and trailing whitespace.
- // this is *not* a generic getInnerText function; it's special to sorttable.
- // for example, you can override the cell text with a customkey attribute.
- // it also gets .value for <input> fields.
-
- hasInputs = (typeof node.getElementsByTagName == 'function') &&
- node.getElementsByTagName('input').length;
-
- if (node.getAttribute("sorttable_customkey") != null) {
- return node.getAttribute("sorttable_customkey");
- }
- else if (typeof node.textContent != 'undefined' && !hasInputs) {
- return node.textContent.replace(/^\s+|\s+$/g, '');
- }
- else if (typeof node.innerText != 'undefined' && !hasInputs) {
- return node.innerText.replace(/^\s+|\s+$/g, '');
- }
- else if (typeof node.text != 'undefined' && !hasInputs) {
- return node.text.replace(/^\s+|\s+$/g, '');
- }
- else {
- switch (node.nodeType) {
- case 3:
- if (node.nodeName.toLowerCase() == 'input') {
- return node.value.replace(/^\s+|\s+$/g, '');
- }
- case 4:
- return node.nodeValue.replace(/^\s+|\s+$/g, '');
- break;
- case 1:
- case 11:
- var innerText = '';
- for (var i = 0; i < node.childNodes.length; i++) {
- innerText += sorttable.getInnerText(node.childNodes[i]);
- }
- return innerText.replace(/^\s+|\s+$/g, '');
- break;
- default:
- return '';
- }
- }
- },
-
- reverse: function(tbody) {
- // reverse the rows in a tbody
- newrows = [];
- for (var i=0; i<tbody.rows.length; i++) {
- newrows[newrows.length] = tbody.rows[i];
- }
- for (var i=newrows.length-1; i>=0; i--) {
- tbody.appendChild(newrows[i]);
- }
- delete newrows;
- },
-
- /* sort functions
- each sort function takes two parameters, a and b
- you are comparing a[0] and b[0] */
- sort_numeric: function(a,b) {
- aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
- if (isNaN(aa)) aa = 0;
- bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
- if (isNaN(bb)) bb = 0;
- return aa-bb;
- },
- sort_alpha: function(a,b) {
- if (a[0]==b[0]) return 0;
- if (a[0]<b[0]) return -1;
- return 1;
- },
- sort_ddmm: function(a,b) {
- mtch = a[0].match(sorttable.DATE_RE);
- y = mtch[3]; m = mtch[2]; d = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt1 = y+m+d;
- mtch = b[0].match(sorttable.DATE_RE);
- y = mtch[3]; m = mtch[2]; d = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt2 = y+m+d;
- if (dt1==dt2) return 0;
- if (dt1<dt2) return -1;
- return 1;
- },
- sort_mmdd: function(a,b) {
- mtch = a[0].match(sorttable.DATE_RE);
- y = mtch[3]; d = mtch[2]; m = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt1 = y+m+d;
- mtch = b[0].match(sorttable.DATE_RE);
- y = mtch[3]; d = mtch[2]; m = mtch[1];
- if (m.length == 1) m = '0'+m;
- if (d.length == 1) d = '0'+d;
- dt2 = y+m+d;
- if (dt1==dt2) return 0;
- if (dt1<dt2) return -1;
- return 1;
- },
-
- shaker_sort: function(list, comp_func) {
- // A stable sort function to allow multi-level sorting of data
- // see: http://en.wikipedia.org/wiki/Cocktail_sort
- // thanks to Joseph Nahmias
- var b = 0;
- var t = list.length - 1;
- var swap = true;
-
- while(swap) {
- swap = false;
- for(var i = b; i < t; ++i) {
- if ( comp_func(list[i], list[i+1]) > 0 ) {
- var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
- swap = true;
- }
- } // for
- t--;
-
- if (!swap) break;
-
- for(var i = t; i > b; --i) {
- if ( comp_func(list[i], list[i-1]) < 0 ) {
- var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
- swap = true;
- }
- } // for
- b++;
-
- } // while(swap)
- }
-}
-
-/* ******************************************************************
- Supporting functions: bundled here to avoid depending on a library
- ****************************************************************** */
-
-// Dean Edwards/Matthias Miller/John Resig
-
-/* for Mozilla/Opera9 */
-if (document.addEventListener) {
- document.addEventListener("DOMContentLoaded", sorttable.init, false);
-}
-
-/* for Internet Explorer */
-/*@cc_on @*/
-/*@if (@_win32)
- document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
- var script = document.getElementById("__ie_onload");
- script.onreadystatechange = function() {
- if (this.readyState == "complete") {
- sorttable.init(); // call the onload handler
- }
- };
-/*@end @*/
-
-/* for Safari */
-if (/WebKit/i.test(navigator.userAgent)) { // sniff
- var _timer = setInterval(function() {
- if (/loaded|complete/.test(document.readyState)) {
- sorttable.init(); // call the onload handler
- }
- }, 10);
-}
-
-/* for other browsers */
-window.onload = sorttable.init;
-
-// written by Dean Edwards, 2005
-// with input from Tino Zijdel, Matthias Miller, Diego Perini
-
-// http://dean.edwards.name/weblog/2005/10/add-event/
-
-function dean_addEvent(element, type, handler) {
- if (element.addEventListener) {
- element.addEventListener(type, handler, false);
- } else {
- // assign each event handler a unique ID
- if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
- // create a hash table of event types for the element
- if (!element.events) element.events = {};
- // create a hash table of event handlers for each element/event pair
- var handlers = element.events[type];
- if (!handlers) {
- handlers = element.events[type] = {};
- // store the existing event handler (if there is one)
- if (element["on" + type]) {
- handlers[0] = element["on" + type];
- }
- }
- // store the event handler in the hash table
- handlers[handler.$$guid] = handler;
- // assign a global event handler to do all the work
- element["on" + type] = handleEvent;
- }
-};
-// a counter used to create unique IDs
-dean_addEvent.guid = 1;
-
-function removeEvent(element, type, handler) {
- if (element.removeEventListener) {
- element.removeEventListener(type, handler, false);
- } else {
- // delete the event handler from the hash table
- if (element.events && element.events[type]) {
- delete element.events[type][handler.$$guid];
- }
- }
-};
-
-function handleEvent(event) {
- var returnValue = true;
- // grab the event object (IE uses a global event object)
- event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
- // get a reference to the hash table of event handlers
- var handlers = this.events[event.type];
- // execute each event handler
- for (var i in handlers) {
- this.$$handleEvent = handlers[i];
- if (this.$$handleEvent(event) === false) {
- returnValue = false;
- }
- }
- return returnValue;
-};
-
-function fixEvent(event) {
- // add W3C standard event methods
- event.preventDefault = fixEvent.preventDefault;
- event.stopPropagation = fixEvent.stopPropagation;
- return event;
-};
-fixEvent.preventDefault = function() {
- this.returnValue = false;
-};
-fixEvent.stopPropagation = function() {
- this.cancelBubble = true;
-}
-
-// Dean's forEach: http://dean.edwards.name/base/forEach.js
-/*
- forEach, version 1.0
- Copyright 2006, Dean Edwards
- License: http://www.opensource.org/licenses/mit-license.php
-*/
-
-// array-like enumeration
-if (!Array.forEach) { // mozilla already supports this
- Array.forEach = function(array, block, context) {
- for (var i = 0; i < array.length; i++) {
- block.call(context, array[i], i, array);
- }
- };
-}
-
-// generic enumeration
-Function.prototype.forEach = function(object, block, context) {
- for (var key in object) {
- if (typeof this.prototype[key] == "undefined") {
- block.call(context, object[key], key, object);
- }
- }
-};
-
-// character enumeration
-String.forEach = function(string, block, context) {
- Array.forEach(string.split(""), function(chr, index) {
- block.call(context, chr, index, string);
- });
-};
-
-// globally resolve forEach enumeration
-var forEach = function(object, block, context) {
- if (object) {
- var resolve = Object; // default
- if (object instanceof Function) {
- // functions have a "length" property
- resolve = Function;
- } else if (object.forEach instanceof Function) {
- // the object implements a custom forEach method so use that
- object.forEach(block, context);
- return;
- } else if (typeof object == "string") {
- // the object is a string
- resolve = String;
- } else if (typeof object.length == "number") {
- // the object is array-like
- resolve = Array;
- }
- resolve.forEach(object, block, context);
- }
-};
-
Removed: zorg/trunk/lnt/viewer/resources/style.css
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/resources/style.css?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/resources/style.css (original)
+++ zorg/trunk/lnt/viewer/resources/style.css (removed)
@@ -1,79 +0,0 @@
-.zorg_navheader {
- background-color: #cccccc;
-}
-
-body {
- color:#000000;
- background-color:#ffffff
-}
-
-body {
- font-family: Helvetica, sans-serif;
- font-size:9pt
-}
-
-h1 {
- font-size: 14pt;
-}
-
-h2 {
- font-size: 12pt;
-}
-
-table {
- font-size:9pt
-}
-
-table {
- border-spacing: 0px;
- border: 1px solid black
-}
-
-th, table thead {
- background-color:#eee;
- color:#666666;
- font-weight: bold;
- cursor: default;
- text-align:center;
- font-weight: bold;
- font-family: Verdana;
-}
-
-.W {
- font-size:0px
-}
-
-th, td {
- padding:5px;
- padding-left:8px;
-}
-
-tbody.scrollContent {
- overflow:auto
-}
-
-.hideable {
- border-width:thin;
- border-color:background;
- border-style:solid;
- background: #F8F8FF;
- padding:8px;
-}
-
-/* Nested popups */
-
-.hideable_1 {
- border-width:thin;
- border-color:background;
- border-style:solid;
- background: #F8F8FF;
- padding:8px;
-}
-
-.hideable_2 {
- border-width:thin;
- border-color:background;
- border-style:solid;
- background: #E8E8E8;
- padding:8px;
-}
Removed: zorg/trunk/lnt/viewer/root.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/root.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/root.ptl (original)
+++ zorg/trunk/lnt/viewer/root.ptl (removed)
@@ -1,432 +0,0 @@
-# -*- python -*-
-
-import os
-import re
-import time
-
-import quixote
-import quixote.form
-import quixote.form.css
-from quixote import get_response
-from quixote.directory import Directory, Resolving
-from quixote.util import StaticDirectory
-
-import PerfDB, Util
-from PerfDB import Machine, Run
-
-class RootDirectory(Resolving, Directory):
- _q_exports = ["", "resources", "js", "machines", "runs", "tests",
- "browse", "submitRun", "nightlytest", "zview",
-
- # Redirections,
- "select_db",
-
- ("favicon.ico", "favicon_ico")]
-
- def __init__(self, config, dbName='default', dbInfo=None, pathToRoot="./"):
- self.config = config
- self.dbName = dbName
- self.dbInfo = dbInfo
- if self.dbInfo is None:
- self.dbInfo = config.databases[dbName]
- self.pathToRoot = pathToRoot
- self.db_log = None
-
- def getDB(self):
- db = PerfDB.PerfDB(self.dbInfo.path)
-
- # Enable SQL logging with db_log.
- #
- # FIXME: Conditionalize on an is_production variable.
- request = quixote.get_request()
- if self.db_log is None and request.form.get('db_log'):
- import logging, StringIO
- self.db_log = StringIO.StringIO()
- logger = logging.getLogger("sqlalchemy")
- logger.addHandler(logging.StreamHandler(self.db_log))
- db.db2.engine.echo = True
-
- return db
-
- def getHeader [html] (self, title, pathToRoot,
- addSorttableJS=True,
- addFormCSS=False,
- addPopupJS=False,
- addGraphJS=False,
- addJSScript=None,
- onload=None):
- pathToRoot = os.path.join(self.pathToRoot,
- pathToRoot)
-
- """
- <html>
- <head>
- """
- if addSorttableJS:
- """
- <script src="%s/resources/sorttable.js"></script>
- """ % (pathToRoot,)
- if addPopupJS:
- """
- <script src="%s/resources/popup.js"></script>
- """ % (pathToRoot,)
- if addGraphJS:
- """
- <script src="%s/resources/mootools-1.2.4-core-nc.js"></script>
- <script src="%s/js/View2D.js"></script>
- """ % (pathToRoot,pathToRoot)
- if addJSScript:
- """\
-<script type="text/javascript">
-%s
-</script>
-""" % (addJSScript,)
-
- """
- <link rel="stylesheet" href="%s/resources/style.css" type="text/css" />
- """ % (pathToRoot,)
- if addFormCSS:
- """
- <link rel="stylesheet" href="%s/resources/form.css" type="text/css" />
- """ % (pathToRoot,)
- """
- <link rel="icon" type="image/png" href="%s/favicon.ico">
- <title>%s</title>
- </head>
- """ % (pathToRoot, title)
-
- """\
- <body"""
- if onload:
- """ onload="%s">""" % (onload,)
- else:
- """>"""
-
- # Database selection
- """\
- <div class="zorg_navheader">
- <form method="get" action="%s/select_db">
- <table style="padding:0.1em;" width="100%%">
- <tr>
- <td>
- <strong>
- [%s]
- </strong>
- </td>
- <td style="text-align:right;">
- <strong>Database:</strong>
- <select name="db" onchange="submit()">
- """ % (pathToRoot, self.dbName)
- for name in self.config.databases.keys():
- """\
- <option %s>%s</option>
- """ % (('', 'selected')[name == self.dbName],
- name)
- """\
- </select>
- <input type="submit" value="Go" />
- </td>
- </tr>
- </table>
- </form>
- </div>
- """
-
- def getFooter [html] (self):
- if self.db_log:
- """<hr><h3>SQL Log</h3><pre>%s</pre>""" % self.db_log.getvalue()
-
- current = time.time()
- """
- <hr>
- Server Started: %s<br>
- Generated: %s<br>
- Render Time: %.2fs<br>
- </body>
- </html>
- """ % (time.strftime(str('%Y-%m-%dT%H:%M:%Sz'),
- time.localtime(quixote.get_publisher().create_time)),
- time.strftime(str('%Y-%m-%dT%H:%M:%Sz'),
- time.localtime(current)),
- current - quixote.get_request().start_time)
-
- def _q_index [html] (self):
- self.getHeader("zorg", ".")
-
- """
- <h2>LLVM Testing DB</h2>
- """
-
- # Features
-
- if self.dbInfo.showNightlytest:
- """
- <h3>Nightly Test Results</h3>
- <a href="nightlytest/">Nightly Test</a>
- """
-
- if self.dbInfo.showGeneral:
- """
- <hr>
-
- <h3>General Database Access</h3>
- <p><a href="browse">Browse DB</a>
- <p><a href="submitRun">Submit Run</a>
- """
-
- self.getFooter()
-
- def browse [html] (self):
- self.getHeader("zorg", ".", addSorttableJS=False)
-
- # Get a DB connection
- db = self.getDB()
-
- """
- <h2>LLVM Testing DB</h2>
- """
-
- # List machines
- """
- <h3>Machines</h3>
- <table class="sortable" border=1 cellborder=1>
- <thead>
- <tr>
- <th>Name</th>
- </tr>
- </thead>
- """
- for m in db.machines():
- """
- <tr>
- <td><a href="machines/%d/">%s:%d</a></td>
- </tr>
- """ % (m.id, m.name, m.number)
- """
- </table>
- """
-
- # List runs
- """
- <h3>Run List</h3>
- <table class="sortable" border=1 cellborder=1>
- <thead>
- <tr>
- <th>ID</th>
- <th>Machine</th>
- <th>Start Time</th>
- <th>End Time</th>
- </tr>
- </thead>
- """
- for r,m in db.session.query(Run,Machine).join(Machine):
- """
- <tr>
- <td><a href="runs/%d/">%d</a></td>
- <td><a href="machines/%d/">%s:%d</a></td>
- <td>%s</td>
- <td>%s</td>
- </tr>
- """ % (r.id, r.id,
- r.machine_id, m.name, m.number,
- r.start_time, r.end_time)
- """
- </table>
- """
-
-
- # List tests
- """
- <h3>Test List</h3>
- <table class="sortable" border=1 cellborder=1>
- <thead>
- <tr>
- <th>ID</th>
- <th>Test</th>
- </tr>
- </thead>
- """
- for t in db.tests():
- """
- <tr>
- <td><a href="tests/%d/">%d</a></td>
- <td>%s</td>
- </tr>
- """ % (t.id, t.id, t.name)
- """
- </table>
- """
-
- self.getFooter()
-
- def submitRun(self):
- form = quixote.form.Form(enctype="multipart/form-data")
- form.add(quixote.form.FileWidget, "file",
- title="Input File (plist)", required=True)
- form.add(quixote.form.SingleSelectWidget, "commit",
- title="Commit", value="0",
- options=["0", "1"], required=True)
- form.add_submit("submit", "Submit")
-
- def render [html] ():
- self.getHeader("Submit Run", ".", addFormCSS=1)
- """
- <h1>Submit Runs</h1>
- """
- form.render()
- self.getFooter()
-
- def process():
- import plistlib
- import tempfile
- fileWidget = form.get_widget('file')
- value = fileWidget.parse()
-
- data = value.fp.read()
- value.fp.close()
- prefix = time.strftime("data-%Y-%m-%d_%H-%M-%S")
- fd,path = tempfile.mkstemp(prefix=prefix,
- suffix='.plist',
- dir=self.config.tempDir)
- os.write(fd, data)
- os.close(fd)
-
- # Find the email address for this machine's results.
- toAddress = None
- if isinstance(self.config.ntEmailTo, str):
- toAddress = self.config.ntEmailTo
- else:
- # Find the machine name.
- #
- # FIXME: This is really stupid, we shouldn't load the plist
- # twice just for this.
- import plistlib
- data = plistlib.readPlist(path)
- machineName = data.get('Machine',{}).get('Name')
-
- for pattern,addr in self.config.ntEmailTo:
- if re.match(pattern, machineName):
- toAddress = addr
- break
- else:
- return 1,"","error: unable to match machine name for test results email address!"
-
- # Execute ImportData to actually do the import.
- #
- # FIXME: This is both broken and annoying. We want to do this
- # internally to fix the FIXME above and keep it more readable, we
- # want to serialize imports to keep SQLite happy and avoiding
- # dropping submissions.
- import subprocess
- p = subprocess.Popen([os.path.join(self.config.zorgDir,
- "import/ImportData"),
- "--commit=%s" % form['commit'],
- "--email-on-import=%s" % int(self.config.ntEmailEnabled),
- "--email-base-url=%s/db_%s/nightlytest/" % (self.config.zorgURL,
- self.dbName),
- "--email-host=%s" % self.config.ntEmailHost,
- "--email-from=%s" % self.config.ntEmailFrom,
- "--email-to=%s" % toAddress,
- self.dbInfo.path,
- path],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- stdout,stderr = p.communicate(None)
- res = p.wait()
- stdout += "\nMAILING RESULTS TO: %r\n" % toAddress
- return res,stdout,stderr
-
- def result [plain] ():
- res,stdout,stderr = process()
- if True:
- """\
-STATUS: %s
-
-OUTPUT:
-%s
-ERRORS:
-%s""" % (res, stdout, stderr)
- else:
- self.getHeader("Data Received", "../..")
- """
- <h3>Result</h3>
- %s
- <h3>Output</h3>
- <pre>\n%s</pre>
- <h3>Errors</h3>
- <pre>\n%s</pre>
- </body>
- """ % (res, stdout, stderr)
- self.getFooter()
-
- if not form.is_submitted() or form.has_errors():
- return render()
- return result()
-
- def favicon_ico(self):
- response = get_response()
- response.set_content_type("image/x-icon")
- response.set_expires(days=1)
- return FAVICON
-
- def _q_resolve(self, component):
- if component == 'machines':
- import machines
- return machines.MachinesDirectory(self)
- if component == 'runs':
- import runs
- return runs.RunsDirectory(self)
- if component == 'tests':
- import tests
- return tests.TestsDirectory(self)
- if component == 'nightlytest':
- import nightlytest
- return nightlytest.NightlyTestDirectory(self)
- if component == 'zview':
- from zview import zviewui
- return zviewui.ZViewUI(self)
-
- def _q_lookup(self, component):
- if component.startswith('db_'):
- dbName = component[3:]
- dbInfo = self.config.databases.get(dbName)
- if dbInfo:
- return RootDirectory(self.config, dbName, dbInfo, "../")
-
- def select_db(self):
- request = quixote.get_request()
- dbName = request.form.get('db')
- return quixote.redirect("db_%s/" % (dbName,))
-
- resources = StaticDirectory(os.path.join(os.path.dirname(__file__),
- 'resources'),
- list_directory=True)
- js = StaticDirectory(os.path.join(os.path.dirname(__file__), 'js'),
- list_directory=True)
-
-FAVICON = """\
-AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEA
-AAAAAAD///8AAAD/ALOz/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEAAAAAAAAAAAAAAAAAAgECAQIAAAAAAAAAAAAAAAEA
-AAIBAQIAAAACAQIAAAECAAAAAAIBAQICAQIBAgECAAAAAAAAAAIBAQIAAAECAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=""".decode('base64')
Removed: zorg/trunk/lnt/viewer/runs.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/runs.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/runs.ptl (original)
+++ zorg/trunk/lnt/viewer/runs.ptl (removed)
@@ -1,84 +0,0 @@
-# -*- python -*-
-
-import sys
-from quixote import get_response, redirect
-from quixote.directory import Directory
-from quixote.errors import TraversalError
-
-class RunUI(Directory):
- _q_exports = [""]
-
- def __init__(self, root, idstr):
- self.root = root
- try:
- self.id = int(idstr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
- def _q_index [html] (self):
- # Get a DB conntection
- db = self.root.getDB()
-
- r = db.getRun(self.id)
- m = db.getMachine(r.machine_id)
-
- self.root.getHeader("zorg:run:%d" % self.id, '../..')
-
- """
- <body>
- <h2>Run: %d</h2>
- """ % (r.id)
-
- """
- <table border=1 cellborder=1>
- <tr>
- <th>Machine</th>
- <th>Start Time</th>
- <th>End Time</th>
- </tr>
- </thead>
- <tr>
- <td><a href="../../machines/%d/">%s:%d</a></td>
- <td>%s</td>
- <td>%s</td>
- </tr>
- </table>
- """ % (r.machine_id, m.name, m.number, r.start_time, r.end_time)
-
-
- # Run Info
- """
- <h3>Run Info</h3>
- <table border=1 cellborder=1>
- <tr>
- <th>Key</th>
- <th>Value</th>
- </tr>
- </thead>
- """
- for mi in r.info.values():
- """
- <tr>
- <td>%s</td>
- <td>%s</td>
- </tr>""" % (mi.key, mi.value)
- """
- </table>
- """
-
- self.root.getFooter()
-
-class RunsDirectory(Directory):
- _q_exports = [""]
-
- def __init__(self, root):
- Directory.__init__(self)
- self.root = root
-
- def _q_index [plain] (self):
- """
- run access
- """
-
- def _q_lookup(self, component):
- return RunUI(self.root, component)
Removed: zorg/trunk/lnt/viewer/tests.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/tests.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/tests.ptl (original)
+++ zorg/trunk/lnt/viewer/tests.ptl (removed)
@@ -1,88 +0,0 @@
-# -*- python -*-
-
-import sys
-from quixote import get_response, redirect
-from quixote.directory import Directory
-from quixote.errors import TraversalError
-
-class TestUI(Directory):
- _q_exports = [""]
-
- def __init__(self, root, idstr):
- self.root = root
- try:
- self.id = int(idstr)
- except ValueError, exc:
- raise TraversalError(str(exc))
-
- def _q_index [html] (self):
- # Get a DB conntection
- db = self.root.getDB()
-
- t = db.getTest(self.id)
-
- self.root.getHeader("zorg:test:%d" % self.id, '../..')
-
- """
- <body>
- <h2>Test: %s</h2>
- """ % (t.name,)
-
- # Test info
- """
- <h3>Test Info</h3>
- <table border=1 cellborder=1>
- <tr>
- <th>Key</th>
- <th>Value</th>
- </tr>
- </thead>
- """
- for item in t.info.values():
- """
- <tr>
- <td>%s</td>
- <td>%s</td>
- </tr>""" % (item.key, item.value)
- """
- </table>
- """
-
- # List samples
- """
- <h3>Associated Samples</h3>
- <table class="sortable" border=1 cellborder=1>
- <thead>
- <tr>
- <th>Run ID</th>
- <th>Value</th>
- </tr>
- </thead>
- """
- for s in db.samples(test=t):
- """
- <tr>
- <td><a href="../../runs/%d/">%d</a></td>
- <td>%s</td>
- </tr>
- """ % (s.run_id, s.run_id, s.value)
- """
- </table>
- """
-
- self.root.getFooter()
-
-class TestsDirectory(Directory):
- _q_exports = [""]
-
- def __init__(self, root):
- Directory.__init__(self)
- self.root = root
-
- def _q_index [plain] (self):
- """
- test access
- """
-
- def _q_lookup(self, component):
- return TestUI(self.root, component)
Removed: zorg/trunk/lnt/viewer/wsgi_restart.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/wsgi_restart.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/wsgi_restart.py (original)
+++ zorg/trunk/lnt/viewer/wsgi_restart.py (removed)
@@ -1,115 +0,0 @@
-# This code lifted from the mod_wsgi docs.
-
-import os
-import sys
-import time
-import signal
-import threading
-import atexit
-import Queue
-
-_interval = 1.0
-_times = {}
-_files = []
-
-_running = False
-_queue = Queue.Queue()
-_lock = threading.Lock()
-
-def _restart(path):
- _queue.put(True)
- prefix = 'monitor (pid=%d):' % os.getpid()
- print >> sys.stderr, '%s Change detected to \'%s\'.' % (prefix, path)
- print >> sys.stderr, '%s Triggering process restart.' % prefix
- os.kill(os.getpid(), signal.SIGINT)
-
-def _modified(path):
- try:
- # If path doesn't denote a file and were previously
- # tracking it, then it has been removed or the file type
- # has changed so force a restart. If not previously
- # tracking the file then we can ignore it as probably
- # pseudo reference such as when file extracted from a
- # collection of modules contained in a zip file.
-
- if not os.path.isfile(path):
- return path in _times
-
- # Check for when file last modified.
-
- mtime = os.stat(path).st_mtime
- if path not in _times:
- _times[path] = mtime
-
- # Force restart when modification time has changed, even
- # if time now older, as that could indicate older file
- # has been restored.
-
- if mtime != _times[path]:
- return True
- except:
- # If any exception occured, likely that file has been
- # been removed just before stat(), so force a restart.
-
- return True
-
- return False
-
-def _monitor():
- while 1:
- # Check modification times on all files in sys.modules.
-
- for module in sys.modules.values():
- if not hasattr(module, '__file__'):
- continue
- path = getattr(module, '__file__')
- if not path:
- continue
- if os.path.splitext(path)[1] in ['.pyc', '.pyo', '.pyd']:
- path = path[:-1]
-
- if _modified(path):
- return _restart(path)
-
- # Check modification times on files which have
- # specifically been registered for monitoring.
-
- for path in _files:
- if _modified(path):
- return _restart(path)
-
- # Go to sleep for specified interval.
-
- try:
- return _queue.get(timeout=_interval)
- except:
- pass
-
-_thread = threading.Thread(target=_monitor)
-_thread.setDaemon(True)
-
-def _exiting():
- try:
- _queue.put(True)
- except:
- pass
- _thread.join()
-
-atexit.register(_exiting)
-
-def track(path):
- if not path in _files:
- _files.append(path)
-
-def start(interval=1.0):
- global _interval
- if interval < _interval:
- _interval = interval
-
- global _running
- _lock.acquire()
- if not _running:
- prefix = 'monitor (pid=%d):' % os.getpid()
- print >> sys.stderr, '%s Starting change monitor.' % prefix
- _running = True
- _thread.start()
Removed: zorg/trunk/lnt/viewer/zorg.cfg.sample
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/zorg.cfg.sample?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/zorg.cfg.sample (original)
+++ zorg/trunk/lnt/viewer/zorg.cfg.sample (removed)
@@ -1,46 +0,0 @@
-# -*- Python -*-
-
-# LNT (aka Zorg) configuration file
-#
-# Paths are resolved relative to this file.
-
-# Path to the LNT root.
-zorg = ".."
-
-# Path to the LNT server.
-zorgURL = "http://llvm.org/perf/"
-
-# The list of available databases, and their properties. At a minimum, there
-# should be a 'default' entry for the default database.
-databases = {
- 'default' : { 'path' : '../data/default.db',
- 'showNightlytest' : 1 },
- 'test' : { 'path' : '../data/test.db',
- 'showNightlytest' : 1,
- 'showGeneral' : 1 },
- 'nt' : { 'path' : '../data/nt_internal.db',
- 'showNightlytest' : 1 },
- 'nt_mysql' : { 'path' : 'mysql://root:admin@localhost/nt_internal',
- 'showNightlytest' : 1 },
- }
-
-# The LNT email configuration.
-#
-# The 'to' field can be either a single email address, or a list of
-# (regular-expression, address) pairs. In the latter form, the machine name of
-# the submitted results is matched against the regular expressions to determine
-# which email address to use for the results.
-nt_emailer = {
- 'enabled' : False,
- 'host' : "llvm.org",
- 'from' : "lnt at llvm.org",
-
- # This is a list of (filter-regexp, address) pairs -- it is evaluated in
- # order based on the machine name. This can be used to dispatch different
- # reports to different email address.
- 'to' : [(".*", "llvm-testresults at cs.uiuc.edu")],
- }
-
-# Enable automatic restart using the wsgi_restart module; this should be off in
-# a production environment.
-wsgi_restart = False
Removed: zorg/trunk/lnt/viewer/zorg.cgi
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/zorg.cgi?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/zorg.cgi (original)
+++ zorg/trunk/lnt/viewer/zorg.cgi (removed)
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# -*- Python -*-
-
-import sys
-import os
-
-# These were just some local hacks I used at some point to enable testing with
-# MySQL. We were running afoul of cimport issues, I think. Revisit when we care
-# about MySQL.
-if 0:
- os.environ['PATH'] += ':/usr/local/mysql/bin'
-
- os.environ['PYTHON_EGG_CACHE'] = '/tmp'
- import MySQLdb
-
- import PerfDB
- db = PerfDB.PerfDB("mysql://root:admin@localhost/nt_internal")
- from PerfDB import Machine
- q = db.session.query(Machine.name).distinct().order_by(Machine.name)
- for i in q[:1]:
- break
-
-def create_publisher():
- import warnings
- warnings.simplefilter("ignore", category=DeprecationWarning)
-
- # We expect the config file to be adjacent to the absolute path of
- # the cgi script.
- configPath = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- "zorg.cfg")
- configData = {}
- exec open(configPath) in configData
-
- # Find the zorg installation dir.
- zorgDir = os.path.join(os.path.dirname(configPath),
- configData.get('zorg', ''))
- if zorgDir and zorgDir not in sys.path:
- sys.path.append(zorgDir)
-
- from viewer import publisher
- return publisher.create_publisher(configPath, configData)
-
-if __name__ == '__main__':
- from quixote.server import cgi_server
- cgi_server.run(create_publisher)
Removed: zorg/trunk/lnt/viewer/zorg.wsgi
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/zorg.wsgi?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/zorg.wsgi (original)
+++ zorg/trunk/lnt/viewer/zorg.wsgi (removed)
@@ -1,41 +0,0 @@
-#!/usr/bin/env python2.6
-# -*- Python -*-
-
-import sys
-import os
-
-def create_publisher():
- import warnings
- warnings.simplefilter("ignore", category=DeprecationWarning)
-
- # We expect the config file to be adjacent to the absolute path of
- # the cgi script.
- configPath = os.path.join(os.path.dirname(os.path.realpath(__file__)),
- "zorg.cfg")
- configData = {}
- exec open(configPath) in configData
-
- # Find the zorg installation dir.
- zorgDir = os.path.join(os.path.dirname(configPath),
- configData.get('zorg', ''))
- if zorgDir and zorgDir not in sys.path:
- sys.path.append(zorgDir)
-
- # Optionally enable auto-restart.
- if configData.get('wsgiAutoRestart', 'True'):
- from viewer import wsgi_restart
- wsgi_restart.track(configPath)
- wsgi_restart.start()
-
- from viewer import publisher
- return publisher.create_publisher(configPath, configData, threaded=True)
-
-from quixote.wsgi import QWIP
-application = QWIP(create_publisher())
-
-if __name__ == '__main__':
- from wsgiref.simple_server import make_server
- print "Running test application."
- print " open http://localhost:8000/"
- httpd = make_server('', 8000, application)
- httpd.serve_forever()
Removed: zorg/trunk/lnt/viewer/zview/__init__.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/zview/__init__.py?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/zview/__init__.py (original)
+++ zorg/trunk/lnt/viewer/zview/__init__.py (removed)
@@ -1 +0,0 @@
-__all__ = []
Removed: zorg/trunk/lnt/viewer/zview/zviewui.ptl
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/lnt/viewer/zview/zviewui.ptl?rev=99116&view=auto
==============================================================================
--- zorg/trunk/lnt/viewer/zview/zviewui.ptl (original)
+++ zorg/trunk/lnt/viewer/zview/zviewui.ptl (removed)
@@ -1,211 +0,0 @@
-from quixote.directory import Directory
-from quixote.html import htmltext
-
-from viewer.PerfDB import Machine, Run, Sample, Test
-from viewer import NTUtil
-
-from sqlalchemy import func
-
-import json
-
-class ZViewUI(Directory):
- _q_exports = ["", "get_machines", "get_tests", "get_test_data",
- "get_test_names"]
-
- def __init__(self, root):
- self.root = root
-
- def get_machines(self):
- db = self.root.getDB()
- q = db.session.query(Machine.name.distinct())
- q = q.order_by(Machine.name)
- return json.dumps(q.all())
-
- def get_tests(self):
- db = self.root.getDB()
- q = db.session.query(Test.id, Test.name)
- q = q.order_by([Test.name])
- return json.dumps(q.all())
-
- def get_test_data(self):
- import quixote, time
- from sqlalchemy import orm
-
- request = quixote.get_request()
- machine_name = str(request.form.get('machine_name'))
- test_name = str(request.form.get('test_name'))
- component = str(request.form.get('component'))
-
- full_test_name = 'nightlytest.' + test_name + '.' + component
-
- # FIXME: Return data about machine crossings.
- db = self.root.getDB()
- q = db.session.query(Test.id).filter(Test.name == full_test_name)
- q = db.session.query(Run.start_time, Sample.value)
- q = q.join(Sample).join(Test)
- q = q.filter(Test.name == full_test_name)
- q = q.join(Machine)
- q = q.filter(Machine.name == machine_name)
- q = q.order_by(Run.start_time.desc())
- return json.dumps([(time.mktime(run_time.timetuple()), value)
- for run_time,value in q])
-
- def get_test_names(self):
- # FIXME: We should fix the DB to be able to do this directly.
- left = NTUtil.kPrefix + '.'
- right = '.' + NTUtil.kSentinelKeyName
- f = func.substr(Test.name, len(left) + 1,
- func.length(Test.name) - len(left) - len(right))
-
- db = self.root.getDB()
- q = db.session.query(f)
- q = q.filter(Test.name.startswith(left))
- q = q.filter(Test.name.endswith(right))
- q = q.order_by(Test.name.desc())
- return json.dumps(q.all())
-
- def _q_index [html] (self):
- db = self.root.getDB()
-
- script = """
-machines = null;
-tests = null;
-graph = null;
-active_test_data = null;
-
-function update_machine_list(data, text) {
- machines = data;
-
- var elt = $('test_select_form_machine');
- elt.length = data.length;
- for (var i = 0; i != data.length; ++i) {
- elt[i].value = data[i];
- elt[i].text = data[i];
- }
-
- handle_test_change();
-}
-
-function update_test_list(data, text) {
- tests = data;
-
- var elt = $('test_select_form_test');
- elt.length = data.length;
- for (var i = 0; i != data.length; ++i) {
- elt[i].value = data[i];
- elt[i].text = data[i];
- }
-
- handle_test_change();
-}
-
-function update_graph() {
- update_selected_status();
-
- graph.clearPlots();
- if (active_test_data && active_test_data.length) {
- graph.clearColor = [1, 1, 1];
- graph.addPlot(active_test_data, new Graph2D_LinePlotStyle(1, [0,0,0]));
- } else {
- graph.clearColor = [1, .8, .8];
- }
- graph.draw();
-}
-
-function update_selected_status() {
- var machine_elt = $('test_select_form_machine');
- var test_elt = $('test_select_form_test');
- var machine = machines && machines[machine_elt.selectedIndex];
- var test = tests && tests[test_elt.selectedIndex];
- var numPts = active_test_data && active_test_data.length;
- $('log').innerHTML = "<b>Machine:</b> " + machine + "<br>" +
- "<b>Test:</b> " + test + "<br>" +
- "<b>Num Points:</b> " + numPts;
-}
-
-function handle_test_change() {
- if (machines === null || tests === null)
- return;
-
- var machine_elt = $('test_select_form_machine');
- var test_elt = $('test_select_form_test');
- var machine = machines[machine_elt.selectedIndex];
- var test = tests[test_elt.selectedIndex];
- var component = $('test_select_form_component').value;
-
- new Request.JSON({
- url: 'get_test_data',
- method: 'get',
- onSuccess: function(data, text) {
- active_test_data = data;
- update_graph();
- },
- data: "machine_name=" + encodeURIComponent(machine) + "&" +
- "test_name=" + encodeURIComponent(test) + "&" +
- "component=" + component,
- }).send();
-}
-
-function init() {
- // Initialize the graph object.
- graph = new Graph2D("graph");
- graph.xAxis.format = graph.xAxis.formats.day;
- update_graph();
-
- // Load the machine lists.
- new Request.JSON({
- url: 'get_machines',
- onSuccess: update_machine_list,
- }).send();
-
- // Load the test list.
- new Request.JSON({
- url: 'get_test_names',
- onSuccess: update_test_list,
- }).send();
-}
-""" % locals()
-
- self.root.getHeader("zorg", "..", addGraphJS=True, addJSScript=script,
- onload='init()')
-
- """
- <h2>ZView</h2>
- """
-
- """
- <h3>Test Selection</h3>
- <form id="test_select_form">
- <p>Machine: <select id="test_select_form_machine"
- onChange="handle_test_change();">
- <option value="">Loading...</option>
- </select></p>
-
- <p>Test: <select id="test_select_form_test"
- onChange="handle_test_change();">
- <option value="">Loading...</option>
- </select></p>
-
- <p>Component: <select id="test_select_form_component"
- onChange="handle_test_change();">
- """
- for name,key in NTUtil.kComparisonKinds:
- if key is None:
- continue
- """<option value="%s">%s</option>""" % (key, name)
- """
- </select></p>
- </form>
-
- <h3>Selected Test</h3>
- <div id="log">
- <p>Waiting...</p>
- </div>
-
- <h3>Graph</h3>
- <div id="log">
- <canvas id="graph" width="600" height="400"></canvas>
- </div>
- """
-
- self.root.getFooter()
More information about the llvm-commits
mailing list