UH OpenMP testsuite update

llvm-svn: 236105
This commit is contained in:
Andrey Churbanov 2015-04-29 14:36:38 +00:00
parent dfddebcfb9
commit a951e21087
19 changed files with 675 additions and 131 deletions

View File

@ -47,3 +47,31 @@ endif
@echo mode=$(mode)
@echo jobs=$(jobs)
libiomp5_path=$(shell $(omp_root)/tools/check-openmp.pl)
test_path=$(shell $(omp_root)/tools/check-openmp-test.pl)
# Please do not change this rule.
# -------------------------------
# Intentionally changing directory into "testsuite" in order to generate output results and errors
# over there and keep this directory clean.
test: omp
@$(Verb) if which llvm-lit &> /dev/null; then \
if [ -d "$(omp_root)$(SLASH)..$(SLASH)testsuite$(SLASH)LLVM-IR" ] ; then \
export TESTSUITE_TEMP=$(realpath $(omp_root))$(SLASH)tmp ; \
export LIBRARY_PATH=$(libiomp5_path):$(LIBRARY_PATH) ; \
export LD_LIBRARY_PATH=$(libiomp5_path):$(LD_LIBRARY_PATH) ; \
export DYLD_LIBRARY_PATH=$(libiomp5_path):$(DYLD_LIBRARY_PATH) ; \
cd $(omp_root)$(SLASH)..$(SLASH)testsuite ; \
make ctest ; \
python adding_xfails.py ; \
llvm-lit -j 1 $(realpath $(omp_root))$(SLASH)..$(SLASH)testsuite$(SLASH)LLVM-IR$(SLASH)$(test_path) -v ; \
else \
echo "No test directory" ; exit 1; \
fi; else echo "No llvm-lit in $(PATH)"; exit 1; fi
test-clean:
make -C ..$(SLASH)testsuite cleanall

View File

@ -0,0 +1,18 @@
#!/usr/bin/perl
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
# LIBOMP modules.
use Build;
use LibOMP;
use Platform ":vars";
use Uname;
use tools;
my $root_dir = $ENV{ LIBOMP_WORK };
print join('', $target_platform, "/");

View File

@ -0,0 +1,18 @@
#!/usr/bin/perl
use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
# LIBOMP modules.
use Build;
use LibOMP;
use Platform ":vars";
use Uname;
use tools;
my $root_dir = $ENV{ LIBOMP_WORK };
print join('', $root_dir, "/", "exports", "/", $target_platform, "/", "lib");

View File

@ -0,0 +1,78 @@
# -*- Python -*-
# Configuration file for the 'lit' test runner.
import os
import sys
import re
import platform
try:
import lit.util
import lit.formats
except ImportError:
pass
# name: The name of this test suite.
config.name = 'OpenMPValidationSuite'
# testFormat: The test format to use to interpret tests.
config.test_format = lit.formats.ShTest(execute_external=False)
# suffixes: A list of file extensions to treat as test files
# Note this can be overridden by lit.local.cfg files
config.suffixes = ['.ll']
# test_source_root: The root path where tests are located.
#config.test_source_root = "/home/ichoyjx/install/openmp/testsuite/bin"
#os.path.dirname(__file__)
# test_exec_root: The root path where tests should be run.
#mpvs_obj_root = getattr(config, 'mpvs_obj_root', None)
#if mpvs_obj_root is not None:
config.test_exec_root = "./"
#os.path.join(mpvs_obj_root, 'src')
# Discover the 'clang' and 'clangcc' to use.
import os
def inferClang(PATH):
# Determine which clang to use.
clang = os.getenv('CLANG')
# If the user set clang in the environment, definitely use that and don't
# try to validate.
if clang:
return clang
# Otherwise look in the path.
clang = lit.util.which('clang', PATH)
if not clang:
lit_config.fatal("couldn't find 'clang' program, try setting "
"CLANG in your environment")
return clang
config.clang = inferClang(config.environment['PATH']).replace('\\', '/')
config.substitutions.append( ('%clang', ' ' + config.clang + ' ') )
# Propogate some environment variable to test environment.
def addEnv(name):
if name in os.environ:
config.environment[name] = os.environ[name]
addEnv('HOME')
addEnv('PWD')
addEnv('C_INCLUDE_PATH')
addEnv('CPLUS_INCLUDE_PATH')
addEnv('LIBRARY_PATH')
addEnv('LD_LIBRARY_PATH')
addEnv('DYLD_LIBRARY_PATH')
# Check that the object root is known.
if config.test_exec_root is None:
lit.fatal('test execution root not set!')

View File

@ -0,0 +1,30 @@
## Autogenerated by LLVM/Clang configuration.
#config.mpvs_src_root = "/home/ichoyjx/install/openmp/testsuite/bin/c"
config.mpvs_obj_root = "/tmp"
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
# Needed to check if a hack needs to be applied
config.llvm_version_major = "@LLVM_VERSION_MAJOR@"
# Compilers
# FIXME: use llvmcc not llvmgcc
config.llvmclang = "clang"
# Features
config.enable_uclibc = True if @ENABLE_UCLIBC@ == 1 else False
config.enable_posix_runtime = True if @ENABLE_POSIX_RUNTIME@ == 1 else False
config.have_selinux = True if @HAVE_SELINUX@ == 1 else False
# Current target
config.target_triple = "@TARGET_TRIPLE@"
# Let the main config do the real work.
try:
lit
except NameError:
# Use lit_config class
lit_config.load_config(config, "@MPVS_SOURCE_DIR@/lit.cfg")
else:
# Use old lit class
lit.load_config(config, "@MPVS_SOURCE_DIR@/lit.cfg")

View File

@ -0,0 +1 @@
../LLVM-IR/lin_32e/

View File

@ -34,14 +34,19 @@
# 3. Compiler selection and Flags
#########################################################
# GNU Compiler
CC = gcc
CFLAGS = -fopenmp -lm -O3
CFLAGS = -fopenmp -lm -O3
# CLANG Compiler
CC = clang
CFLAGS = -fopenmp -S -emit-llvm
FC = gfortran
FFLAGS = -fopenmp -lm
FFLAGS = -fopenmp -lm -O3
# GNU Compiler
# CC = gcc
# CFLAGS = -fopenmp -lm -O3
# FC = gfortran
# FFLAGS = -fopenmp -lm
# FFLAGS = -fopenmp -lm -O3
# Fujitsu Compilers:
#CC = fcc
@ -148,6 +153,10 @@ FFLAGS = -fopenmp -lm -O3
#FC = uhf90
#FFLAGS = -mp
# Check path
FILE=LLVM-IR/lit.tmp
CHECK_PATH=`cat $(FILE)`
#########################################################################
help:
@ -170,9 +179,11 @@ help:
@echo " cleanlogs"
@echo " Remove all *.log files from bin/ directory"
@echo " clean"
@echo " Remove all sources and executables from bin/ directory"
@echo " cleanall"
@echo " Remove the entire bin/ directory"
@echo " Clean out and log files"
@echo " distclean"
@echo " Clean arch test directory with clean"
@echo " veryclean"
@echo " Remove the entire bin/c directory with distclean"
omp_my_sleep:
mkdir -p bin/c
@ -187,6 +198,7 @@ omp_testsuite.h: ompts-c.conf c/*
ctest: omp_my_sleep omp_testsuite
./runtest.pl --lang=c testlist-c.txt
cd bin/; make -j
ftest:
mkdir -p bin/fortran
@ -206,17 +218,37 @@ print_compile_options:
@echo "compilation: $(FC) $(FFLAGS)"
@$(FC) --version
path_to_arch=$(shell ../runtime/tools/check-openmp-test.pl)
cleansrcs:
find bin/ -iname "*.[cf]" -exec rm {} \;
find bin/ -iname "*.[cf]" -exec rm -rf {} \;
cleanbins:
find bin/ -perm /a+x -type f -exec rm {} \;
find bin/c -perm /a+x -type f -exec rm -rf {} \;
find ./bin/c -not -name "*.c" -a -not -name "*.ll" -type f -exec rm -rf {} \;
cleanouts:
find bin/ -iname "*.out" -exec rm {} \;
find bin/ -iname "*.out" -exec rm -rf {} \;
cleanlogs:
find bin/ -iname "*.log" -exec rm {} \;
find bin/ -iname "*.log" -exec rm -rf {} \;
rm -rf ./$(path_to_arch)
clean: cleansrcs cleanbins
clean: cleanouts cleanlogs cleanbins cleansrcs
distclean: clean
rm -rf bin/c/*
rm -rf LLVM-IR/$(CHECK_PATH)
veryclean: distclean
rm -rf bin/c/
rm -rf bin/fortran/
cleanall:
rm -rf ./bin/c/
rm -rf ./bin/fortran/
rm -rf ./LLVM-IR/$(path_to_arch)
rm -rf ./$(path_to_arch)
rm -rf ./*.log
cleanall:
rm -rf bin/

View File

@ -0,0 +1,46 @@
============================================================================
| To use the OpenMP Validation Suite for testing |
| LLVM OpenMP Implementation |
| High Performance Computing and Tools, |
| University of Houston |
| Jan. 2015 |
============================================================================
Two new files have been added to openmp/runtime: check-openmp.pl and check-openmp-test.pl
Go to /openmp/runtime, run:
make test
make test-clean
------------------------------------------------------------------------------
For the OpenMP-LLVM Project, following are the Files and Directories to know about:
c Directory containing the templates for the c tests
fortran Directory containing the templates for the Fortran
Makefile Makefile containing options for compilation
README_LLVM_OPENMP README file for to use the OpenMP test-suite
README_OpenMP_Validation_Suite README file on the Validation Suite, templates, etc.,
as a basis for testing the LLVM OpenMP implementation.
LLVM_IR Directory containing target-specific IR files
bin/lit files In the lit model, every test must exist inside some test suite.
lit resolves the inputs specified on the command line to
test suites by searching upwards from the input path
until it finds a lit.cfg or lit.site.cfg file.
These files serve as both a marker of test suites and
as configuration files which lit loads in order to
understand how to find and run the tests inside the test suite.
bin/header Header for the tests, calls clang driver for the test,
and executes the resulting executable
bin/Makefile To generate LLVM_IR files
bin/distribute.sh Generates LLVM_IR files, finds the architecture and OS, moves
the generated IR files to the corresponding folder
runtime/tools/check-openmp.pl Retrieving the right path
runtime/tools/
check-openmp-test.pl Returns the architecture and OS, e.g. lin_32e
------------------------------------------------------------------------------
Contact and Support
==============================================================================
Contact: http://www.cs.uh.edu/~hpctools/
Email: sunita@cs.uh.edu

View File

@ -0,0 +1,32 @@
import os
import commands
perl = "/usr/bin/perl"
LLVM = "./LLVM-IR/"
temp_filename = "temp"
XFAIL_text = "; XFAIL: *\n"
arch_file_list = dict()
arch_file_list['lin_32e'] = ['test_omp_task_final.ll', 'test_omp_task_untied.ll']
arch_script = "../runtime/tools/check-openmp-test.pl"
arch_cmd = perl + " " + arch_script
arch = commands.getoutput(arch_cmd)
arch = arch[:len(arch)-1]
print "Adding XFAILS ..."
for f in arch_file_list[arch]:
filename = LLVM + arch + "/" + f
lines = open(filename).readlines()
lines.insert(1, XFAIL_text)
f2 = open(temp_filename, "w")
for l in lines:
f2.write(l)
f2.close()
os.system("mv " + temp_filename + " " + filename)

View File

@ -0,0 +1,23 @@
CC = clang
CFLAGS = -fopenmp -S -emit-llvm
INCL =
LIBS =
BIN =
SRC_DIR = ./c
SRC_FILES := $(foreach DIR, $(SRC_DIR), $(wildcard $(SRC_DIR)/*.c))
OBJS := $(patsubst %.c, %.o, $(SRC_FILES))
TARGETLIST := $(patsubst %.c, %, $(SRC_FILES))
all:$(TARGETLIST)
./distribute.sh
@ echo all done
.PHONY: clean
$(TARGETLIST): $(SRC_FILES)
$(CC) $(CFLAGS) $(LIBS) $(INCL) $@.c -o $@.ll
clean:
@ rm -rf c/*
@ echo clean bin done

View File

@ -0,0 +1,125 @@
#!/bin/bash
# add header for .ll files
# get tmp header
cp header /tmp/tmp.header
echo >> /tmp/tmp.header
# create temporary test package
mkdir c-$MACHTYPE$OSTYPE
`cp c/*.ll c-$MACHTYPE$OSTYPE/`
# add new header into .ll files
for file in c-$MACHTYPE$OSTYPE/*
do
cp $file /tmp/tmp.ll.bf
cat /tmp/tmp.header /tmp/tmp.ll.bf > /tmp/tmp.ll
mv /tmp/tmp.ll $file
done
# in bin/, target is ../LLVM-IR/ARCH/OS
LEVEL=../LLVM-IR/
ARCH_PATH=../LLVM-IR/
OS_PATH=../LLVM-IR/
# for linux system, add your arch and os here
declare -a ARCHes=(x86 x86_64 powerpc arm mips darwin)
declare -a OSes=(linux macosx windows darwin)
declare lowerARCH
declare lowerOS
# target directory name
declare upperARCH
declare upperOS
lowerARCH=$(echo "$MACHTYPE" | tr '[:upper:]' '[:lower:]')
lowerOS=$(echo "$OSTYPE" | tr '[:upper:]' '[:lower:]')
# ARCH
for i in ${ARCHes[@]}
do
result=$(echo "${lowerARCH}" | grep $i)
if [[ "$result" != "" ]]
then
# upperARCH=$i
upperARCH=$(echo "$i" | tr '[:lower:]' '[:upper:]')
fi
done
if [[ "$upperARCH" == "" ]]
then
echo "Not found ${lowerARCH} in the [${ARCHes[@]}]!"
exit
fi
# OS
for i in ${OSes[@]}
do
result=$(echo "${lowerOS}" | grep $i)
if [[ "$result" != "" ]]
then
# upperOS=$i
upperOS=$(echo "$i" | tr '[:lower:]' '[:upper:]')
fi
done
if [[ "$upperOS" == "" ]]
then
echo "Not found ${lowerOS} in the [${OSes[@]}]!"
exit
fi
# survived, assemble the path
# ARCH_PATH+=$upperARCH/
# OS_PATH+=$upperARCH/$upperOS/
ARCH_newFormat=.
if [ $upperARCH = "X86" ]; then
ARCH_newFormat=32
else
ARCH_newFormat=32e
fi
OS_newFormat=.
if [ $upperOS = "LINUX" ]; then
OS_newFormat=lin
elif [ $upperOS = "MACOSX" ]; then
OS_newFormat=mac
elif [ $upperOS = "WINDOWS" ]; then
OS_newFormat=win
elif [ $upperOS = "DARWIN" ]; then
OS_newFormat=dar
else
OS_newFormat=unknown
fi
OS_PATH+=$OS_newFormat"_"$ARCH_newFormat
# test and create directory
if [ ! -d "$LEVEL" ]; then
mkdir $LEVEL
mkdir $OS_PATH
else
if [ ! -d "$OS_PATH" ]; then
mkdir $OS_PATH
fi
fi
# reserve the tmp path to LLVM-IR/ARCH/OS
echo $OS_PATH"/" > lit.tmp
# OS_ARCH=$OS_newFormat"_"$ARCH_newFormat
# echo -e "if not '$OS_ARCH' in config.root.targets:" > $OS_PATH'/'lit.local.cfg
# echo -e "\tconfig.unsupported = True" >> $OS_PATH'/'lit.local.cfg
# copy *.ll files to ARCH/OS
`cp lit.* $LEVEL`
# omit orph test
`rm c-$MACHTYPE$OSTYPE/ctest_*.ll`
`rm c-$MACHTYPE$OSTYPE/orph_ctest_*.ll`
`cp c-$MACHTYPE$OSTYPE/*.ll $OS_PATH`
# clean
`rm /tmp/tmp.*`
rm -rf c-$MACHTYPE$OSTYPE/

View File

@ -0,0 +1,6 @@
; RUN: %clang -liomp5 -lm %s -o %t && %t 2>&1 | FileCheck %s
; CHECK-NOT: Test failed
; CHECK: Directive worked without errors

View File

@ -0,0 +1,78 @@
# -*- Python -*-
# Configuration file for the 'lit' test runner.
import os
import sys
import re
import platform
try:
import lit.util
import lit.formats
except ImportError:
pass
# name: The name of this test suite.
config.name = 'OpenMPValidationSuite'
# testFormat: The test format to use to interpret tests.
config.test_format = lit.formats.ShTest(execute_external=False)
# suffixes: A list of file extensions to treat as test files
# Note this can be overridden by lit.local.cfg files
config.suffixes = ['.ll']
# test_source_root: The root path where tests are located.
#config.test_source_root = "/home/ichoyjx/install/openmp/testsuite/bin"
#os.path.dirname(__file__)
# test_exec_root: The root path where tests should be run.
#mpvs_obj_root = getattr(config, 'mpvs_obj_root', None)
#if mpvs_obj_root is not None:
config.test_exec_root = "./"
#os.path.join(mpvs_obj_root, 'src')
# Discover the 'clang' and 'clangcc' to use.
import os
def inferClang(PATH):
# Determine which clang to use.
clang = os.getenv('CLANG')
# If the user set clang in the environment, definitely use that and don't
# try to validate.
if clang:
return clang
# Otherwise look in the path.
clang = lit.util.which('clang', PATH)
if not clang:
lit_config.fatal("couldn't find 'clang' program, try setting "
"CLANG in your environment")
return clang
config.clang = inferClang(config.environment['PATH']).replace('\\', '/')
config.substitutions.append( ('%clang', ' ' + config.clang + ' ') )
# Propogate some environment variable to test environment.
def addEnv(name):
if name in os.environ:
config.environment[name] = os.environ[name]
addEnv('HOME')
addEnv('PWD')
addEnv('C_INCLUDE_PATH')
addEnv('CPLUS_INCLUDE_PATH')
addEnv('LIBRARY_PATH')
addEnv('LD_LIBRARY_PATH')
addEnv('DYLD_LIBRARY_PATH')
# Check that the object root is known.
if config.test_exec_root is None:
lit.fatal('test execution root not set!')

View File

@ -0,0 +1,30 @@
## Autogenerated by LLVM/Clang configuration.
#config.mpvs_src_root = "/home/ichoyjx/install/openmp/testsuite/bin/c"
config.mpvs_obj_root = "/tmp"
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
# Needed to check if a hack needs to be applied
config.llvm_version_major = "@LLVM_VERSION_MAJOR@"
# Compilers
# FIXME: use llvmcc not llvmgcc
config.llvmclang = "clang"
# Features
config.enable_uclibc = True if @ENABLE_UCLIBC@ == 1 else False
config.enable_posix_runtime = True if @ENABLE_POSIX_RUNTIME@ == 1 else False
config.have_selinux = True if @HAVE_SELINUX@ == 1 else False
# Current target
config.target_triple = "@TARGET_TRIPLE@"
# Let the main config do the real work.
try:
lit
except NameError:
# Use lit_config class
lit_config.load_config(config, "@MPVS_SOURCE_DIR@/lit.cfg")
else:
# Use old lit class
lit.load_config(config, "@MPVS_SOURCE_DIR@/lit.cfg")

View File

@ -0,0 +1 @@
../LLVM-IR/lin_32e/

View File

@ -1,2 +0,0 @@
# Add custom tests in this list
omp_parallel_copyin

View File

@ -26,139 +26,139 @@
/**********************************************************/
#define NUM_TASKS 25
#define MAX_TASKS_PER_THREAD 5
int test_omp_nested(FILE * logfile); /* Test for omp_nested */
int crosstest_omp_nested(FILE * logfile); /* Crosstest for omp_nested */
int test_omp_nest_lock(FILE * logfile); /* Test for omp_nest_lock */
int crosstest_omp_nest_lock(FILE * logfile); /* Crosstest for omp_nest_lock */
int test_omp_task_if(FILE * logfile); /* Test for omp task if */
int crosstest_omp_task_if(FILE * logfile); /* Crosstest for omp task if */
int test_omp_parallel_for_ordered(FILE * logfile); /* Test for omp parallel for ordered */
int crosstest_omp_parallel_for_ordered(FILE * logfile); /* Crosstest for omp parallel for ordered */
int test_omp_task_imp_firstprivate(FILE * logfile); /* Test for omp task */
int crosstest_omp_task_imp_firstprivate(FILE * logfile); /* Crosstest for omp task */
int test_omp_taskwait(FILE * logfile); /* Test for omp taskwait */
int crosstest_omp_taskwait(FILE * logfile); /* Crosstest for omp taskwait */
int test_omp_barrier(FILE * logfile); /* Test for omp barrier */
int crosstest_omp_barrier(FILE * logfile); /* Crosstest for omp barrier */
int test_omp_parallel_for_if(FILE * logfile); /* Test for omp parallel for if */
int crosstest_omp_parallel_for_if(FILE * logfile); /* Crosstest for omp parallel for if */
int test_omp_atomic(FILE * logfile); /* Test for omp atomic */
int crosstest_omp_atomic(FILE * logfile); /* Crosstest for omp atomic */
int test_omp_get_num_threads(FILE * logfile); /* Test for omp_get_num_threads */
int crosstest_omp_get_num_threads(FILE * logfile); /* Crosstest for omp_get_num_threads */
int test_omp_section_private(FILE * logfile); /* Test for omp section private */
int crosstest_omp_section_private(FILE * logfile); /* Crosstest for omp section private */
int test_omp_parallel_if(FILE * logfile); /* Test for omp parallel if */
int crosstest_omp_parallel_if(FILE * logfile); /* Crosstest for omp parallel if */
int test_omp_lock(FILE * logfile); /* Test for omp_lock */
int crosstest_omp_lock(FILE * logfile); /* Crosstest for omp_lock */
int test_omp_parallel_shared(FILE * logfile); /* Test for omp parallel shared */
int crosstest_omp_parallel_shared(FILE * logfile); /* Crosstest for omp parallel shared */
int test_omp_task_imp_shared(FILE * logfile); /* Test for omp task */
int crosstest_omp_task_imp_shared(FILE * logfile); /* Crosstest for omp task */
int test_omp_task_private(FILE * logfile); /* Test for omp task private */
int crosstest_omp_task_private(FILE * logfile); /* Crosstest for omp task private */
int test_omp_section_lastprivate(FILE * logfile); /* Test for omp section lastprivate */
int crosstest_omp_section_lastprivate(FILE * logfile); /* Crosstest for omp section lastprivate */
int test_omp_parallel_firstprivate(FILE * logfile); /* Test for omp parallel firstprivate */
int crosstest_omp_parallel_firstprivate(FILE * logfile); /* Crosstest for omp parallel firstprivate */
int test_omp_for_auto(FILE * logfile); /* Test for omp for auto */
int crosstest_omp_for_auto(FILE * logfile); /* Crosstest for omp for auto */
int test_omp_for_schedule_static(FILE * logfile); /* Test for omp for schedule(static) */
int crosstest_omp_for_schedule_static(FILE * logfile); /* Crosstest for omp for schedule(static) */
int test_omp_threadprivate_for(FILE * logfile); /* Test for omp threadprivate */
int crosstest_omp_threadprivate_for(FILE * logfile); /* Crosstest for omp threadprivate */
int test_omp_task_untied(FILE * logfile); /* Test for omp task untied */
int crosstest_omp_task_untied(FILE * logfile); /* Crosstest for omp task untied */
int test_omp_parallel_private(FILE * logfile); /* Test for omp parallel private */
int crosstest_omp_parallel_private(FILE * logfile); /* Crosstest for omp parallel private */
int test_omp_single_nowait(FILE * logfile); /* Test for omp single nowait */
int crosstest_omp_single_nowait(FILE * logfile); /* Crosstest for omp single nowait */
int test_omp_critical(FILE * logfile); /* Test for omp critical */
int crosstest_omp_critical(FILE * logfile); /* Crosstest for omp critical */
int test_omp_get_wtick(FILE * logfile); /* Test for omp_get_wtick */
int crosstest_omp_get_wtick(FILE * logfile); /* Crosstest for omp_get_wtick */
int test_omp_single(FILE * logfile); /* Test for omp single */
int crosstest_omp_single(FILE * logfile); /* Crosstest for omp single */
int test_omp_parallel_sections_reduction(FILE * logfile); /* Test for omp parallel sections reduction */
int crosstest_omp_parallel_sections_reduction(FILE * logfile); /* Crosstest for omp parallel sections reduction */
int test_omp_for_schedule_dynamic(FILE * logfile); /* Test for omp for schedule(dynamic) */
int crosstest_omp_for_schedule_dynamic(FILE * logfile); /* Crosstest for omp for schedule(dynamic) */
int test_has_openmp(FILE * logfile); /* Test for _OPENMP */
int crosstest_has_openmp(FILE * logfile); /* Crosstest for _OPENMP */
int test_omp_taskwait(FILE * logfile); /* Test for omp taskwait */
int crosstest_omp_taskwait(FILE * logfile); /* Crosstest for omp taskwait */
int test_omp_parallel_for_lastprivate(FILE * logfile); /* Test for omp parallel for lastprivate */
int crosstest_omp_parallel_for_lastprivate(FILE * logfile); /* Crosstest for omp parallel for lastprivate */
int test_omp_for_schedule_static_3(FILE * logfile); /* Test for omp for schedule(static) */
int crosstest_omp_for_schedule_static_3(FILE * logfile); /* Crosstest for omp for schedule(static) */
int test_omp_critical(FILE * logfile); /* Test for omp critical */
int crosstest_omp_critical(FILE * logfile); /* Crosstest for omp critical */
int test_omp_parallel_sections_lastprivate(FILE * logfile); /* Test for omp parallel sections lastprivate */
int crosstest_omp_parallel_sections_lastprivate(FILE * logfile); /* Crosstest for omp parallel sections lastprivate */
int test_omp_parallel_num_threads(FILE * logfile); /* Test for omp parellel num_threads */
int crosstest_omp_parallel_num_threads(FILE * logfile); /* Crosstest for omp parellel num_threads */
int test_omp_sections_reduction(FILE * logfile); /* Test for omp sections reduction */
int crosstest_omp_sections_reduction(FILE * logfile); /* Crosstest for omp sections reduction */
int test_omp_parallel_if(FILE * logfile); /* Test for omp parallel if */
int crosstest_omp_parallel_if(FILE * logfile); /* Crosstest for omp parallel if */
int test_omp_task_imp_shared(FILE * logfile); /* Test for omp task */
int crosstest_omp_task_imp_shared(FILE * logfile); /* Crosstest for omp task */
int test_omp_section_lastprivate(FILE * logfile); /* Test for omp section lastprivate */
int crosstest_omp_section_lastprivate(FILE * logfile); /* Crosstest for omp section lastprivate */
int test_omp_for_collapse(FILE * logfile); /* Test for omp for collapse */
int crosstest_omp_for_collapse(FILE * logfile); /* Crosstest for omp for collapse */
int test_omp_parallel_for_firstprivate(FILE * logfile); /* Test for omp parallel for firstprivate */
int crosstest_omp_parallel_for_firstprivate(FILE * logfile); /* Crosstest for omp parallel for firstprivate */
int test_omp_parallel_copyin(FILE * logfile); /* Test for omp parallel copyin */
int crosstest_omp_parallel_copyin(FILE * logfile); /* Crosstest for omp parallel copyin */
int test_omp_test_nest_lock(FILE * logfile); /* Test for omp_test_nest_lock */
int crosstest_omp_test_nest_lock(FILE * logfile); /* Crosstest for omp_test_nest_lock */
int test_omp_for_ordered(FILE * logfile); /* Test for omp for ordered */
int crosstest_omp_for_ordered(FILE * logfile); /* Crosstest for omp for ordered */
int test_omp_parallel_reduction(FILE * logfile); /* Test for omp parallel reduction */
int crosstest_omp_parallel_reduction(FILE * logfile); /* Crosstest for omp parallel reduction */
int test_omp_get_wtick(FILE * logfile); /* Test for omp_get_wtick */
int crosstest_omp_get_wtick(FILE * logfile); /* Crosstest for omp_get_wtick */
int test_omp_taskyield(FILE * logfile); /* Test for omp taskyield */
int crosstest_omp_taskyield(FILE * logfile); /* Crosstest for omp taskyield */
int test_omp_for_schedule_static(FILE * logfile); /* Test for omp for schedule(static) */
int crosstest_omp_for_schedule_static(FILE * logfile); /* Crosstest for omp for schedule(static) */
int test_omp_single_private(FILE * logfile); /* Test for omp singel private */
int crosstest_omp_single_private(FILE * logfile); /* Crosstest for omp singel private */
int test_omp_for_firstprivate(FILE * logfile); /* Test for omp for firstprivate */
int crosstest_omp_for_firstprivate(FILE * logfile); /* Crosstest for omp for firstprivate */
int test_omp_parallel_for_reduction(FILE * logfile); /* Test for omp parallel for reduction */
int crosstest_omp_parallel_for_reduction(FILE * logfile); /* Crosstest for omp parallel for reduction */
int test_omp_parallel_for_if(FILE * logfile); /* Test for omp parallel for if */
int crosstest_omp_parallel_for_if(FILE * logfile); /* Crosstest for omp parallel for if */
int test_omp_single_nowait(FILE * logfile); /* Test for omp single nowait */
int crosstest_omp_single_nowait(FILE * logfile); /* Crosstest for omp single nowait */
int test_omp_task_firstprivate(FILE * logfile); /* Test for omp task firstprivate */
int crosstest_omp_task_firstprivate(FILE * logfile); /* Crosstest for omp task firstprivate */
int test_omp_for_nowait(FILE * logfile); /* Test for omp parallel for nowait */
int crosstest_omp_for_nowait(FILE * logfile); /* Crosstest for omp parallel for nowait */
int test_omp_task_private(FILE * logfile); /* Test for omp task private */
int crosstest_omp_task_private(FILE * logfile); /* Crosstest for omp task private */
int test_omp_test_lock(FILE * logfile); /* Test for omp_test_lock */
int crosstest_omp_test_lock(FILE * logfile); /* Crosstest for omp_test_lock */
int test_omp_get_wtime(FILE * logfile); /* Test for omp_get_wtime */
int crosstest_omp_get_wtime(FILE * logfile); /* Crosstest for omp_get_wtime */
int test_omp_task_imp_firstprivate(FILE * logfile); /* Test for omp task */
int crosstest_omp_task_imp_firstprivate(FILE * logfile); /* Crosstest for omp task */
int test_omp_atomic(FILE * logfile); /* Test for omp atomic */
int crosstest_omp_atomic(FILE * logfile); /* Crosstest for omp atomic */
int test_omp_threadprivate_for(FILE * logfile); /* Test for omp threadprivate */
int crosstest_omp_threadprivate_for(FILE * logfile); /* Crosstest for omp threadprivate */
int test_omp_single_copyprivate(FILE * logfile); /* Test for omp single copyprivate */
int crosstest_omp_single_copyprivate(FILE * logfile); /* Crosstest for omp single copyprivate */
int test_omp_master(FILE * logfile); /* Test for omp master */
int crosstest_omp_master(FILE * logfile); /* Crosstest for omp master */
int test_omp_parallel_firstprivate(FILE * logfile); /* Test for omp parallel firstprivate */
int crosstest_omp_parallel_firstprivate(FILE * logfile); /* Crosstest for omp parallel firstprivate */
int test_omp_parallel_for_private(FILE * logfile); /* Test for omp parallel for private */
int crosstest_omp_parallel_for_private(FILE * logfile); /* Crosstest for omp parallel for private */
int test_omp_parallel_default(FILE * logfile); /* Test for omp parallel default */
int crosstest_omp_parallel_default(FILE * logfile); /* Crosstest for omp parallel default */
int test_omp_parallel_for_ordered(FILE * logfile); /* Test for omp parallel for ordered */
int crosstest_omp_parallel_for_ordered(FILE * logfile); /* Crosstest for omp parallel for ordered */
int test_has_openmp(FILE * logfile); /* Test for _OPENMP */
int crosstest_has_openmp(FILE * logfile); /* Crosstest for _OPENMP */
int test_omp_parallel_for_lastprivate(FILE * logfile); /* Test for omp parallel for lastprivate */
int crosstest_omp_parallel_for_lastprivate(FILE * logfile); /* Crosstest for omp parallel for lastprivate */
int test_omp_parallel_sections_lastprivate(FILE * logfile); /* Test for omp parallel sections lastprivate */
int crosstest_omp_parallel_sections_lastprivate(FILE * logfile); /* Crosstest for omp parallel sections lastprivate */
int test_omp_for_lastprivate(FILE * logfile); /* Test for omp for lastprivate */
int crosstest_omp_for_lastprivate(FILE * logfile); /* Crosstest for omp for lastprivate */
int test_omp_lock(FILE * logfile); /* Test for omp_lock */
int crosstest_omp_lock(FILE * logfile); /* Crosstest for omp_lock */
int test_omp_barrier(FILE * logfile); /* Test for omp barrier */
int crosstest_omp_barrier(FILE * logfile); /* Crosstest for omp barrier */
int test_omp_sections_nowait(FILE * logfile); /* Test for omp parallel sections nowait */
int crosstest_omp_sections_nowait(FILE * logfile); /* Crosstest for omp parallel sections nowait */
int test_omp_master_3(FILE * logfile); /* Test for omp master */
int crosstest_omp_master_3(FILE * logfile); /* Crosstest for omp master */
int test_omp_task_untied(FILE * logfile); /* Test for omp task untied */
int crosstest_omp_task_untied(FILE * logfile); /* Crosstest for omp task untied */
int test_omp_task(FILE * logfile); /* Test for omp task */
int crosstest_omp_task(FILE * logfile); /* Crosstest for omp task */
int test_omp_in_parallel(FILE * logfile); /* Test for omp_in_parallel */
int crosstest_omp_in_parallel(FILE * logfile); /* Crosstest for omp_in_parallel */
int test_omp_parallel_sections_firstprivate(FILE * logfile); /* Test for omp parallel sections firstprivate */
int crosstest_omp_parallel_sections_firstprivate(FILE * logfile); /* Crosstest for omp parallel sections firstprivate */
int test_omp_for_auto(FILE * logfile); /* Test for omp for auto */
int crosstest_omp_for_auto(FILE * logfile); /* Crosstest for omp for auto */
int test_omp_task_final(FILE * logfile); /* Test for omp task final */
int crosstest_omp_task_final(FILE * logfile); /* Crosstest for omp task final */
int test_omp_section_private(FILE * logfile); /* Test for omp section private */
int crosstest_omp_section_private(FILE * logfile); /* Crosstest for omp section private */
int test_omp_parallel_for_reduction(FILE * logfile); /* Test for omp parallel for reduction */
int crosstest_omp_parallel_for_reduction(FILE * logfile); /* Crosstest for omp parallel for reduction */
int test_omp_test_lock(FILE * logfile); /* Test for omp_test_lock */
int crosstest_omp_test_lock(FILE * logfile); /* Crosstest for omp_test_lock */
int test_omp_parallel_for_firstprivate(FILE * logfile); /* Test for omp parallel for firstprivate */
int crosstest_omp_parallel_for_firstprivate(FILE * logfile); /* Crosstest for omp parallel for firstprivate */
int test_omp_parallel_sections_private(FILE * logfile); /* Test for omp parallel sections private */
int crosstest_omp_parallel_sections_private(FILE * logfile); /* Crosstest for omp parallel sections private */
int test_omp_parallel_num_threads(FILE * logfile); /* Test for omp parellel num_threads */
int crosstest_omp_parallel_num_threads(FILE * logfile); /* Crosstest for omp parellel num_threads */
int test_omp_for_reduction(FILE * logfile); /* Test for omp for reduction */
int crosstest_omp_for_reduction(FILE * logfile); /* Crosstest for omp for reduction */
int test_omp_for_private(FILE * logfile); /* Test for omp for private */
int crosstest_omp_for_private(FILE * logfile); /* Crosstest for omp for private */
int test_omp_flush(FILE * logfile); /* Test for omp flush */
int crosstest_omp_flush(FILE * logfile); /* Crosstest for omp flush */
int test_omp_parallel_private(FILE * logfile); /* Test for omp parallel private */
int crosstest_omp_parallel_private(FILE * logfile); /* Crosstest for omp parallel private */
int test_omp_sections_nowait(FILE * logfile); /* Test for omp parallel sections nowait */
int crosstest_omp_sections_nowait(FILE * logfile); /* Crosstest for omp parallel sections nowait */
int test_omp_parallel_reduction(FILE * logfile); /* Test for omp parallel reduction */
int crosstest_omp_parallel_reduction(FILE * logfile); /* Crosstest for omp parallel reduction */
int test_omp_nested(FILE * logfile); /* Test for omp_nested */
int crosstest_omp_nested(FILE * logfile); /* Crosstest for omp_nested */
int test_omp_threadprivate(FILE * logfile); /* Test for omp threadprivate */
int crosstest_omp_threadprivate(FILE * logfile); /* Crosstest for omp threadprivate */
int test_omp_section_firstprivate(FILE * logfile); /* Test for omp firstprivate */
int crosstest_omp_section_firstprivate(FILE * logfile); /* Crosstest for omp firstprivate */
int test_omp_sections_reduction(FILE * logfile); /* Test for omp sections reduction */
int crosstest_omp_sections_reduction(FILE * logfile); /* Crosstest for omp sections reduction */
int test_omp_for_schedule_guided(FILE * logfile); /* Test for omp for schedule(guided) */
int crosstest_omp_for_schedule_guided(FILE * logfile); /* Crosstest for omp for schedule(guided) */
int test_omp_get_num_threads(FILE * logfile); /* Test for omp_get_num_threads */
int crosstest_omp_get_num_threads(FILE * logfile); /* Crosstest for omp_get_num_threads */
int test_omp_task_final(FILE * logfile); /* Test for omp task final */
int crosstest_omp_task_final(FILE * logfile); /* Crosstest for omp task final */
int test_omp_parallel_for_private(FILE * logfile); /* Test for omp parallel for private */
int crosstest_omp_parallel_for_private(FILE * logfile); /* Crosstest for omp parallel for private */
int test_omp_flush(FILE * logfile); /* Test for omp flush */
int crosstest_omp_flush(FILE * logfile); /* Crosstest for omp flush */
int test_omp_for_private(FILE * logfile); /* Test for omp for private */
int crosstest_omp_for_private(FILE * logfile); /* Crosstest for omp for private */
int test_omp_for_ordered(FILE * logfile); /* Test for omp for ordered */
int crosstest_omp_for_ordered(FILE * logfile); /* Crosstest for omp for ordered */
int test_omp_single_copyprivate(FILE * logfile); /* Test for omp single copyprivate */
int crosstest_omp_single_copyprivate(FILE * logfile); /* Crosstest for omp single copyprivate */
int test_omp_task_if(FILE * logfile); /* Test for omp task if */
int crosstest_omp_task_if(FILE * logfile); /* Crosstest for omp task if */
int test_omp_section_firstprivate(FILE * logfile); /* Test for omp firstprivate */
int crosstest_omp_section_firstprivate(FILE * logfile); /* Crosstest for omp firstprivate */
int test_omp_for_schedule_static_3(FILE * logfile); /* Test for omp for schedule(static) */
int crosstest_omp_for_schedule_static_3(FILE * logfile); /* Crosstest for omp for schedule(static) */
int test_omp_task_firstprivate(FILE * logfile); /* Test for omp task firstprivate */
int crosstest_omp_task_firstprivate(FILE * logfile); /* Crosstest for omp task firstprivate */
int test_omp_for_collapse(FILE * logfile); /* Test for omp for collapse */
int crosstest_omp_for_collapse(FILE * logfile); /* Crosstest for omp for collapse */
int test_omp_in_parallel(FILE * logfile); /* Test for omp_in_parallel */
int crosstest_omp_in_parallel(FILE * logfile); /* Crosstest for omp_in_parallel */
int test_omp_for_schedule_dynamic(FILE * logfile); /* Test for omp for schedule(dynamic) */
int crosstest_omp_for_schedule_dynamic(FILE * logfile); /* Crosstest for omp for schedule(dynamic) */
int test_omp_for_firstprivate(FILE * logfile); /* Test for omp for firstprivate */
int crosstest_omp_for_firstprivate(FILE * logfile); /* Crosstest for omp for firstprivate */
int test_omp_master(FILE * logfile); /* Test for omp master */
int crosstest_omp_master(FILE * logfile); /* Crosstest for omp master */
int test_omp_single_private(FILE * logfile); /* Test for omp singel private */
int crosstest_omp_single_private(FILE * logfile); /* Crosstest for omp singel private */
int test_omp_task(FILE * logfile); /* Test for omp task */
int crosstest_omp_task(FILE * logfile); /* Crosstest for omp task */
int test_omp_parallel_default(FILE * logfile); /* Test for omp parallel default */
int crosstest_omp_parallel_default(FILE * logfile); /* Crosstest for omp parallel default */
int test_omp_for_nowait(FILE * logfile); /* Test for omp parallel for nowait */
int crosstest_omp_for_nowait(FILE * logfile); /* Crosstest for omp parallel for nowait */
int test_omp_test_nest_lock(FILE * logfile); /* Test for omp_test_nest_lock */
int crosstest_omp_test_nest_lock(FILE * logfile); /* Crosstest for omp_test_nest_lock */
int test_omp_nest_lock(FILE * logfile); /* Test for omp_nest_lock */
int crosstest_omp_nest_lock(FILE * logfile); /* Crosstest for omp_nest_lock */
int test_omp_parallel_copyin(FILE * logfile); /* Test for omp parallel copyin */
int crosstest_omp_parallel_copyin(FILE * logfile); /* Crosstest for omp parallel copyin */
int test_omp_master_3(FILE * logfile); /* Test for omp master */
int crosstest_omp_master_3(FILE * logfile); /* Crosstest for omp master */
int test_omp_get_wtime(FILE * logfile); /* Test for omp_get_wtime */
int crosstest_omp_get_wtime(FILE * logfile); /* Crosstest for omp_get_wtime */
#endif

View File

@ -5,7 +5,7 @@ int main()
int failed=0; /* Number of failed tests */
int success=0; /* number of succeeded tests */
static FILE * logFile; /* pointer onto the logfile */
static const char * logFileName = "bin/c/<testfunctionname></testfunctionname>.log"; /* name of the logfile */
static const char * logFileName = "<testfunctionname></testfunctionname>.log"; /* name of the logfile */
/* Open a new Logfile or overwrite the existing one. */