Browse Source

Fixes to query test.

David Moreno 11 years ago
parent
commit
3517ca97a2
7 changed files with 41 additions and 14 deletions
  1. 3 3
      onion/Makefile
  2. 1 1
      onion/benchmark_config
  3. BIN
      onion/hello
  4. 36 9
      onion/hello.c
  5. BIN
      onion/hello.o
  6. BIN
      onion/libonion_static.a
  7. 1 1
      onion/onion

+ 3 - 3
onion/Makefile

@@ -9,15 +9,15 @@ hello: hello.o libonion_static.a base_html.o fortunes_html.o
 	cc hello.o base_html.o fortunes_html.o libonion_static.a -o hello -lpthread `mysql_config --libs` `pkg-config json --libs` -lgnutls -lgcrypt -lrt
 
 clean:
-	rm -r *.o hello base_html.c fortunes_html.c
+	rm -fr *.o hello base_html.c fortunes_html.c libonion_static.a onion
+
 
-	
 libonion_static.a: onion
 	(cd onion && mkdir -p build && cd build && cmake .. && cd src && make -j4)
 	cp onion/build/src/onion/libonion_static.a .
 
 onion:
-	git clone https://github.com/davidmoreno/onion.git
+	git clone --depth 1 https://github.com/davidmoreno/onion.git
 
 otemplate:
 	(cd onion/build/tools/otemplate/; make)

+ 1 - 1
onion/benchmark_config

@@ -22,7 +22,7 @@
     "raw": {
       "setup_file": "setup",
       "db_url": "/db",
-      "query_url": "/db?queries=",
+      "query_url": "/queries?queries=",
       "fortune_url": "/fortune",
       "port": 8080,
       "approach": "Realistic",

BIN
onion/hello


+ 36 - 9
onion/hello.c

@@ -110,19 +110,40 @@ onion_connection_status return_db(MYSQL *db, onion_request *req, onion_response
 		json_object_object_add(obj, "randomNumber", json_object_new_int( atoi(row[1]) ));
 		//json_object_array_add(array, obj);
 
-		if (queries > 1){
-			json_object_array_add(array, obj);
-		}
-		else {
-			json = obj;
-		}
+		json_object_array_add(array, obj);
 
 		mysql_free_result(sqlres);
 	}
-	if (queries > 1){
-		json = array;
-	}
+	json = array;
+
+	//json_object_object_add(json,"json",array);
+	const char *str=json_object_to_json_string(json);
+	int size=strlen(str);
+	onion_response_set_header(res,"Content-Type","application/json");
+	onion_response_set_length(res, size);
+	onion_response_write(res, str, size);
+	
+	json_object_put(json);
+	return OCS_PROCESSED;
+}
+
+onion_connection_status return_one_db(MYSQL *db, onion_request *req, onion_response *res){
+	char query[256];
+	char *error;
+
+	json_object *json=json_object_new_object();
+		
+	snprintf(query,sizeof(query), "SELECT * FROM World WHERE id = %d", 1 + (rand()%10000));
+	mysql_query(db, query);
+	MYSQL_RES *sqlres = mysql_store_result(db);
+	MYSQL_ROW row = mysql_fetch_row(sqlres);
+		
+	json_object_object_add(json, "id", json_object_new_int( atoi(row[0]) ));
+	json_object_object_add(json, "randomNumber", json_object_new_int( atoi(row[1]) ));
+
+	mysql_free_result(sqlres);
 	//json_object_object_add(json,"json",array);
+
 	const char *str=json_object_to_json_string(json);
 	int size=strlen(str);
 	onion_response_set_header(res,"Content-Type","application/json");
@@ -262,6 +283,12 @@ onion_connection_status muxer(struct test_data *data, onion_request *req, onion_
 		return return_json_libjson(NULL, req, res);
 	
 	if (strcmp(path, "db")==0){
+		MYSQL *db=get_connection(data);
+		int ret=return_one_db(db, req, res);
+		free_connection(data, db);
+		return ret;
+	}
+	if (strcmp(path, "queries")==0){
 		MYSQL *db=get_connection(data);
 		int ret=return_db(db, req, res);
 		free_connection(data, db);

BIN
onion/hello.o


BIN
onion/libonion_static.a


+ 1 - 1
onion/onion

@@ -1 +1 @@
-Subproject commit 2d54da759106847a8d16498aff2f09a740c4ab10
+Subproject commit fc8db21f63f2d4d4ff87c28f44b53cb34d0d7fdf