Browse Source

Fix the late_task_deps test:
- we must set the detach flag of a task to 0 if we use starpu_wait_task
- check all return values
- also test deps on synchronous tasks

Cédric Augonnet 15 years ago
parent
commit
6faa2c6aea
1 changed files with 37 additions and 2 deletions
  1. 37 2
      tests/core/late_task_deps.c

+ 37 - 2
tests/core/late_task_deps.c

@@ -74,19 +74,54 @@ int main(int argc, char **argv)
 		 * termination, we cannot declare a dependency on something
 		 * that does not exist anymore. */
 		taskA->destroy = 0;
+		taskA->detach = 0;
 
-#warning FIXME we should be able to use a synchronous task here !
+		/* we wait for the tasks explicitly */
+		taskB->detach = 0;
 
 		ret = starpu_submit_task(taskA);
 		STARPU_ASSERT(!ret);
 
 		starpu_task_declare_deps_array(taskB, 1, &taskA);
+
 		ret = starpu_submit_task(taskB);
 		STARPU_ASSERT(!ret);
 
-		starpu_wait_task(taskB);
+		ret = starpu_wait_task(taskB);
+		STARPU_ASSERT(!ret);
+
+		ret = starpu_wait_task(taskA);
+		STARPU_ASSERT(!ret);
 	}
 
+	starpu_wait_all_tasks();
+
+	for (loop = 0; loop < NLOOPS; loop++)
+	{
+		taskA = create_dummy_task();
+		taskB = create_dummy_task();
+
+		/* By default, dynamically allocated tasks are destroyed at
+		 * termination, we cannot declare a dependency on something
+		 * that does not exist anymore. */
+		taskA->destroy = 0;
+		taskA->synchronous = 1;
+
+		ret = starpu_submit_task(taskA);
+		STARPU_ASSERT(!ret);
+
+		starpu_task_declare_deps_array(taskB, 1, &taskA);
+
+		taskB->synchronous = 1;
+
+		ret = starpu_submit_task(taskB);
+		STARPU_ASSERT(!ret);
+
+		starpu_task_destroy(taskA);
+	}
+
+	starpu_wait_all_tasks();
+
 	for (loop = 0; loop < NLOOPS; loop++)
 	{
 		taskA = create_dummy_task();