static void utc_taskmanager_broadcast_n(void)
{
	int ret;
	ret = task_manager_broadcast(TM_INVALID_BROAD_MSG, NULL, TM_RESPONSE_WAIT_INF);
	TC_ASSERT_EQ("task_manager_broadcast", ret, TM_INVALID_PARAM);

	TC_SUCCESS_RESULT();
}
Example #2
0
int user_main(int argc, char *argv[])
#endif
{
	int handle_actionmanager = 0;
	int ret;
	app_info_list_t *action_manager_info;

	char *msg1 = (char *)malloc(sizeof(char) * 9);
	char *msg2 = (char *)malloc(sizeof(char) * 12);
	char *msg3 = (char *)malloc(sizeof(char) * 13);	
	char *msg4 = (char *)malloc(sizeof(char) * 14);
	char *msg5 = (char *)malloc(sizeof(char) * 10);
	strcpy(msg1, "alarm_on");
	strcpy(msg2, "alarm_pause");
	strcpy(msg3, "alarm_resume");
	strcpy(msg4, "alarm_restart");
	strcpy(msg5, "alarm_off");

	action_manager_info = (app_info_list_t *)task_manager_getinfo_with_name("action_manager", TM_RESPONSE_WAIT_INF);
	if (action_manager_info != NULL) {
		handle_actionmanager = action_manager_info->task.handle;
	}
	task_manager_clean_infolist(&action_manager_info);
	
	printf("\nUser App sends Alarm On message to Action Manager\n");
	ret = task_manager_unicast(handle_actionmanager, msg1, strlen(msg1) + 1, TM_RESPONSE_WAIT_INF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("Alarm On message is successfully sended!\n");
	}

	sleep(3);
	printf("\nUser App sends Alarm Pause message to Action Manager\n");
	ret = task_manager_unicast(handle_actionmanager, msg2, strlen(msg2) + 1, TM_RESPONSE_WAIT_INF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("Alarm Pause message is successfully sended!\n");
	}

	sleep(3);
	printf("\nUser App sends Alarm Resume message to Action Manager\n");
	ret = task_manager_unicast(handle_actionmanager, msg3, strlen(msg3) + 1, TM_RESPONSE_WAIT_INF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("Alarm Resume message is successfully sended!\n");
	}

	sleep(3);
	printf("\nUser App sends Alarm Restart message to Action Manager\n");
	ret = task_manager_unicast(handle_actionmanager, msg4, strlen(msg4) + 1, TM_RESPONSE_WAIT_INF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("Alarm Restart message is successfully sended!\n");
	}

	sleep(3);
	printf("\nUser App sends Alarm Off message to Action Manager\n");
	ret = task_manager_unicast(handle_actionmanager, msg5, strlen(msg5) + 1, TM_RESPONSE_WAIT_INF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("Alarm Off message is successfully sended!\n");
	}

	free(msg1);
	free(msg2);
	free(msg3);
	free(msg4);
	free(msg5);

	sleep(1);
	printf("\nUser App broadcasts WIFI_ON message\n");
	ret = task_manager_broadcast(TM_BROADCAST_WIFI_ON);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("WIFI_ON message is successfully broadcasted!\n");
	}

	sleep(1);
	printf("\nUser App broadcasts WIFI_OFF message\n");
	ret = task_manager_broadcast(TM_BROADCAST_WIFI_OFF);
	if (ret != OK) {
		printf("ERROR : SEND SIGNAL %d\n", ret);
	} else {
		printf("WIFI_OFF message is successfully broadcasted!\n");
	}

	return 0;
}
static void utc_taskmanager_broadcast_p(void)
{
	int sleep_cnt = 0;
	tm_msg_t user_data;

	sem_init(&tm_broad_sem, 0, 1);
	broad_wifi_on_cnt = 0;
	broad_wifi_off_cnt = 0;
	broad_undefined_cnt = 0;
	broadcast_data_flag = -1;

	user_data.msg_size = strlen("WIFI_ON") + 1;
	user_data.msg = malloc(user_data.msg_size);
	strncpy(user_data.msg, "WIFI_ON", user_data.msg_size);

	(void)task_manager_broadcast(TM_BROADCAST_WIFI_ON, &user_data, TM_NO_RESPONSE);
	while (1) {
		sleep(1);
		if (broad_wifi_on_cnt == TM_BROAD_TASK_NUM) {
			break;
		}
		TC_ASSERT_LEQ_CLEANUP("task_manager_broadcast", sleep_cnt, 10, sem_destroy(&tm_broad_sem));
		sleep_cnt++;
	}
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_on_cnt, TM_BROAD_TASK_NUM, sem_destroy(&tm_broad_sem); free(user_data.msg));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_off_cnt, 0, sem_destroy(&tm_broad_sem); free(user_data.msg));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_undefined_cnt, 0, sem_destroy(&tm_broad_sem); free(user_data.msg));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broadcast_data_flag, 0, sem_destroy(&tm_broad_sem); free(user_data.msg));
	free(user_data.msg);

	broad_wifi_on_cnt = 0;
	broad_wifi_off_cnt = 0;
	broad_undefined_cnt = 0;
	sleep_cnt = 0;
	(void)task_manager_broadcast(TM_BROADCAST_WIFI_OFF, NULL, TM_NO_RESPONSE);
	while (1) {
		usleep(500);
		if (broad_wifi_off_cnt == TM_BROAD_TASK_NUM) {
			break;
		}
		TC_ASSERT_LEQ_CLEANUP("task_manager_broadcast", sleep_cnt, 10, sem_destroy(&tm_broad_sem));
		sleep_cnt++;
	}
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_on_cnt, 0, sem_destroy(&tm_broad_sem));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_off_cnt, TM_BROAD_TASK_NUM, sem_destroy(&tm_broad_sem));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_undefined_cnt, 0, sem_destroy(&tm_broad_sem));

	broad_wifi_on_cnt = 0;
	broad_wifi_off_cnt = 0;
	broad_undefined_cnt = 0;
	sleep_cnt = 0;
	(void)task_manager_broadcast(tm_broadcast_undefined_msg, NULL, TM_NO_RESPONSE);
	while (1) {
		usleep(500);
		if (broad_undefined_cnt == TM_BROAD_UNDEF_NUM) {
			break;
		}
		TC_ASSERT_LEQ_CLEANUP("task_manager_broadcast", sleep_cnt, 10, sem_destroy(&tm_broad_sem));
		sleep_cnt++;
	}
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_on_cnt, 0, sem_destroy(&tm_broad_sem));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_wifi_off_cnt, 0, sem_destroy(&tm_broad_sem));
	TC_ASSERT_EQ_CLEANUP("task_manager_broadcast", broad_undefined_cnt, TM_BROAD_UNDEF_NUM, sem_destroy(&tm_broad_sem));

	sem_destroy(&tm_broad_sem);
	TC_SUCCESS_RESULT();
}