main.lua: Support tagging metadata for test runs, and include it in JSON output

Fri, 01 Jan 2016 20:42:03 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Fri, 01 Jan 2016 20:42:03 +0000
changeset 69
1de0ebd8832f
parent 68
cd63f764d1bf
child 70
2b62a714b5df

main.lua: Support tagging metadata for test runs, and include it in JSON output

main.lua file | annotate | diff | comparison | revisions
--- a/main.lua	Fri Jan 01 20:36:05 2016 +0000
+++ b/main.lua	Fri Jan 01 20:42:03 2016 +0000
@@ -6,6 +6,7 @@
 
 local result_log_filename = nil;
 local server_log_reader = nil;
+local test_metadata = {};
 local server_log_wait_time = 0.2;
 
 local property_rules = {};
@@ -54,12 +55,23 @@
 				end
 				return new_lines;
 			end
+		elseif opt == "--tag" then
+			local tag = get_value();
+			local key, value = tag:match("^([^=]+):(.+)$");
+			if key and value then
+				test_metadata[key] = value;
+			else
+				error("Unable to parse tag: "..tag);
+			end
 		else
 			error("Unhandled command-line option: "..opt);
 		end
 	end
 	assert(#arg > 0, "No test script provided");
 	assert(#arg < 2, "Too many parameters");
+	if not test_metadata["Name"] then
+		test_metadata["Name"] = arg[1];
+	end
 end
 
 function read_script()
@@ -178,7 +190,7 @@
 	end
 end
 
-log_data("start");
+log_data("start", { metadata = test_metadata });
 local ok, result, err = pcall(main, log_data);
 
 local exit_code = 0;

mercurial