Browse Source

adds plaintext and update tests to symfony-stripped

Keith Newman 9 years ago
parent
commit
22c08f54e3

+ 13 - 1
frameworks/PHP/symfony2-stripped/app/config/routing.yml

@@ -1,3 +1,7 @@
+_plaintext:
+    pattern:  /plaintext
+    defaults: { _controller: SkamanderBenchmarkBundle:Bench:plaintext }
+
 _json:
     pattern:  /json
     defaults: { _controller: SkamanderBenchmarkBundle:Bench:json }
@@ -10,6 +14,14 @@ _dbRaw:
     pattern:  /db-raw
     defaults: { _controller: SkamanderBenchmarkBundle:Bench:dbRaw }
 
+_update:
+    pattern:  /update
+    defaults: { _controller: SkamanderBenchmarkBundle:Bench:update }
+
+_updateRaw:
+    pattern:  /update-raw
+    defaults: { _controller: SkamanderBenchmarkBundle:Bench:updateRaw }
+
 _fortunes:
     pattern:  /fortunes
     defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunes }
@@ -20,4 +32,4 @@ _fortunesPhp:
 
 _fortunesRaw:
     pattern:  /fortunes-raw
-    defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunesRaw }
+    defaults: { _controller: SkamanderBenchmarkBundle:Bench:fortunesRaw }

+ 3 - 0
frameworks/PHP/symfony2-stripped/benchmark_config.json

@@ -3,8 +3,10 @@
   "tests": [{
     "default": {
       "setup_file": "setup",
+      "plaintext_url": "/plaintext",
       "json_url": "/json",
       "db_url": "/db",
+      "update_url": "/update?queries=",
       "query_url": "/db?queries=",
       "fortune_url": "/fortunes",
       "port": 8080,
@@ -43,6 +45,7 @@
     "raw": {
       "setup_file": "setup",
       "db_url": "/db-raw",
+      "update_url": "/update-raw?queries=",
       "query_url": "/db-raw?queries=",
       "fortune_url": "/fortunes-raw",
       "port": 8080,

+ 46 - 1
frameworks/PHP/symfony2-stripped/src/Skamander/BenchmarkBundle/Controller/BenchController.php

@@ -11,6 +11,11 @@ use Skamander\BenchmarkBundle\Entity\Fortune;
 class BenchController extends Controller
 {
 
+    public function plaintextAction()
+    {
+      return new Response("Hello, World!", 200, array('Content-Type' => 'text/plain'));
+    }
+
     public function jsonAction()
     {
         return new JsonResponse(array('message' => 'Hello, World!'));
@@ -49,7 +54,7 @@ class BenchController extends Controller
         for($i = 0; $i < $queries; ++$i) {
             $worlds[] =  $conn->fetchAssoc('SELECT * FROM World WHERE id = ?', array(mt_rand(1, 10000)));
         }
-        
+
         if ($queries == 1) {
             $worlds = $worlds[0];
         }
@@ -57,6 +62,46 @@ class BenchController extends Controller
         return new JsonResponse($worlds);
     }
 
+    public function updateAction(Request $request)
+    {
+      $queries = $request->query->getInt('queries', 1);
+      $queries = min(500, max(1, $queries));
+
+      $worlds = array();
+      $em = $this->getDoctrine()->getManager();
+      $repo = $this->getDoctrine()
+          ->getRepository('SkamanderBenchmarkBundle:World');
+
+      for ($i = 0; $i < $queries; ++$i) {
+        $world = $repo->find(mt_rand(1, 10000));
+        $random_number = mt_rand(1, 10000);
+        $world->setRandomNumber($random_number);
+        $em->persist($world);
+        $worlds[] =  $world;
+      }
+
+      $em->flush();
+      return new JsonResponse($worlds);
+    }
+
+    public function updateRawAction(Request $request)
+    {
+      $queries = $request->query->getInt('queries', 1);
+      $queries = min(500, max(1, $queries));
+
+      $worlds = array();
+      $conn = $this->get('database_connection');
+
+      for($i = 0; $i < $queries; ++$i) {
+          $id = mt_rand(1, 10000);
+          $random_number = mt_rand(1, 10000);
+          $conn->executeUpdate('UPDATE World SET randomNumber=? WHERE id=?', array($random_number, $id));
+          $worlds[] =  array('id' => $id, 'randomNumber' => $random_number);
+      }
+
+      return new JsonResponse($worlds);
+    }
+
     public function fortunesAction()
     {
         $repo = $this->getDoctrine()