[LNT] r276039 - Track code size

Chris Matthews via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 19 15:13:08 PDT 2016


Author: cmatthews
Date: Tue Jul 19 17:13:08 2016
New Revision: 276039

URL: http://llvm.org/viewvc/llvm-project?rev=276039&view=rev
Log:
Track code size

The test-suite test runner collects code size. This adds support to the
rest of the LNT stack to collect and report on code size.

Added:
    lnt/trunk/lnt/server/db/migrations/upgrade_9_to_10.py
Modified:
    lnt/trunk/lnt/tests/test_suite.py
    lnt/trunk/tests/server/db/CreateV4TestSuiteInstance.py

Added: lnt/trunk/lnt/server/db/migrations/upgrade_9_to_10.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/db/migrations/upgrade_9_to_10.py?rev=276039&view=auto
==============================================================================
--- lnt/trunk/lnt/server/db/migrations/upgrade_9_to_10.py (added)
+++ lnt/trunk/lnt/server/db/migrations/upgrade_9_to_10.py Tue Jul 19 17:13:08 2016
@@ -0,0 +1,43 @@
+# Version 10 adds a code_size Sample type to the nightly test suite.
+
+
+import sqlalchemy
+
+###
+# Import the original schema from upgrade_0_to_1 since upgrade_5_to_6 does not
+# change the actual schema.
+import lnt.server.db.migrations.upgrade_0_to_1 as upgrade_0_to_1
+
+
+def upgrade(engine):
+    # Create a session.
+    print "Running my upgrade"
+    session = sqlalchemy.orm.sessionmaker(engine)()
+
+    real_sample_type = session.query(upgrade_0_to_1.SampleType).\
+        filter_by(name = "Real").first()
+
+    ts = session.query(upgrade_0_to_1.TestSuite).filter_by(name='nts').first()
+    code_size = upgrade_0_to_1.SampleField(name="code_size",
+                                           type=real_sample_type,
+                                           info_key=".code_size",)
+    ts.sample_fields.append(code_size)
+    session.add(ts)
+
+    session.commit()
+    # upgrade_3_to_4.py added this column, so it is not in the ORM.
+    session.connection().execute("""
+UPDATE "TestSuiteSampleFields"
+SET bigger_is_better=0
+WHERE "Name"='code_size'
+                                 """)
+    session.commit()
+
+    session.connection().execute("""
+ALTER TABLE "NT_Sample"
+ADD COLUMN "code_size" FLOAT
+""")
+    session.commit()
+    print "Finished my upgrade."
+
+

Modified: lnt/trunk/lnt/tests/test_suite.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/tests/test_suite.py?rev=276039&r1=276038&r2=276039&view=diff
==============================================================================
--- lnt/trunk/lnt/tests/test_suite.py (original)
+++ lnt/trunk/lnt/tests/test_suite.py Tue Jul 19 17:13:08 2016
@@ -590,14 +590,16 @@ class TestSuiteTest(BuiltinTest):
             'exec_time': 'exec',
             'score': 'score',
             'hash': 'hash',
-            'link_time': 'compile'
+            'link_time': 'compile',
+            'size': 'code_size'
         }
         LIT_METRIC_CONV_FN = {
             'compile_time': float,
             'exec_time': float,
             'score': float,
             'hash': str,
-            'link_time': float
+            'link_time': float,
+            'size': float,
         }
         
         # We don't use the test info, currently.

Modified: lnt/trunk/tests/server/db/CreateV4TestSuiteInstance.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/tests/server/db/CreateV4TestSuiteInstance.py?rev=276039&r1=276038&r2=276039&view=diff
==============================================================================
--- lnt/trunk/tests/server/db/CreateV4TestSuiteInstance.py (original)
+++ lnt/trunk/tests/server/db/CreateV4TestSuiteInstance.py Tue Jul 19 17:13:08 2016
@@ -38,8 +38,9 @@ order3.llvm_project_revision = "1236"
 run = ts_db.Run(machine, order, start_time, end_time)
 test = ts_db.Test("test-a")
 
-sample = ts_db.Sample(run, test, compile_time=1.0, score=4.2)
+sample = ts_db.Sample(run, test, compile_time=1.0, score=4.2, code_size=100)
 sample.mem_bytes = 58093568
+
 # Add and commit.
 ts_db.add(machine)
 ts_db.add(order)
@@ -95,6 +96,8 @@ samples = ts_db.query(ts_db.Sample).all(
 assert len(samples) == 1
 sample = samples[0]
 
+assert sample.code_size == 100
+
 regression_indicators = ts_db.query(ts_db.RegressionIndicator).all()
 assert len(regression_indicators) == 2
 ri = regression_indicators[0]




More information about the llvm-commits mailing list