summaryrefslogtreecommitdiffstats
path: root/trusty
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2018-06-25 13:12:55 -0700
committerArve Hjønnevåg <arve@android.com>2018-06-29 15:03:25 -0700
commitb6d6075983e28fd744a8071dcb6c0816a0d6444c (patch)
treec883d5d782c7d94e51fe53964f3c07fd617e3958 /trusty
parent9d254f0dacc95a296df268eaa6a61cf3e7d144d2 (diff)
downloadsystem_core-b6d6075983e28fd744a8071dcb6c0816a0d6444c.tar.gz
system_core-b6d6075983e28fd744a8071dcb6c0816a0d6444c.tar.bz2
system_core-b6d6075983e28fd744a8071dcb6c0816a0d6444c.zip
trusty: tipc_test: Read output and test result from ta2ta_ipc_test
Bug: 79993976 Test: tipc-test -t ta2ta-ipc Change-Id: If30b9acfab035974ddf1bec0e89e530fdeab4b2f
Diffstat (limited to 'trusty')
-rw-r--r--trusty/libtrusty/tipc-test/tipc_test.c34
1 files changed, 30 insertions, 4 deletions
diff --git a/trusty/libtrusty/tipc-test/tipc_test.c b/trusty/libtrusty/tipc-test/tipc_test.c
index 1fb34c939..d20d4eebf 100644
--- a/trusty/libtrusty/tipc-test/tipc_test.c
+++ b/trusty/libtrusty/tipc-test/tipc_test.c
@@ -587,8 +587,15 @@ static int blocked_read_test(uint repeat)
static int ta2ta_ipc_test(void)
{
+ enum test_message_header {
+ TEST_PASSED = 0,
+ TEST_FAILED = 1,
+ TEST_MESSAGE = 2,
+ };
+
int fd;
- char rx_buf[64];
+ int ret;
+ unsigned char rx_buf[256];
if (!opt_silent) {
printf("%s:\n", __func__);
@@ -601,12 +608,31 @@ static int ta2ta_ipc_test(void)
return fd;
}
- /* wait for test to complete */
- (void) read(fd, rx_buf, sizeof(rx_buf));
+ /* Wait for tests to complete and read status */
+ while (true) {
+ ret = read(fd, rx_buf, sizeof(rx_buf));
+ if (ret <= 0 || ret >= (int)sizeof(rx_buf)) {
+ fprintf(stderr, "%s: Read failed: %d\n", __func__, ret);
+ tipc_close(fd);
+ return -1;
+ }
+
+ if (rx_buf[0] == TEST_PASSED) {
+ break;
+ } else if (rx_buf[0] == TEST_FAILED) {
+ break;
+ } else if (rx_buf[0] == TEST_MESSAGE) {
+ write(STDOUT_FILENO, rx_buf + 1, ret - 1);
+ } else {
+ fprintf(stderr, "%s: Bad message header: %d\n",
+ __func__, rx_buf[0]);
+ break;
+ }
+ }
tipc_close(fd);
- return 0;
+ return rx_buf[0] == TEST_PASSED ? 0 : -1;
}
typedef struct uuid