40 lines · c
1// RUN: %gdb-compile-and-run 2>&1 | tee %t.out | FileCheck %s2 3#include "../ompt_plugin.h"4#include <omp.h>5#include <pthread.h>6#include <stdio.h>7#include <unistd.h>8 9void f(int i) {10 if (i <= 0) {11 ompd_tool_test(0);12 } else {13 printf("f(%i) start task 1\n", i);14#pragma omp task15 f(i - 1);16 printf("f(%i) start task 2\n", i);17#pragma omp task18 f(i - 1);19 printf("f(%i) start task 3\n", i);20#pragma omp task21 f(i - 1);22#pragma omp taskwait23 }24}25 26int main() {27 printf("Application: Process %d started.\n", getpid());28 omp_set_num_threads(8);29 omp_set_max_active_levels(10);30 31#pragma omp parallel sections32 { f(4); }33 34 return 0;35}36 37// CHECK-NOT: OMPT-OMPD mismatch38// CHECK-NOT: Python Exception39// CHECK-NOT: The program is not being run.40