@@ -204,6 +204,81 @@ $THEN
204
204
$END ----------------%WTPLSQL_end_ignore_lines%----------------
205
205
206
206
207
+ ------------------------------------------------------------
208
+ procedure insert_test_run_summary
209
+ is
210
+ PRAGMA AUTONOMOUS_TRANSACTION;
211
+ cursor c_results (in_test_run_id in number) is
212
+ select count(*) TOT_CNT
213
+ ,sum(decode(status,'FAIL',1,0)) FAIL_CNT
214
+ ,sum(decode(status,'ERR',1,0)) ERR_CNT
215
+ ,count(distinct testcase) TCASE_CNT
216
+ ,min(elapsed_msecs) MIN_MSEC
217
+ ,round(avg(elapsed_msecs),3) AVG_MSEC
218
+ ,max(elapsed_msecs) MAX_MSEC
219
+ ,stddev(elapsed_msecs) STD_MSEC
220
+ from wt_results
221
+ where test_run_id = in_test_run_id;
222
+ b_results c_results%ROWTYPE;
223
+ cursor c_profiles (in_test_run_id in number) is
224
+ select count(*) TOT_LINES
225
+ ,sum(decode(status,'EXEC',1,0)) EXEC_LINES
226
+ ,sum(decode(status,'ANNO',1,0)) ANNO_LINES
227
+ ,sum(decode(status,'EXCL',1,0)) EXCL_LINES
228
+ ,sum(decode(status,'NOTX',1,0)) NOTX_LINES
229
+ ,sum(decode(status,'UNKN',1,0)) UNKN_LINES
230
+ ,min(min_usecs) MIN_USEC
231
+ ,sum(total_usecs)/count(*) AVG_USEC
232
+ ,max(max_usecs) MAX_USEC
233
+ ,stddev(max_usecs) STD_USEC
234
+ from wt_dbout_profiles
235
+ where test_run_id = in_test_run_id;
236
+ b_profiles c_profiles%ROWTYPE;
237
+ l_wt_test_runs_summary_rec wt_test_runs_summary%ROWTYPE;
238
+ begin
239
+ --
240
+ if g_test_runs_rec.id is null
241
+ then
242
+ return;
243
+ end if;
244
+ --
245
+ open c_results(g_test_runs_rec.id);
246
+ fetch c_results into b_results;
247
+ close c_results;
248
+ l_wt_test_runs_summary_rec.tot_cnt := b_results.tot_cnt;
249
+ l_wt_test_runs_summary_rec.fail_cnt := b_results.fail_cnt;
250
+ l_wt_test_runs_summary_rec.err_cnt := b_results.err_cnt;
251
+ l_wt_test_runs_summary_rec.tcase_cnt := b_results.tcase_cnt;
252
+ l_wt_test_runs_summary_rec.min_msec := b_results.min_msec;
253
+ l_wt_test_runs_summary_rec.avg_msec := b_results.avg_msec;
254
+ l_wt_test_runs_summary_rec.max_msec := b_results.max_msec;
255
+ l_wt_test_runs_summary_rec.std_msec := b_results.std_msec;
256
+ --
257
+ open c_profiles(g_test_runs_rec.id);
258
+ fetch c_profiles into b_profiles;
259
+ close c_profiles;
260
+ l_wt_test_runs_summary_rec.tot_lines := b_profiles.tot_lines;
261
+ l_wt_test_runs_summary_rec.exec_lines := b_profiles.exec_lines;
262
+ l_wt_test_runs_summary_rec.anno_lines := b_profiles.anno_lines;
263
+ l_wt_test_runs_summary_rec.excl_lines := b_profiles.excl_lines;
264
+ l_wt_test_runs_summary_rec.notx_lines := b_profiles.notx_lines;
265
+ l_wt_test_runs_summary_rec.unkn_lines := b_profiles.unkn_lines;
266
+ l_wt_test_runs_summary_rec.min_usec := b_profiles.min_usec;
267
+ l_wt_test_runs_summary_rec.avg_usec := b_profiles.avg_usec;
268
+ l_wt_test_runs_summary_rec.max_usec := b_profiles.max_usec;
269
+ l_wt_test_runs_summary_rec.std_usec := b_profiles.std_usec;
270
+ --
271
+ insert into wt_test_runs_summary values l_wt_test_runs_summary_rec;
272
+ COMMIT;
273
+ --
274
+ exception
275
+ when OTHERS
276
+ then
277
+ DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_stack ||
278
+ dbms_utility.format_error_backtrace);
279
+ end insert_test_run_summary;
280
+
281
+
207
282
---------------------
208
283
-- Public Procedures
209
284
---------------------
@@ -315,9 +390,10 @@ begin
315
390
end;
316
391
317
392
-- Finalize
318
- insert_test_run; -- Autonomous Transaction COMMIT
319
- wt_result.finalize; -- Autonomous Transaction COMMIT
320
- wt_profiler.finalize; -- Autonomous Transaction COMMIT
393
+ insert_test_run; -- Autonomous Transaction COMMIT
394
+ wt_result.finalize; -- Autonomous Transaction COMMIT
395
+ wt_profiler.finalize; -- Autonomous Transaction COMMIT
396
+ insert_test_run_summary; -- Autonomous Transaction COMMIT
321
397
322
398
exception
323
399
when OTHERS
0 commit comments