Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b7e4166 authored by Arve Hjønnevåg's avatar Arve Hjønnevåg Committed by Gerrit Code Review
Browse files

Merge "trusty: tipc_test: Read output and test result from ta2ta_ipc_test"

parents e663c78d b6d60759
Loading
Loading
Loading
Loading
+30 −4
Original line number Diff line number Diff line
@@ -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