[Openmp-commits] [openmp] r236105 - UH OpenMP testsuite update

Andrey Churbanov Andrey.Churbanov at intel.com
Wed Apr 29 07:36:39 PDT 2015


Author: achurbanov
Date: Wed Apr 29 09:36:38 2015
New Revision: 236105

URL: http://llvm.org/viewvc/llvm-project?rev=236105&view=rev
Log:
UH OpenMP testsuite update

Added:
    openmp/trunk/runtime/tools/check-openmp-test.pl   (with props)
    openmp/trunk/runtime/tools/check-openmp.pl   (with props)
    openmp/trunk/testsuite/LLVM-IR/
    openmp/trunk/testsuite/LLVM-IR/lit.cfg
    openmp/trunk/testsuite/LLVM-IR/lit.site.cfg.in
    openmp/trunk/testsuite/LLVM-IR/lit.tmp
    openmp/trunk/testsuite/README_LLVM_OPENMP
    openmp/trunk/testsuite/README_OpenMP_Validation_Suite
    openmp/trunk/testsuite/adding_xfails.py   (with props)
    openmp/trunk/testsuite/bin/
    openmp/trunk/testsuite/bin/Makefile   (with props)
    openmp/trunk/testsuite/bin/distribute.sh   (with props)
    openmp/trunk/testsuite/bin/header
    openmp/trunk/testsuite/bin/lit.cfg
    openmp/trunk/testsuite/bin/lit.site.cfg.in
    openmp/trunk/testsuite/bin/lit.tmp
Removed:
    openmp/trunk/testsuite/README
    openmp/trunk/testsuite/customtest.txt
Modified:
    openmp/trunk/runtime/Makefile
    openmp/trunk/testsuite/Makefile
    openmp/trunk/testsuite/omp_testsuite.h
    openmp/trunk/testsuite/ompts_standaloneProc.c

Modified: openmp/trunk/runtime/Makefile
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/Makefile?rev=236105&r1=236104&r2=236105&view=diff
==============================================================================
--- openmp/trunk/runtime/Makefile (original)
+++ openmp/trunk/runtime/Makefile Wed Apr 29 09:36:38 2015
@@ -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
+
+

Added: openmp/trunk/runtime/tools/check-openmp-test.pl
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/tools/check-openmp-test.pl?rev=236105&view=auto
==============================================================================
--- openmp/trunk/runtime/tools/check-openmp-test.pl (added)
+++ openmp/trunk/runtime/tools/check-openmp-test.pl Wed Apr 29 09:36:38 2015
@@ -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, "/");
+

Propchange: openmp/trunk/runtime/tools/check-openmp-test.pl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openmp/trunk/runtime/tools/check-openmp-test.pl
------------------------------------------------------------------------------
    svn:executable = *

Propchange: openmp/trunk/runtime/tools/check-openmp-test.pl
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Rev URL

Propchange: openmp/trunk/runtime/tools/check-openmp-test.pl
------------------------------------------------------------------------------
    svn:mime-type = text/x-perl

Added: openmp/trunk/runtime/tools/check-openmp.pl
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/tools/check-openmp.pl?rev=236105&view=auto
==============================================================================
--- openmp/trunk/runtime/tools/check-openmp.pl (added)
+++ openmp/trunk/runtime/tools/check-openmp.pl Wed Apr 29 09:36:38 2015
@@ -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");
+

Propchange: openmp/trunk/runtime/tools/check-openmp.pl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openmp/trunk/runtime/tools/check-openmp.pl
------------------------------------------------------------------------------
    svn:executable = *

Propchange: openmp/trunk/runtime/tools/check-openmp.pl
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Rev URL

Propchange: openmp/trunk/runtime/tools/check-openmp.pl
------------------------------------------------------------------------------
    svn:mime-type = text/x-perl

Added: openmp/trunk/testsuite/LLVM-IR/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/LLVM-IR/lit.cfg?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/LLVM-IR/lit.cfg (added)
+++ openmp/trunk/testsuite/LLVM-IR/lit.cfg Wed Apr 29 09:36:38 2015
@@ -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!')

Added: openmp/trunk/testsuite/LLVM-IR/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/LLVM-IR/lit.site.cfg.in?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/LLVM-IR/lit.site.cfg.in (added)
+++ openmp/trunk/testsuite/LLVM-IR/lit.site.cfg.in Wed Apr 29 09:36:38 2015
@@ -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")

Added: openmp/trunk/testsuite/LLVM-IR/lit.tmp
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/LLVM-IR/lit.tmp?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/LLVM-IR/lit.tmp (added)
+++ openmp/trunk/testsuite/LLVM-IR/lit.tmp Wed Apr 29 09:36:38 2015
@@ -0,0 +1 @@
+../LLVM-IR/lin_32e/

Modified: openmp/trunk/testsuite/Makefile
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/Makefile?rev=236105&r1=236104&r2=236105&view=diff
==============================================================================
--- openmp/trunk/testsuite/Makefile (original)
+++ openmp/trunk/testsuite/Makefile Wed Apr 29 09:36:38 2015
@@ -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: cleanouts cleanlogs cleanbins cleansrcs
 
-clean: cleansrcs cleanbins
+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/
 

Removed: openmp/trunk/testsuite/README
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/README?rev=236104&view=auto
==============================================================================
--- openmp/trunk/testsuite/README (original)
+++ openmp/trunk/testsuite/README (removed)
@@ -1,334 +0,0 @@
- ============================================================================
-|                   OpenMP Validation Suite  V 3.0                           |
-|              High Performance Computing Center, Stuttgart                  |
-|       High Performance Computing and Tools, University of Houston          |
-|                              Jan. 2012                                     |
- ============================================================================
-
-
-TABLE OF CONTENTS
-
-I    	INTRODUCTION
-I.1.	  Aims and general function
-I.2. 	  Files and directories
-
-II		USAGE
-II.1.	  First run with make
-II.2	  Where to search for results
-II.3.	  Using the runtest script
-
-III		Adding and modifying tests
-III.1.	  The template structure
-
-IV		Known Issues and Workaround
-
-V       Contact and Support
-
-------------------------------------------------------------------------------
-
-I.  INTRODUCTION
-==============================================================================
-
-I.1.  Aims and general function
---------------------------------
-
-The OpenMP validation suite is designed to verify the correct implementation
-of OpenMP in compilers. It is capable of checking Fortran as well as c
-compiler.
-
-Testing the implementation is based on statistics. Each directive is tested
-by computing and verifying the result with the already known value. In most
-cases a wrong implementation can result in the right values. So the tests are
-run several times.
-
-Additionally, the validation suite creates so called crosstests for each
-directive. These are tests in which either the directive is missing or used
-with different arguments. If this so called crosstest fails, this indicates
-strongly that the previous test is capable of testing the directive.
-
-Lastly, an orphaned test is also run to determine if the directive being
-tested is able to correctly run when 'orphaned' from the main function.
-Essentially, the directive's code is placed into its own function which is
-called during execution of the main function and often inside a parallel
-region.
-
-
-I.2.  Files and directories
-----------------------------
-
-
-d c                         directory containing the templates for the c tests
-d fortran                   directory containing the templates for the Fortran
-                            tests
-  Makefile                  Makefile containing options for compilation
-  common_utility.f
-  omp_my_sleep.h            thread save sleep function
-  omp_testsuite.f           Fortran header file
-  omp_testsuite.h           autogenerated c-header file
-  ompts-c.conf              configuration file for the c tests about how often
-                            the tests shall be executed or how large the loop size
-                            is
-  ompts_makeHeader.pl	    perl module for automatically generation of an up
-                            to date header file
-  ompts_parserFunctions.pm	perl module containing general functions for
-				            the parser.pl script
-  ompts_parser.pl	        script for generating the source code out of the templates
-  ompts_standaloneProc.c	framework for the c tests
-  ompts_standaloneProc.f	framework for the Fortran tests
-  README		            the README file you've already found ;-)
-  LICENSE                   contains license information
-  runtest.pl		        the frame program of the test suite
-  testlist-f.txt	        test list containing the available tests for Fortran
-  testlist-c.txt	        test list containing the available tests for c
-
-
-------------------------------------------------------------------------------
-
-II.  USAGE
-==============================================================================
-
-
-II.1. First run with make
---------------------------
-
-
-You can do a first simple run of the testsuite only after one step of
-configuration:
-
-1) Modify the ompts.conf and ompts-c.conf file, change the number of threads
-and number of repetitions of each test.
-
-2) Modify the Makefile, uncommenting the CC/FC and CFLAGS/FFLAGS variables for
-the compiler of your choice.
-
-And now you can run the testsuite either for a C compiler with:
-
->	make ctest
-
-or for a Fortran compiler with:
-
->	make ftest
-
-
-II.2. Running custom tests
---------------------------
-
-
-In order to run single tests or custom groups of tests, two make commmands
-are defined: make stest and make fstest. These two command reference the file
-customtest.txt when looking for a testlist to use. Simply edit customtest.txt
-to include the desired test or tests. If customtest.txt contains c tests,
-
->      make stest
-
-or for fortran tests
-
->      make fstest
-
-In order to change the number of threads used in the tests, simply edit the
-Makefile variables MINTHREADS and MAXTHREADS. By default, they are configured
-to use 2 threads. To change the number of times each test is run, for c tests
-edit the REPETITIONS variable in the file ompts-c.conf. The LOOPCOUNT and
-SLEEPTIME variables can also be changed here. For fortran tests, edit the file
-omp_testsuite.f to change both the LOOPCOUNT and the number of times each test
-is run.
-
-
-
-II.3. Understanding the results
----------------------------------
-
-
-When running the testsuite the results will be shown on the screen.
-
-If you need the results for further purpose you can use the results.txt, which
-is a simple list containing the results for each directive
-in a single line. Each line starts with the name of the directive. Then follows
-the result of the test given in the percentage of the passed tests. If 100% of
-the tests passed successfully, the second number gives the result of the
-corresponding crosstest. Crosstests will only be run if the normal test passes
-with 100% accuracy. If a crosstest was not run or a test does not exist, it is
-denotated by a "-".
-After the results of the normal tests, there follow a series of tests in the
-orphaned mode. If there were no orphaned tests available this is shown by a "-".
-
-If you run the testsuite with different numbers of threads (e.g. using the
-runtest.pl script) the results are shown in blocks of 4 columns for each number
-of threads.
-
-If a test fails you can find more detailed information in the ompts.log,
-bin/c/*.out and *.log files. While the ompts.log file contains all compiler
-error messages for all tests, the *.out and *.log files contain detailed inforamtion
-on the execution process of the single tests.
-In the *.out files there are listed all the results of the single executions of
-the tests. In the *.log files there are error messages of the tests itself.
-
-
-II.4. Cleaning Up
------------------
-
-
-Because many files are generated for each tested directive, it is often necessary
-to clean the main directory after a battery of tests. To clean all generated files
-in the main directory including the results and log files,
-
->     make clean
-
-
-To clean only the logs and out files,
-
->     make cleanlogs
-
-To clean only the results,
-
->     make cleanresults
-
-
-
-II.4. Using the runtest script
--------------------------------
-
-
-So for special purpose you can use the runtest.pl script, which allows a lot
-more options for the execution process than the execution with make.
-
-Using the runtest.pl script is rather easy. You can use the the test suite only
-after two steps of modifications:
-
-1.) Modify the Makefile to your wishes choosing your compiler and the necessary
-    compiler flags.
-2.) If necessary edit one of the test lists (testlist-c.txt) and comment out the
-    tests you do not want to run using # at the beginning of a line. Testlists for Fortran end
-    with -f.txt while test lists for c with -c.txt.
-
-And now you can run the test suite either for Fortran using
-	#	>  ./runtest.pl -lang=fortran -d=fortran testlist-f.txt
-or for c
-	#	>  ./runtest.pl -lang=c -d=c testlist-c.txt
-
-With the --help option you can show the complete list of options and their
-explanations.
-
-The test results are summarized in cresults or fresults.txt while *.log keep
-details for individual tests. There is also a file (ompts.log) keeping
-compilation information. (see section II.2 )
-
-If you don't want to test the directives in orphaned mode you can use the
--norphan option. You also can use the runtest.pl script either to compile all
-tests or run compiled tests e.g. for cross compilation on other platforms. For
-this there are the options -norun and -nocompile.
-
-Happy testing!
-
-
-------------------------------------------------------------------------------
-
-III.	How to add new tests / The structure of test templates
-==============================================================================
-
-III.1  The template structure
-------------------------------
-
-The test suite is based on templates so that you only have one file for test,
-crosstest and the orphaned versions of them.
-
-	A) Description of the template structure
-
-The syntax of the templates is much like xml. So each test begins with
-'<ompts:test>' and ends with '</ompts:test>'.
-
-In between there are several other blocks holding information:
-
-- <ompts:testdescription> </ompts:testdescription> In between this tag you can
-  give a description on what the test checks and how it works.
-
-- <ompts:ompversion> </ompts:version> This tag is used to specify the
-  OpenMP-version which includes the tested directive.
-
-- <ompts:directive> </ompts:directive> Used to specify the directive how it is
-  called in the programming language.
-
-- <ompts:dependences> </ompts:dependences> With this tag you can specify other
-  omp directives which are necessary for the correct execution of your test.
-The directives have to be listed by their directive names as it is called in
-the programming language. Multiple directives are separated by ','.
-
-- <ompts:testcode> </ompts:testcode> In this tag stands the whole source code
-for the test / crosstest.  Each test has to be written as a function. The
-syntax of the functions differs between C and Fortran: In C it has to take a
-file pointer 'FILE * logFile' and return an int. If the test has been passed
-successful it has to return a value unequal to 0. The file pointer can be used
-to write information into a log file.  In Fortran the function takes no
-argument and the function name must not exceed XX characters.  The return value
-has to be specified using the '<testfunctionname>' tags. It has to be 1 if the
-test succeeded and 0 if the test failed. For details see the example.
-
-To tell the test suite the name of your test function you have to enclose it
-into the '<ompts:testcode:functionname> </ompts:testcode:functionname>' tag.
-
-If there are differences between test and crosstest you can use the
-<ompts:check> </ompts:check> and <ompts:crosscheck> </ompts:crosscheck> tag.
-When generating the test the parser will use the code enclosed in
-<ompts:check> tags and cut out the code written in <ompts:crosscheck> tags. So
-you have two possibilities to write your template for test and crosstest: The
-first way you can write the complete code is to write the test in one
-<ompts:check> tag and later the crosstest in one <ompts:crosscheck> tag.  The
-second way is to write both tests only by enclosing differing parts in
-corresponding tags.
-
-The first method should be preferred if test and crosstest differ much from
-each other. The second e.g. if you only want to change a few options like
-replacing an omp singleprivate clause by an omp private clause or to cut out
-a directive like omp flush.  When you use the first way you have to take care
-of the function name! You have to declare it twice with
-<ompts:testcode:functionname>!
-
-- <ompts:orphan> </ompts:orphan> This tag can be used if you want to enable
-  your test to check the directive in orphan regions, too.  The code enclosed
-in this part will be written to a separate function which will be called
-instead.  If you have variables which are used outside this region you have to
-declare them as global variables enclosed in an <ompts:orphan:vars> tag. For
-further information see the description of the <ompts:orphan:vars> tag.
-
-- <ompts:orphan:vars> </ompts:orphan:vars> This tag is used to specify global
-  variables for an orphan region which allow the exchange of values between
-the main program and the orphaned functions. The usage differs between C and
-Fortran.  In C you have to use a single declaration for each variable. You can
-either declare all variables in one single or in several different regions. You
-must not initialize the variables inside!  In Fortran you have to put all
-declarations in one single tag. Because there exist no global variables as in
-C you have to use common blocks. For further information see the examples.
-
-III.2.  Adding tests to the test lists
---------------------------------------
-
-After you have created a new test you have to add them to a testlist. Simply
-add the function name in a new Line into a file.
-
-
-
-------------------------------------------------------------------------------
-
-
-IV.   Known Issues and Workaround
-==============================================================================
-
-The Sun OS has a problem with the -maxdepth option on the 'make cleanall'
-command. This prevents the tests from being removed from the working directory
-and can cause problems with future tests. To remedy, edit the makefile line
-under the clean command:
-
-     -rm [cf]test*.[cf] [cf]crosstest*.[cf] [cf]ctest*.[cf] [cf]orphan*.[cf]
-
-Change to:
-
-     -rm [cf]test* [cf]crosstest* [cf]ctest* [cf]orphan*
-
-
-
-------------------------------------------------------------------------------
-
-V.   Contact and Support
-==============================================================================
-
-Contact: http://www.cs.uh.edu/~hpctools

Added: openmp/trunk/testsuite/README_LLVM_OPENMP
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/README_LLVM_OPENMP?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/README_LLVM_OPENMP (added)
+++ openmp/trunk/testsuite/README_LLVM_OPENMP Wed Apr 29 09:36:38 2015
@@ -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 at cs.uh.edu

Added: openmp/trunk/testsuite/README_OpenMP_Validation_Suite
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/README_OpenMP_Validation_Suite?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/README_OpenMP_Validation_Suite (added)
+++ openmp/trunk/testsuite/README_OpenMP_Validation_Suite Wed Apr 29 09:36:38 2015
@@ -0,0 +1,334 @@
+ ============================================================================
+|                   OpenMP Validation Suite  V 3.0                           |
+|              High Performance Computing Center, Stuttgart                  |
+|       High Performance Computing and Tools, University of Houston          |
+|                              Jan. 2012                                     |
+ ============================================================================
+
+
+TABLE OF CONTENTS
+
+I    	INTRODUCTION
+I.1.	  Aims and general function
+I.2. 	  Files and directories
+
+II		USAGE
+II.1.	  First run with make
+II.2	  Where to search for results
+II.3.	  Using the runtest script
+
+III		Adding and modifying tests
+III.1.	  The template structure
+
+IV		Known Issues and Workaround
+
+V       Contact and Support
+
+------------------------------------------------------------------------------
+
+I.  INTRODUCTION
+==============================================================================
+
+I.1.  Aims and general function
+--------------------------------
+
+The OpenMP validation suite is designed to verify the correct implementation
+of OpenMP in compilers. It is capable of checking Fortran as well as c
+compiler.
+
+Testing the implementation is based on statistics. Each directive is tested
+by computing and verifying the result with the already known value. In most
+cases a wrong implementation can result in the right values. So the tests are
+run several times.
+
+Additionally, the validation suite creates so called crosstests for each
+directive. These are tests in which either the directive is missing or used
+with different arguments. If this so called crosstest fails, this indicates
+strongly that the previous test is capable of testing the directive.
+
+Lastly, an orphaned test is also run to determine if the directive being
+tested is able to correctly run when 'orphaned' from the main function.
+Essentially, the directive's code is placed into its own function which is
+called during execution of the main function and often inside a parallel
+region.
+
+
+I.2.  Files and directories
+----------------------------
+
+
+d c                         directory containing the templates for the c tests
+d fortran                   directory containing the templates for the Fortran
+                            tests
+  Makefile                  Makefile containing options for compilation
+  common_utility.f
+  omp_my_sleep.h            thread save sleep function
+  omp_testsuite.f           Fortran header file
+  omp_testsuite.h           autogenerated c-header file
+  ompts-c.conf              configuration file for the c tests about how often
+                            the tests shall be executed or how large the loop size
+                            is
+  ompts_makeHeader.pl	    perl module for automatically generation of an up
+                            to date header file
+  ompts_parserFunctions.pm	perl module containing general functions for
+				            the parser.pl script
+  ompts_parser.pl	        script for generating the source code out of the templates
+  ompts_standaloneProc.c	framework for the c tests
+  ompts_standaloneProc.f	framework for the Fortran tests
+  README		            the README file you've already found ;-)
+  LICENSE                   contains license information
+  runtest.pl		        the frame program of the test suite
+  testlist-f.txt	        test list containing the available tests for Fortran
+  testlist-c.txt	        test list containing the available tests for c
+
+
+------------------------------------------------------------------------------
+
+II.  USAGE
+==============================================================================
+
+
+II.1. First run with make
+--------------------------
+
+
+You can do a first simple run of the testsuite only after one step of
+configuration:
+
+1) Modify the ompts.conf and ompts-c.conf file, change the number of threads
+and number of repetitions of each test.
+
+2) Modify the Makefile, uncommenting the CC/FC and CFLAGS/FFLAGS variables for
+the compiler of your choice.
+
+And now you can run the testsuite either for a C compiler with:
+
+>	make ctest
+
+or for a Fortran compiler with:
+
+>	make ftest
+
+
+II.2. Running custom tests
+--------------------------
+
+
+In order to run single tests or custom groups of tests, two make commmands
+are defined: make stest and make fstest. These two command reference the file
+customtest.txt when looking for a testlist to use. Simply edit customtest.txt
+to include the desired test or tests. If customtest.txt contains c tests,
+
+>      make stest
+
+or for fortran tests
+
+>      make fstest
+
+In order to change the number of threads used in the tests, simply edit the
+Makefile variables MINTHREADS and MAXTHREADS. By default, they are configured
+to use 2 threads. To change the number of times each test is run, for c tests
+edit the REPETITIONS variable in the file ompts-c.conf. The LOOPCOUNT and
+SLEEPTIME variables can also be changed here. For fortran tests, edit the file
+omp_testsuite.f to change both the LOOPCOUNT and the number of times each test
+is run.
+
+
+
+II.3. Understanding the results
+---------------------------------
+
+
+When running the testsuite the results will be shown on the screen.
+
+If you need the results for further purpose you can use the results.txt, which
+is a simple list containing the results for each directive
+in a single line. Each line starts with the name of the directive. Then follows
+the result of the test given in the percentage of the passed tests. If 100% of
+the tests passed successfully, the second number gives the result of the
+corresponding crosstest. Crosstests will only be run if the normal test passes
+with 100% accuracy. If a crosstest was not run or a test does not exist, it is
+denotated by a "-".
+After the results of the normal tests, there follow a series of tests in the
+orphaned mode. If there were no orphaned tests available this is shown by a "-".
+
+If you run the testsuite with different numbers of threads (e.g. using the
+runtest.pl script) the results are shown in blocks of 4 columns for each number
+of threads.
+
+If a test fails you can find more detailed information in the ompts.log,
+bin/c/*.out and *.log files. While the ompts.log file contains all compiler
+error messages for all tests, the *.out and *.log files contain detailed inforamtion
+on the execution process of the single tests.
+In the *.out files there are listed all the results of the single executions of
+the tests. In the *.log files there are error messages of the tests itself.
+
+
+II.4. Cleaning Up
+-----------------
+
+
+Because many files are generated for each tested directive, it is often necessary
+to clean the main directory after a battery of tests. To clean all generated files
+in the main directory including the results and log files,
+
+>     make clean
+
+
+To clean only the logs and out files,
+
+>     make cleanlogs
+
+To clean only the results,
+
+>     make cleanresults
+
+
+
+II.4. Using the runtest script
+-------------------------------
+
+
+So for special purpose you can use the runtest.pl script, which allows a lot
+more options for the execution process than the execution with make.
+
+Using the runtest.pl script is rather easy. You can use the the test suite only
+after two steps of modifications:
+
+1.) Modify the Makefile to your wishes choosing your compiler and the necessary
+    compiler flags.
+2.) If necessary edit one of the test lists (testlist-c.txt) and comment out the
+    tests you do not want to run using # at the beginning of a line. Testlists for Fortran end
+    with -f.txt while test lists for c with -c.txt.
+
+And now you can run the test suite either for Fortran using
+	#	>  ./runtest.pl -lang=fortran -d=fortran testlist-f.txt
+or for c
+	#	>  ./runtest.pl -lang=c -d=c testlist-c.txt
+
+With the --help option you can show the complete list of options and their
+explanations.
+
+The test results are summarized in cresults or fresults.txt while *.log keep
+details for individual tests. There is also a file (ompts.log) keeping
+compilation information. (see section II.2 )
+
+If you don't want to test the directives in orphaned mode you can use the
+-norphan option. You also can use the runtest.pl script either to compile all
+tests or run compiled tests e.g. for cross compilation on other platforms. For
+this there are the options -norun and -nocompile.
+
+Happy testing!
+
+
+------------------------------------------------------------------------------
+
+III.	How to add new tests / The structure of test templates
+==============================================================================
+
+III.1  The template structure
+------------------------------
+
+The test suite is based on templates so that you only have one file for test,
+crosstest and the orphaned versions of them.
+
+	A) Description of the template structure
+
+The syntax of the templates is much like xml. So each test begins with
+'<ompts:test>' and ends with '</ompts:test>'.
+
+In between there are several other blocks holding information:
+
+- <ompts:testdescription> </ompts:testdescription> In between this tag you can
+  give a description on what the test checks and how it works.
+
+- <ompts:ompversion> </ompts:version> This tag is used to specify the
+  OpenMP-version which includes the tested directive.
+
+- <ompts:directive> </ompts:directive> Used to specify the directive how it is
+  called in the programming language.
+
+- <ompts:dependences> </ompts:dependences> With this tag you can specify other
+  omp directives which are necessary for the correct execution of your test.
+The directives have to be listed by their directive names as it is called in
+the programming language. Multiple directives are separated by ','.
+
+- <ompts:testcode> </ompts:testcode> In this tag stands the whole source code
+for the test / crosstest.  Each test has to be written as a function. The
+syntax of the functions differs between C and Fortran: In C it has to take a
+file pointer 'FILE * logFile' and return an int. If the test has been passed
+successful it has to return a value unequal to 0. The file pointer can be used
+to write information into a log file.  In Fortran the function takes no
+argument and the function name must not exceed XX characters.  The return value
+has to be specified using the '<testfunctionname>' tags. It has to be 1 if the
+test succeeded and 0 if the test failed. For details see the example.
+
+To tell the test suite the name of your test function you have to enclose it
+into the '<ompts:testcode:functionname> </ompts:testcode:functionname>' tag.
+
+If there are differences between test and crosstest you can use the
+<ompts:check> </ompts:check> and <ompts:crosscheck> </ompts:crosscheck> tag.
+When generating the test the parser will use the code enclosed in
+<ompts:check> tags and cut out the code written in <ompts:crosscheck> tags. So
+you have two possibilities to write your template for test and crosstest: The
+first way you can write the complete code is to write the test in one
+<ompts:check> tag and later the crosstest in one <ompts:crosscheck> tag.  The
+second way is to write both tests only by enclosing differing parts in
+corresponding tags.
+
+The first method should be preferred if test and crosstest differ much from
+each other. The second e.g. if you only want to change a few options like
+replacing an omp singleprivate clause by an omp private clause or to cut out
+a directive like omp flush.  When you use the first way you have to take care
+of the function name! You have to declare it twice with
+<ompts:testcode:functionname>!
+
+- <ompts:orphan> </ompts:orphan> This tag can be used if you want to enable
+  your test to check the directive in orphan regions, too.  The code enclosed
+in this part will be written to a separate function which will be called
+instead.  If you have variables which are used outside this region you have to
+declare them as global variables enclosed in an <ompts:orphan:vars> tag. For
+further information see the description of the <ompts:orphan:vars> tag.
+
+- <ompts:orphan:vars> </ompts:orphan:vars> This tag is used to specify global
+  variables for an orphan region which allow the exchange of values between
+the main program and the orphaned functions. The usage differs between C and
+Fortran.  In C you have to use a single declaration for each variable. You can
+either declare all variables in one single or in several different regions. You
+must not initialize the variables inside!  In Fortran you have to put all
+declarations in one single tag. Because there exist no global variables as in
+C you have to use common blocks. For further information see the examples.
+
+III.2.  Adding tests to the test lists
+--------------------------------------
+
+After you have created a new test you have to add them to a testlist. Simply
+add the function name in a new Line into a file.
+
+
+
+------------------------------------------------------------------------------
+
+
+IV.   Known Issues and Workaround
+==============================================================================
+
+The Sun OS has a problem with the -maxdepth option on the 'make cleanall'
+command. This prevents the tests from being removed from the working directory
+and can cause problems with future tests. To remedy, edit the makefile line
+under the clean command:
+
+     -rm [cf]test*.[cf] [cf]crosstest*.[cf] [cf]ctest*.[cf] [cf]orphan*.[cf]
+
+Change to:
+
+     -rm [cf]test* [cf]crosstest* [cf]ctest* [cf]orphan*
+
+
+
+------------------------------------------------------------------------------
+
+V.   Contact and Support
+==============================================================================
+
+Contact: http://www.cs.uh.edu/~hpctools

Added: openmp/trunk/testsuite/adding_xfails.py
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/adding_xfails.py?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/adding_xfails.py (added)
+++ openmp/trunk/testsuite/adding_xfails.py Wed Apr 29 09:36:38 2015
@@ -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)
+

Propchange: openmp/trunk/testsuite/adding_xfails.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openmp/trunk/testsuite/adding_xfails.py
------------------------------------------------------------------------------
    svn:executable = *

Propchange: openmp/trunk/testsuite/adding_xfails.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Rev URL

Propchange: openmp/trunk/testsuite/adding_xfails.py
------------------------------------------------------------------------------
    svn:mime-type = text/x-python

Added: openmp/trunk/testsuite/bin/Makefile
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/Makefile?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/Makefile (added)
+++ openmp/trunk/testsuite/bin/Makefile Wed Apr 29 09:36:38 2015
@@ -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

Propchange: openmp/trunk/testsuite/bin/Makefile
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openmp/trunk/testsuite/bin/Makefile
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Rev URL

Propchange: openmp/trunk/testsuite/bin/Makefile
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: openmp/trunk/testsuite/bin/distribute.sh
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/distribute.sh?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/distribute.sh (added)
+++ openmp/trunk/testsuite/bin/distribute.sh Wed Apr 29 09:36:38 2015
@@ -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/

Propchange: openmp/trunk/testsuite/bin/distribute.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: openmp/trunk/testsuite/bin/distribute.sh
------------------------------------------------------------------------------
    svn:executable = *

Propchange: openmp/trunk/testsuite/bin/distribute.sh
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Rev URL

Propchange: openmp/trunk/testsuite/bin/distribute.sh
------------------------------------------------------------------------------
    svn:mime-type = text/x-sh

Added: openmp/trunk/testsuite/bin/header
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/header?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/header (added)
+++ openmp/trunk/testsuite/bin/header Wed Apr 29 09:36:38 2015
@@ -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
+
+
+

Added: openmp/trunk/testsuite/bin/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/lit.cfg?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/lit.cfg (added)
+++ openmp/trunk/testsuite/bin/lit.cfg Wed Apr 29 09:36:38 2015
@@ -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!')

Added: openmp/trunk/testsuite/bin/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/lit.site.cfg.in?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/lit.site.cfg.in (added)
+++ openmp/trunk/testsuite/bin/lit.site.cfg.in Wed Apr 29 09:36:38 2015
@@ -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")

Added: openmp/trunk/testsuite/bin/lit.tmp
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/bin/lit.tmp?rev=236105&view=auto
==============================================================================
--- openmp/trunk/testsuite/bin/lit.tmp (added)
+++ openmp/trunk/testsuite/bin/lit.tmp Wed Apr 29 09:36:38 2015
@@ -0,0 +1 @@
+../LLVM-IR/lin_32e/

Removed: openmp/trunk/testsuite/customtest.txt
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/customtest.txt?rev=236104&view=auto
==============================================================================
--- openmp/trunk/testsuite/customtest.txt (original)
+++ openmp/trunk/testsuite/customtest.txt (removed)
@@ -1,2 +0,0 @@
-# Add custom tests in this list
-omp_parallel_copyin

Modified: openmp/trunk/testsuite/omp_testsuite.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/omp_testsuite.h?rev=236105&r1=236104&r2=236105&view=diff
==============================================================================
--- openmp/trunk/testsuite/omp_testsuite.h (original)
+++ openmp/trunk/testsuite/omp_testsuite.h Wed Apr 29 09:36:38 2015
@@ -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_omp_taskyield(FILE * logfile);  /* Test for omp taskyield */
+int crosstest_omp_taskyield(FILE * logfile);  /* Crosstest for omp taskyield */
 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_for_lastprivate(FILE * logfile);  /* Test for omp for lastprivate */
+int crosstest_omp_for_lastprivate(FILE * logfile);  /* Crosstest for omp for lastprivate */
+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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_get_wtime(FILE * logfile);  /* Test for omp_get_wtime */
+int crosstest_omp_get_wtime(FILE * logfile);  /* Crosstest for omp_get_wtime */
 
 #endif

Modified: openmp/trunk/testsuite/ompts_standaloneProc.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/testsuite/ompts_standaloneProc.c?rev=236105&r1=236104&r2=236105&view=diff
==============================================================================
--- openmp/trunk/testsuite/ompts_standaloneProc.c (original)
+++ openmp/trunk/testsuite/ompts_standaloneProc.c Wed Apr 29 09:36:38 2015
@@ -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. */





More information about the Openmp-commits mailing list