init
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
This commit is contained in:
122
Telegram/ThirdParty/dispatch/tests/bsdtestsummarize.c
vendored
Normal file
122
Telegram/ThirdParty/dispatch/tests/bsdtestsummarize.c
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Copyright (c) 2008-2011 Apple Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_APACHE_LICENSE_HEADER_START@
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_APACHE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
int
|
||||
has_prefix(const char* str, const char* prefix)
|
||||
{
|
||||
return (strncmp(str, prefix, strlen(prefix)) == 0);
|
||||
}
|
||||
|
||||
int
|
||||
print_summary(FILE* f, long total, long pass, long fail, long skip)
|
||||
{
|
||||
double dpass = 100.0 ,dfail = 0.0, dskip = 0.0;
|
||||
fprintf(f, "Total: %ld\n", total);
|
||||
if (total) {
|
||||
dpass = ((double)pass / (double)(total - skip)) * 10000.0;
|
||||
dpass = floor(dpass) / 100.0;
|
||||
|
||||
dfail = ((double)fail / (double)(total - skip)) * 10000.0;
|
||||
dfail = ceil(dfail) / 100.0;
|
||||
|
||||
dskip = ((double)skip / (double)total) * 10000.0;
|
||||
dskip = ceil(dskip) / 100.0;
|
||||
}
|
||||
fprintf(f, "Passed: %ld (%0.2lf%%)\nFailed: %ld (%0.2lf%%)\nSkipped: %ld (%0.2lf%%)\n\n", pass, dpass, fail, dfail, skip, dskip);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char* argv[])
|
||||
{
|
||||
if (argc > 1) {
|
||||
fprintf(stderr, "%s: usage: summarize\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
FILE* f = fopen(argv[1], "w");
|
||||
if (f == NULL) {
|
||||
perror(argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
*/
|
||||
FILE* f = stdout;
|
||||
|
||||
fprintf(f, "\n==================================================\n");
|
||||
fprintf(f, "[SUMMARY] Test Summary\n");
|
||||
fprintf(f, "==================================================\n\n");
|
||||
|
||||
size_t len;
|
||||
char* ln, lastln[1024];
|
||||
int first_test = 1;
|
||||
long total = 0;
|
||||
long pass = 0;
|
||||
long fail = 0;
|
||||
long skip = 0;
|
||||
long total_total = 0;
|
||||
long total_pass = 0;
|
||||
long total_fail = 0;
|
||||
long total_skip = 0;
|
||||
for(;;) {
|
||||
ln = fgetln(stdin, &len);
|
||||
//if (ln) fprintf(stdout, "%.*s", (int)len, ln);
|
||||
if (ln == NULL || (has_prefix(ln, "[TEST]") &&
|
||||
strncmp(ln, lastln, MIN(len,1024)))) {
|
||||
if (total || !first_test) {
|
||||
print_summary(f, total, pass, fail, skip);
|
||||
first_test = 0;
|
||||
}
|
||||
total_total += total;
|
||||
total_pass += pass;
|
||||
total_fail += fail;
|
||||
total_skip += skip;
|
||||
total = 0;
|
||||
pass = 0;
|
||||
fail = 0;
|
||||
skip = 0;
|
||||
if (ln) {
|
||||
fprintf(f, "%.*s", (int)len, ln);
|
||||
strncpy(lastln, ln, MIN(len,1024));
|
||||
} else {
|
||||
fprintf(f, "[TOTAL]\n");
|
||||
print_summary(f, total_total, total_pass, total_fail, total_skip);
|
||||
break;
|
||||
}
|
||||
} else if (has_prefix(ln, "[PASS]")) {
|
||||
++total;
|
||||
++pass;
|
||||
} else if (has_prefix(ln, "[FAIL]")) {
|
||||
++total;
|
||||
++fail;
|
||||
} else if (has_prefix(ln, "[SKIP]")) {
|
||||
++total;
|
||||
++skip;
|
||||
}
|
||||
}
|
||||
|
||||
return (total_fail ? EXIT_FAILURE : EXIT_SUCCESS);
|
||||
}
|
||||
Reference in New Issue
Block a user