brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · d30d6da Raw
66 lines · cpp
1#include "InternalEvent.h"2#include <omp-tools.h>3#include <sstream>4 5#include "gtest/gtest.h"6 7using namespace omptest;8 9TEST(InternalEvent_equality_ops, Dispatch_identity) {10  ompt_data_t DI{.value = 31};11  internal::Dispatch D{/*ParallelData=*/(ompt_data_t *)0x11,12                       /*TaskData=*/(ompt_data_t *)0x22,13                       /*Kind=*/ompt_dispatch_t::ompt_dispatch_iteration,14                       /*Instance=*/DI};15 16  EXPECT_EQ(D == D, true);17}18 19TEST(InternalEvent_equality_ops, Dispatch_same) {20  ompt_data_t DI{.ptr = (void *)0x33};21  internal::Dispatch D1{/*ParallelData=*/(ompt_data_t *)0x11,22                        /*TaskData=*/(ompt_data_t *)0x22,23                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_section,24                        /*Instance=*/DI};25 26  internal::Dispatch D2{/*ParallelData=*/(ompt_data_t *)0x11,27                        /*TaskData=*/(ompt_data_t *)0x22,28                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_section,29                        /*Instance=*/DI};30 31  EXPECT_EQ(D1 == D2, true);32}33 34TEST(InternalEvent_equality_ops, Dispatch_different_kind) {35  ompt_data_t DI{.ptr = (void *)0x33};36  internal::Dispatch D1{/*ParallelData=*/(ompt_data_t *)0x11,37                        /*TaskData=*/(ompt_data_t *)0x22,38                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_section,39                        /*Instance=*/DI};40 41  internal::Dispatch D2{/*ParallelData=*/(ompt_data_t *)0x11,42                        /*TaskData=*/(ompt_data_t *)0x22,43                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_iteration,44                        /*Instance=*/DI};45 46  // Demonstrate that 'Kind' is the only relevant field for equality.47  EXPECT_EQ(D1 == D2, false);48}49 50TEST(InternalEvent_equality_ops, Dispatch_same_kind_different_other) {51  ompt_data_t DI1{.ptr = (void *)0x33};52  internal::Dispatch D1{/*ParallelData=*/(ompt_data_t *)0x11,53                        /*TaskData=*/(ompt_data_t *)0x22,54                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_section,55                        /*Instance=*/DI1};56 57  ompt_data_t DI2{.ptr = (void *)0x66};58  internal::Dispatch D2{/*ParallelData=*/(ompt_data_t *)0x44,59                        /*TaskData=*/(ompt_data_t *)0x55,60                        /*Kind=*/ompt_dispatch_t::ompt_dispatch_section,61                        /*Instance=*/DI2};62 63  // Demonstrate that 'Kind' is the only relevant field for equality.64  EXPECT_EQ(D1 == D2, true);65}66