diff options
author | Arve Hjønnevåg <arve@android.com> | 2018-06-25 13:12:55 -0700 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2018-06-29 15:03:25 -0700 |
commit | b6d6075983e28fd744a8071dcb6c0816a0d6444c (patch) | |
tree | c883d5d782c7d94e51fe53964f3c07fd617e3958 /trusty | |
parent | 9d254f0dacc95a296df268eaa6a61cf3e7d144d2 (diff) | |
download | system_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.c | 34 |
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 |