Skip to content

Commit

Permalink
Merge 'trilinos/Trilinos:develop' (5f22f39) into 'tcad-charon/Trilino…
Browse files Browse the repository at this point in the history
…s:develop' (84480d7).

* trilinos-develop: (28 commits)
  This simply unlinks the 'package_subproject_list.cmake' temporary created during testing
  Add test for ShyLU_NodeHTS and list all packages for CDash (trilinos#6697, trilinos#7229)
  Add running of get-changed-trilinos-packages-helpers-unit-tests.sh (trilinos#6697)
  Fix a space error in Python-only builds CTEST_LABELS_FOR_SUBPROJECTS var (trilinos#6697)
  Fix tests for addition of package_subproject_list.cmake file (trilinos#6697)
  Exclude some ST packages from PR testing selection (trilinos#6697)
  Move shunit2 to be reused in TrilinosFrameworkTests (trilinos#6697)
  Write a package_subproject_list.cmake file for Python-only builds (trilinos#6697)
  MueLu RefMaxwell: Apply BCs to A_nodal
  Intrepid2: Changes to Projection Tools            - made dependency on KokkosKernels optional            - improved solution of element projections by            re-using matrix factorization when possible
  MueLu Utilities: Add Kokkos version of ApplyOAZToMatrixRows
  Update Tpetra_Details_Behavior.hpp
  Use generated package_subproject_list.cmake file (trilinos#3272)
  Add support for generating CTEST_LABELS_FOR_SUBPROJECTS (trilinos#6697)
  Automatic snapshot commit from tribits at 52acd38
  Return all PT and ST changed packages (trilinos#6697)
  added a couple of large mv tests
  adds details support for long multivector thresholds
  tpetra: Include multivector length in deciding where kernels should run.
  Intrepid2: Modified tests to exercise projection of Hierarchical basis
  ...
  • Loading branch information
Jenkins Pipeline committed May 27, 2020
2 parents 84480d7 + 5f22f39 commit f96bb4d
Show file tree
Hide file tree
Showing 105 changed files with 6,713 additions and 4,441 deletions.
10 changes: 7 additions & 3 deletions cmake/std/PullRequestLinuxDriverTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,8 @@ def createPackageEnables(arguments):
'get-changed-trilinos-packages.sh'),
os.path.join('origin', arguments.targetBranch),
'HEAD',
'packageEnables.cmake'])
'packageEnables.cmake',
'package_subproject_list.cmake'])
else:
with open('packageEnables.cmake', 'w') as f_out:
f_out.write(dedent('''\
Expand All @@ -559,6 +560,10 @@ def createPackageEnables(arguments):
PR_ENABLE_BOOL(Trilinos_ENABLE_''' + enable_map[arguments.job_base_name] + ''' ON)
'''))
with open ('package_subproject_list.cmake', 'w') as f_out:
f_out.write(dedent('''\
set(CTEST_LABELS_FOR_SUBPROJECTS ''' + enable_map[arguments.job_base_name] + ''')
'''))
print('Enabled packages:')
cmake_rstring = subprocess.check_output(['cmake',
'-P',
Expand Down Expand Up @@ -686,8 +691,7 @@ def run():
'std',
config_script),
'-Dpackage_enables=../packageEnables.cmake',
'-Dsubprojects_file=../TFW_single_configure_support_scripts/'+
'package_subproject_list.cmake'])
'-Dsubprojects_file=../package_subproject_list.cmake'])

return return_value

Expand Down
3 changes: 2 additions & 1 deletion cmake/std/atdm/ats1/custom_builds_unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,5 @@ testAll() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
3 changes: 2 additions & 1 deletion cmake/std/atdm/cee-rhel6/custom_builds_unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,5 @@ testAll() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ testMatch_1() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,5 @@ testBasicMatches() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
Original file line number Diff line number Diff line change
Expand Up @@ -477,4 +477,5 @@ testPrimaryTested() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
3 changes: 2 additions & 1 deletion cmake/std/atdm/van1-tx2/custom_builds_unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,5 @@ testAll() {
# Run the unit tests
#

. ${ATDM_CONFIG_SCRIPT_DIR}/test/shunit2/shunit2
SHUNIT2_DIR=`readlink -f ${ATDM_CONFIG_SCRIPT_DIR}/../../../commonTools/test/shunit2`
. ${SHUNIT2_DIR}/shunit2
29 changes: 18 additions & 11 deletions cmake/std/unittests/TestPullRequestLinuxDriverTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ def test_verifyTargetBranch_passes_with_master_target_mm_source(self):
l_environ, \
mock.patch('PullRequestLinuxDriverTest.createPackageEnables'), \
mock.patch('PullRequestLinuxDriverTest.setBuildEnviron'), \
mock.patch('PullRequestLinuxDriverTest.compute_n', return_value=20), \
mock.patch('PullRequestLinuxDriverTest.getCDashTrack') as m_cdtr:
PullRequestLinuxDriverTest.run()

Expand All @@ -222,7 +223,7 @@ def test_verifyTargetBranch_passes_with_master_target_mm_source(self):
'-Dbuild_dir=/dev/null/workspace/pull_request_test',
'-Dconfigure_script=/dev/null/workspace/Trilinos/cmake/std/dummyConfig.cmake',
'-Dpackage_enables=../packageEnables.cmake',
'-Dsubprojects_file=../TFW_single_configure_support_scripts/package_subproject_list.cmake'])
'-Dsubprojects_file=../package_subproject_list.cmake'])


def test_verifyTargetBranch_passes_with_develop_target(self):
Expand Down Expand Up @@ -291,7 +292,7 @@ def test_verifyTargetBranch_passes_with_develop_target(self):
'-Dbuild_dir=/dev/null/workspace/pull_request_test',
'-Dconfigure_script=/dev/null/workspace/Trilinos/cmake/std/dummyConfig.cmake',
'-Dpackage_enables=../packageEnables.cmake',
'-Dsubprojects_file=../TFW_single_configure_support_scripts/package_subproject_list.cmake'])
'-Dsubprojects_file=../package_subproject_list.cmake'])



Expand Down Expand Up @@ -319,14 +320,16 @@ def setUp(self):

def success_side_effect(self):
with open('packageEnables.cmake', 'w') as f_out:
f_out.write('''
MACRO(PR_ENABLE_BOOL VAR_NAME VAR_VAL)
MESSAGE("-- Setting ${VAR_NAME} = ${VAR_VAL}")
SET(${VAR_NAME} ${VAR_VAL} CACHE BOOL "Set in $CMAKE_PACKAGE_ENABLES_OUT")
ENDMACRO()
''')
f_out.write(dedent('''\
MACRO(PR_ENABLE_BOOL VAR_NAME VAR_VAL)
MESSAGE("-- Setting ${VAR_NAME} = ${VAR_VAL}")
SET(${VAR_NAME} ${VAR_VAL} CACHE BOOL "Set in $CMAKE_PACKAGE_ENABLES_OUT")
ENDMACRO()
'''))
f_out.write("PR_ENABLE_BOOL(Trilinos_ENABLE_FooPackageBar ON)")

with open ('package_subproject_list.cmake', 'w') as f_out:
f_out.write(dedent('''\
set(CTEST_LABELS_FOR_SUBPROJECTS TrilinosFrameworkTests '''))

def test_call_success(self):
expected_output = '''Enabled packages:
Expand All @@ -345,9 +348,11 @@ def test_call_success(self):
'get-changed-trilinos-packages.sh'),
os.path.join('origin',
self.target_branch),
'HEAD', 'packageEnables.cmake'])
'HEAD', 'packageEnables.cmake',
'package_subproject_list.cmake'])
self.assertEqual(expected_output, m_stdout.getvalue())
os.unlink('packageEnables.cmake')
os.unlink('package_subproject_list.cmake')


def test_call_python2(self):
Expand All @@ -365,6 +370,7 @@ def test_call_python2(self):
m_out.assert_not_called()
self.assertEqual(expected_output, m_stdout.getvalue())
os.unlink('packageEnables.cmake')
os.unlink('package_subproject_list.cmake')


def test_call_failure(self):
Expand All @@ -383,7 +389,8 @@ def test_call_failure(self):
'get-changed-trilinos-packages.sh'),
os.path.join('origin',
self.target_branch),
'HEAD', 'packageEnables.cmake'])
'HEAD', 'packageEnables.cmake',
'package_subproject_list.cmake'])
self.assertEqual(expected_output, m_stdout.getvalue())


Expand Down
19 changes: 18 additions & 1 deletion cmake/tribits/ci_support/TribitsDependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
from FindGeneralScriptSupport import *
from GeneralScriptSupport import *


#
# Default file locations
#
Expand Down Expand Up @@ -242,6 +241,22 @@ def numPackages(self):
return len(self.__packagesList)


def getPackagesNamesList(self, onlyTopLevelPackages=True):
packagesNamesList = []
for packageDep in self.__packagesList:
#print ("packageDep.packageName = "+packageDep.packageName)
#print ("packageDep.parentPackage = "+packageDep.parentPackage)
if packageDep.parentPackage == "":
addPackage = True
elif not onlyTopLevelPackages:
addPackage = True
else:
addPackage = False
if addPackage:
packagesNamesList.append(packageDep.packageName)
return packagesNamesList


def packageNameToID(self, packageName):
return self.__packagesNameToID.get(packageName, -1)

Expand All @@ -262,6 +277,7 @@ def getPackageByDir(self, packageDir):
return None


# Note: Path must contain ending "/"
def getPackageNameFromPath(self, fullPath):
for packageDep in self.__packagesList:
regexFilePath = packageDep.packageDir+"/"
Expand All @@ -275,6 +291,7 @@ def getPackageNameFromPath(self, fullPath):
# packages because subpackages are listed before packages!


# Returns the paraent package name given a test name
def getPackageNameFromTestName(self, testName):
for packageDep in self.__packagesList:
startTestName = packageDep.packageName+"_"
Expand Down
86 changes: 86 additions & 0 deletions cmake/tribits/ci_support/get-tribits-packages.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#!/usr/bin/env python

# @HEADER
# ************************************************************************
#
# TriBITS: Tribal Build, Integrate, and Test System
# Copyright 2013 Sandia Corporation
#
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
# the U.S. Government retains certain rights in this software.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# 3. Neither the name of the Corporation nor the names of the
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# ************************************************************************
# @HEADER

from FindGeneralScriptSupport import *
from TribitsPackageFilePathUtils import *
from gitdist import addOptionParserChoiceOption


#
# Read in the commandline arguments
#

usageHelp = \
r"""get-tribits-packages.py --deps-xml-file=<DEPS_XML_FILE> \
--only-top-level-packages=[on|off]
This script returns a comma-separated list of all of the project's top-level
or packages or the full set of SE packages (i.e. parent and subpackages).
"""

from optparse import OptionParser

clp = OptionParser(usage=usageHelp)

clp.add_option(
"--deps-xml-file", dest="depsXmlFile", type="string",
help="File containing TriBITS-generated XML data-structure the listing"+\
" of packages, dir names, dependencies, etc.")

addOptionParserChoiceOption(
"--only-top-level-packages", "onlyTopLevelPackagesStr",
("on", "off"), 0,
"If 'on', then only top-level packages will be included. If 'off', then"+\
" top-level and subpackages will be included in the list (in order).",
clp )

(options, args) = clp.parse_args()

if options.onlyTopLevelPackagesStr == "on":
onlyTopLevelPackages = True
else:
onlyTopLevelPackages = False

trilinosDependencies = getProjectDependenciesFromXmlFile(options.depsXmlFile)

packagesNamesList = trilinosDependencies.getPackagesNamesList(onlyTopLevelPackages)

print(','.join(packagesNamesList))
Loading

0 comments on commit f96bb4d

Please sign in to comment.