aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flags.h10
-rw-r--r--main.c9
-rw-r--r--utils.c15
-rw-r--r--utils.h2
4 files changed, 34 insertions, 2 deletions
diff --git a/flags.h b/flags.h
new file mode 100644
index 00000000000..0dac2234e0b
--- /dev/null
+++ b/flags.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+/* Flag bit definitions */
+
+#ifndef __FLAGS_H__
+#define __FLAGS_H__
+
+#define LAVA_SIGNAL_ENABLE (0x0001)
+
+#endif /* __FLAGS_H__ */
diff --git a/main.c b/main.c
index 83600b7d1b3..92ced6926c3 100644
--- a/main.c
+++ b/main.c
@@ -36,6 +36,7 @@
#endif
#include "utils.h"
+#include "flags.h"
#define DEFAULT_DIRECTORY "/usr/lib"
#define DEFAULT_TIMEOUT 300
@@ -70,8 +71,9 @@ main(int argc, char *argv[])
opts.timeout = DEFAULT_TIMEOUT;
opts.ptests = NULL;
opts.xml_filename = NULL;
+ opts.flags = 0;
- while ((opt = getopt(argc, argv, "d:e:lt:x:h")) != -1) {
+ while ((opt = getopt(argc, argv, "d:e:lt:x:Lh")) != -1) {
switch (opt) {
case 'd':
free(opts.directory);
@@ -118,6 +120,11 @@ main(int argc, char *argv[])
opts.xml_filename = strdup(optarg);
CHECK_ALLOCATION(opts.xml_filename, 1, 1);
break;
+ case 'L':
+ // set LAVA signal mode
+ opts.flags |= LAVA_SIGNAL_ENABLE;
+ fprintf(stdout, "LAVA_SIGNAL_ENABLE == %d\n", opts.flags);
+ break;
default:
print_usage(stdout, argv[0]);
exit(1);
diff --git a/utils.c b/utils.c
index ed2eff7900c..0fd1da6aec9 100644
--- a/utils.c
+++ b/utils.c
@@ -39,6 +39,7 @@
#include "ptest_list.h"
#include "utils.h"
+#include "flags.h"
#define GET_STIME_BUF_SIZE 1024
#define WAIT_CHILD_POLL_TIMEOUT_MS 200
@@ -358,6 +359,7 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts,
fprintf(fp, "START: %s\n", progname);
PTEST_LIST_ITERATE_START(head, p);
char *ptest_dir = strdup(p->run_ptest);
+ char *ptest = strdup(p->ptest);
if (ptest_dir == NULL) {
rc = -1;
break;
@@ -376,6 +378,11 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts,
int fds[2]; fds[0] = pipefd_stdout[0]; fds[1] = pipefd_stderr[0];
FILE *fps[2]; fps[0] = fp; fps[1] = fp_stderr;
+ char result[5]; // pass\0, fail\0, skip\0
+
+ if (opts.flags & LAVA_SIGNAL_ENABLE) {
+ fprintf(stdout, "<LAVA_SIGNAL_STARTTC %s>\n", ptest);
+ }
fprintf(fp, "%s\n", get_stime(stime, GET_STIME_BUF_SIZE));
fprintf(fp, "BEGIN: %s\n", ptest_dir);
@@ -389,6 +396,14 @@ run_ptests(struct ptest_list *head, const struct ptest_options opts,
fprintf(fp, "END: %s\n", ptest_dir);
fprintf(fp, "%s\n", get_stime(stime, GET_STIME_BUF_SIZE));
+ if (opts.flags & LAVA_SIGNAL_ENABLE) {
+ if (status)
+ sprintf(result, "fail");
+ else
+ sprintf(result, "pass");
+ fprintf(stdout, "<LAVA_SIGNAL_ENDTC %s>\n", ptest);
+ fprintf(stdout, "<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=%s RESULT=%s>\n", ptest, result);
+ }
}
PTEST_LIST_ITERATE_END;
fprintf(fp, "STOP: %s\n", progname);
diff --git a/utils.h b/utils.h
index ee85163ddff..06d4c100d15 100644
--- a/utils.h
+++ b/utils.h
@@ -37,9 +37,9 @@ struct ptest_options {
int timeout;
char **ptests;
char *xml_filename;
+ unsigned int flags;
};
-
extern void check_allocation1(void *, size_t, char *, int, int);
extern struct ptest_list *get_available_ptests(const char *);
extern int print_ptests(struct ptest_list *, FILE *);