Browse Source

Merge pull request #1141 from lpereira/lwan-mysql

Add MySQL tests for Lwan
@hamiltont Dear Travis-CI, I love you.
Mike Smith 10 years ago
parent
commit
2f830793e0
3 changed files with 41 additions and 4 deletions
  1. 23 1
      frameworks/C/lwan/benchmark_config
  2. 4 2
      frameworks/C/lwan/install.sh
  3. 14 1
      frameworks/C/lwan/setup.py

+ 23 - 1
frameworks/C/lwan/benchmark_config

@@ -1,7 +1,7 @@
 {
   "framework": "lwan",
   "tests": [{
-    "raw": {
+    "sqlite": {
       "setup_file": "setup",
       "db_url": "/db",
       "query_url": "/queries?queries=",
@@ -22,6 +22,28 @@
       "display_name": "Lwan",
       "notes": "",
       "versus": ""
+    },
+    "mysql": {
+      "setup_file": "setup",
+      "db_url": "/db",
+      "query_url": "/queries?queries=",
+      "fortune_url": "/fortunes",
+      "plaintext_url": "/plaintext",
+      "json_url": "/json",
+      "port": 8080,
+      "approach": "Realistic",
+      "classification": "Platform",
+      "database": "MySQL",
+      "framework": "lwan",
+      "language": "C",
+      "orm": "Raw",
+      "platform": "Lwan",
+      "webserver": "Lwan",
+      "os": "Linux",
+      "database_os": "Linux",
+      "display_name": "Lwan",
+      "notes": "",
+      "versus": ""
     }
   }]
 }

+ 4 - 2
frameworks/C/lwan/install.sh

@@ -1,14 +1,16 @@
 #!/bin/bash
 
-REV='aa6c15fbdf63d9db722ddc72bd736b23381331be'
+REV='eb96604657dd940ecb70b56fef4279077e3f9c21'
 
 INSTALLED_FILE="${IROOT}/lwan-${REV}.installed"
 RETCODE=$(fw_exists ${INSTALLED_FILE})
 [ ! "$RETCODE" == 0 ] || { return 0; }
 
+[ ! -e ${INSTALLED_FILE} -a -d ${IROOT}/lwan ] && rm -rf ${IROOT}/lwan
+
 # Lwan is only built during installation as a dependency sanity check.
 sudo apt-get update && \
-	sudo apt-get install libjemalloc-dev && \
+	sudo apt-get install libjemalloc-dev libmysqlclient-dev libsqlite3-dev && \
 	git clone git://github.com/lpereira/lwan.git && \
         cd lwan && \
         git checkout ${REV} && \

+ 14 - 1
frameworks/C/lwan/setup.py

@@ -2,6 +2,17 @@ import subprocess
 import sys
 import os
 
+def get_env_for_database(args):
+  if args.database == 'MySQL':
+    return {
+      'USE_MYSQL': '1',
+      'MYSQL_USER': 'benchmarkdbuser',
+      'MYSQL_PASS': 'benchmarkdbpass',
+      'MYSQL_HOST': args.database_host,
+      'MYSQL_DB': 'hello_world'
+    }
+  return None
+
 def start(args, logfile, errfile):
   subprocess.call('rm -rf ${LWAN_BUILD}', shell=True, stderr=errfile, stdout=logfile)
   subprocess.call('mkdir -p ${LWAN_BUILD}', shell=True, stderr=errfile, stdout=logfile)
@@ -10,7 +21,9 @@ def start(args, logfile, errfile):
 
   db_dir = os.path.join(os.environ['LWAN_ROOT'], 'techempower')
   exe_path = os.path.join(os.environ['LWAN_BUILD'], 'techempower', 'techempower')
-  subprocess.Popen(exe_path, cwd=db_dir, stderr=errfile, stdout=logfile, shell=True)
+
+  subprocess.Popen(exe_path, cwd=db_dir, stderr=errfile, stdout=logfile, shell=True,
+      env = get_env_for_database(args))
 
   return 0