Skip to content

Tribits merger#1

Open
lefebvre wants to merge 177 commits into
masterfrom
tribits_merger
Open

Tribits merger#1
lefebvre wants to merge 177 commits into
masterfrom
tribits_merger

Conversation

@lefebvre

Copy link
Copy Markdown
Owner

No description provided.

bartlettroscoe and others added 30 commits April 5, 2017 20:59
This makes it easier to find the main TRIBIT_CTEST_DRIVER() function and its
documentation.  Actually, more functions should be created to make this main
driver routine a little trimmer and easier to read.

Build/Test Cases Summary
Enabled Packages: TriBITS
Enabled all Forward Packages
0) MPI_RELEASE_DEBUG_SHARED => passed: passed=230,notpassed=0 (1.05 min)
Other local commits for this build/test group: bba4b6d, 75e9d75, 03b2e1e, 6f464ed
…iBITSPub#130)

I forgot to update the TDD system for my changes for TriBITSPub#130.  Since the TDD
system is not under automated testing, this was allowed to be pushed.  I was
slopping in not finding this reference to the old function name.  Sloppy on my
part.
The updated CASL Fissile/Spy machines have a object dump that printe "RUNPATH"
instead of "RPATH".  I just updated the grep to look for "R.*PATH" instead of
"RPATH" on Linux.  Therefore, this should continue to work for existing Linux
systems that have "RPATH".

This should fix the failing TriBITS PPATH tests reported in PHI-4992.

Build/Test Cases Summary
Enabled Packages: TriBITS
Enabled all Forward Packages
0) MPI_RELEASE_DEBUG_SHARED => passed: passed=230,notpassed=0 (2.30 min)
…riBITSPub#200, TriBITSPub#228)

This is being used in TRIBITS_ADD_ADVANCED_TEST() first as part of TriBITSPub#228 but
can be used in many other functions after that.
…ub#228)

This is needed to allow TribitsAddAdvancedTest.cmake to be used in non-TriBITS
project by just setting soem vars and including the file
TribitsAddAdvancedTest.cmake.
This new feature makes it easy to copy a bunch of files to a newly created
TRIBITS_ADD_ADVANCED_TEST() working directory.

As part of this, I refactored the DriveAdvancedTest.cmake code to clean it up
and make it (hopefully) easier to understand.

A major part of this is that I added a new way to test TAAT() by running
TAAT() in a nested CMake project so that TAAT() can actually check that TAAT()
is printing the right things and behaving as it should.  This will be very
useful when more refactorings and performed and new feature are added to
TAAT().
Add new TRIBITS_ADD_ADVANCED_TEST() COPY_FILES_TO_TEST_DIR block.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=260,notpassed=0 (0.64 min)
1) SERIAL_RELEASE => passed: passed=260,notpassed=0 (0.63 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.62 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.91 min)
Other local commits for this build/test group: 3706c4b, 552e8c7, 8fe0fc5
…t new defaults (TriBITSPub#230)

TriBITS was hardcoding the number of submit retry attempts to 25 and the delay
between attempts as 120 second.  That means that if there is a MySQL error
(which is happening right now with attempted submits of SPARC build data as
part of ATDV-84), then it will take 50 minutes to trying to submit before
moving on!
…PL (ATDV-84, TriBITSPub#63)

This is a fairly small change to the processing of TPLs that works for
pre-installed TriBITS packages.  Basically you just mark the TPL as
"TRIBITS_TPL" in the TPLsList.cmake file instead of pointing to a directory or
FindTPL<tplName>.cmake module file and then find_package(<tplName> REQUIRED)
is used to get the parts of the TPL.

At this point there are no automated tests to support and protect this.  This
is just a little refactoring (about 10 lines of code is all) that allowed us
to have a prototype TriBITS build system for an APP (SPARC) treat
pre-installed TriBITS packages as TPLs (see ATDV-84).  I really don't want to
even docuemnt this because I view this as just a small stepping-stone on the
path merging the concepts and implementation of TriBITS Packages and TPLs.
Therefore, I don't want to support this new TRIBITS_TPL TPL for very long and
only for this one customer.  I hope to be able to do enough refactoring of
TriBITS so that an APP can just list these pre-installed TriBITS packages as
packages in their Dependencies.cmake file and then have TriBITS automatically
treat them as TPLs and look for them with find_package().

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=260,notpassed=0 (0.70 min)
1) SERIAL_RELEASE => passed: passed=260,notpassed=0 (0.58 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.68 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.84 min)
Other local commits for this build/test group: c25a7df, a8a1f9f
In CASL VERA, ${PROJECT_NAME}_TRIBITS_DIR is set to VERA/cmake/tribits which
is a symlink to VERA/TriBITS/tribits.  This change makes it work correctly for
this one test.
…board' target (PHI #3913)

These _AAO_ tests that involve breaking things and checking that the
CTEST_DRIVER() code detects the breakages and reacts correctly appear to be a
little fragile.  The only fail when run with 'make dashboard' and not when run
locally with just 'ctest'.  What happens is that the build tool 'make' returns
a different number of bulid failures and returns a different return code from
'make'.  Also, in a few cases, the set of TribitsExampleProject executables
that fail to build is different.

Therefore, I have weaken these tests a little to allow them to pass.  The
tests are still pretty strong so I am not too worried.  The alternative was to
just disable them on CASL ORNL machines but that might mean that they might
fail on other peopole's machines as well.  I think it is better to weaken the
test just a ltitle for all platforms than to just disable the test on a bunch
of platforms.  Time will tell if this was the right appraoch or not.

Making this change is needed to allow the upgrade of Trilinos and TriBITS
being tracked in PHI #3913.
I had forgotten to add this for the all-at-once appraoch.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=260,notpassed=0 (0.80 min)
1) SERIAL_RELEASE => passed: passed=260,notpassed=0 (0.61 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.60 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.71 min)
Since I think that newer versions of CDash just send out CDash emails as soon
a triggering results are submitted, you might as well just add the update info
right along with the initial configure and notes files.
I fixed two things here:

* The test AAO_ST_ALL_BreakWithSubpackagesALib was failing due to the
  MixedLang package showing build failures for this build.  This is very
  strange and suggests some behavior I don't understand.

* Explictly set CTEST_PARALLEL_LEVEL in env.  It was assuming the default of
  '1' but the HEAVY suite sets this to 48 in the env and was missing up the
  test.  Now it is explicit.  (This is the problem with env vars, they drill
  through everything.)
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=260,notpassed=0 (0.72 min)
1) SERIAL_RELEASE => passed: passed=260,notpassed=0 (0.62 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.60 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.86 min)
Other local commits for this build/test group: aa8b0a1
…th 'dashboard' target (PHI #3913)"

This reverts commit b3354b4.

I had to resolve a conflict that I don't understand why git conflicted it but
I think I removed the weakening of the tests.
…ts on anasova for HEAVY build (PHI #3913)'

I don't want to weaken these tests.  I would rather have these tests run
strong on a few platforms and not run on other platforms than to weaken them
on all platforms.  If needed, I can dig into why these tests are so fragile
but there are other priorities.
The reason that these tests passed in some cases and not in others is that
CTEST_BUILD_FLAGS was likely getting picked up in the env from a local 'make
dashboard' and causing them to pass.  Now by setting CTEST_BUILD_FLAGS=-k, we
eliminate the parallel race conditions and we make sure that we build all
targets that we can.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=260,notpassed=0 (0.72 min)
1) SERIAL_RELEASE => passed: passed=260,notpassed=0 (0.59 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.95 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=281,notpassed=0 (0.69 min)
Other local commits for this build/test group: 5e6f409, 06031f4, e8e075f, 1465992, b3354b4, 7795ae3, 7d117e9, eb2ddb1, a349e79, a25f931, 87a6d0c, bba4b6d
…TriBITSPub#200)

This catches cases that have caused major problems in Trilinos recently (and
likely farther back than that).
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=263,notpassed=0 (0.78 min)
1) SERIAL_RELEASE => passed: passed=263,notpassed=0 (0.75 min)
2) MPI_DEBUG_CMAKE-3.6.2 => passed: passed=284,notpassed=0 (0.68 min)
3) SERIAL_RELEASE_CMAKE-3.6.2 => passed: passed=284,notpassed=0 (0.74 min)
Other local commits for this build/test group: fa6e3a9
Here's an initial implementation that allows a user to add default
development branches to the .gitdist file in the form

. master
otherRepo develop
thirdRepo master

If those default development branches aren't specified, master is
assumed.  The user can then pass _DEFAULT_BRANCH_ to any command that
accepts a reference and gitdist should replace _DEFAULT_BRANCH_ with the
appropriate branch from the .gitdist file.  The documentation for this
feature can be accessed with --dist-help=default-branch.
The ability to use the environment variable GITDIST_MOVE_TO_BASE_DIR to
change gitdist's behavior is now documented (see
--dist-help=move-to-base-dir) and tested (see the
gitdist_move_to_base_dir unit test).
Looks better formatted especially when using --dist-help=all.

Also, moved --dist-help=move-to-base-dir above 'usage-tips' and
'script-dependencies' since I think that order seems a little better,
especially for --dist-help=all.

I also had to fix the tests to work when GITDIST_MOVE_TO_BASE_DIR is not set
in the outer shell.
fryeguy52 and others added 28 commits September 12, 2018 15:29
Since this tutorial is in the tribits/doc/ directory, calling the
'tribits/doc/tribits_tutorial' is redundant.  Therefore, I changed the name to
'tribits/doc/tutorial'.

The driver script was trying to copy files to cupojoe.srn.sandia.gov.  Also,
it was removing output files automatically.  How can you debug problems if you
remove the output files?

Added README.md file to state that this is still in develpment and may not
build (I can't build it on my Linux machine).

This will need some refactoring to make this cleaner, more robust, and easier
to work with.
Hopefully this will avoid some confusion about this.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_CMAKE-3.11.1 => passed: passed=328,notpassed=0 (1.09 min)
3) SERIAL_RELEASE_CMAKE-3.11.1 => passed: passed=328,notpassed=0 (1.17 min)
Other local commits for this build/test group: 4f6f4c8
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => Test case MPI_DEBUG was not run! => Does not affect push readiness! (-1.00 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
2) MPI_DEBUG_CMAKE-3.11.1 => passed: passed=328,notpassed=0 (0.86 min)
3) SERIAL_RELEASE_CMAKE-3.11.1 => passed: passed=328,notpassed=0 (1.20 min)
Other local commits for this build/test group: ed2dde4
When the TriBITS tests where run recently under CASL VERA, a bunch of these
failed because they had set CTEST_TEST_TYPE=Nightly in the env and that
interacted with some of these TriBITS tests badly.  I was able to reproduce
the test failures bu just running:

   env CTEST_TEST_TYPE=Nightly ctest -j16

After setting back to default CTEST_TEST_TYPE= in the env, all of these tests
passed.

NOTE: I did not add any other tests for this case because I did not think it
was worth the effort and the risk is very low.  If some env var interacts with
these tests and casues them to fail, it is easy enough to debug what is
happening and then reset the offending env var (like I did here) and then get
the tests to pass again.  Where there is more risk is when you can set an env
var and make tests pass that should otherwise fail (but I don't see how that
can happen given the nature of these very strong tests).
…s#1761)

Since the min version of CMake for TriBITS will soon be CMake 3.10.0 (see
trilinos/Trilinos/#1761), we might as well just swtich to use CMake 3.11.1 for
testing locally with TriBITS.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=328,notpassed=0 (0.89 min)
1) SERIAL_RELEASE => passed: passed=328,notpassed=0 (0.91 min)
Other local commits for this build/test group: a24cefe
This will be needed once Trilinos and TriBITS offically make the min version
CMake 3.10.0 (see trilinos/Trilinos#1761).
This will open the door to remove a bunch of conditional code for older CMake
versions and will then allow for some refactorings that require newer versions
of CMake.  See trilinos/Trilinos#1761 for the motiviations for this.
…trilinos/Trilinos#1761)

I took out logic to set the policy based on the CMake version of 3.3.  That
might change behavior of TriBITS projects so we will need to watch that.  If
that is a problem, we might just set the behavior to CMake 3.10.0 to be safe.
That might make the behavior of TriBITS less variable with new CMake versions.

I left in setting the policy CMP0054 which should make if() statements behave
better w.r.t. to varaible and constant interpretations.
I also switched to all-at-once mode.

I installed valgrind to allow running CTest -S memory checks.

This now runs as many tests as my local checkin-test driver on crf450 with
CMake 3.11.1.
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=328,notpassed=0 (0.84 min)
1) SERIAL_RELEASE => passed: passed=328,notpassed=0 (0.90 min)
Other local commits for this build/test group: 163513d, ae3c395, 7a46273, 52cec81
…or all-at-once approach (TriBITSPub#269)

This was needed when switching from the package-by-package appraoch to the
all-at-once approach by default in Trilinos.  See trilinos/Trilinos#1761.

I also made it so that the list passed in to <Project>_EXCLUDE_PACAKGES can be
seprated by commas ',' or semi-colons ';'.

I added a unit test that protects both of these two behaviors.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=329,notpassed=0 (0.81 min)
1) SERIAL_RELEASE => passed: passed=329,notpassed=0 (0.88 min)
I added tests for passing and failing installs.  I only implemented this for
the all-at-once approach since that is all we need right now for ATDM
Trilinos.  But we could implement it for the package-by-package mode if needed
without much trouble.

Note that as part of this I fixed an oversight where build failures that did
not cause test failures would be ignored in that all-at-once approach.  That
was wrong.  Now if there are any build or install failures, it will assume
that any (read that 'all') of the tested packages may have failed.  See the
long "NOTE" comment about this.  Long-story-short, this will only really
impact CI builds where there are build failures.  If there are just test
failures (the more common case), then only the packages with failing tests are
flagged as failed and will be enabled on the next CI iteration.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=333,notpassed=0 (0.92 min)
1) SERIAL_RELEASE => passed: passed=333,notpassed=0 (1.06 min)
Note sure which commit broke this link but this commit fixes it.
…ub#270)

Without this change, it was creating libs of the name
'lib<libname>.so.SOVERSION' (where 'SOVERSION' is literal!).  I added a test
that makes sure that a 'lib<libname>.so.SOVERSION' library is not created when
the Version.cmake files does not exist.

I also extended an existing test that check that the correct SOVERSION is
added to shared libs when Version.cmake exists.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=334,notpassed=0 (0.87 min)
1) SERIAL_RELEASE => passed: passed=334,notpassed=0 (0.97 min)
Other local commits for this build/test group: 585c062
…riBITSPub#271)

Using 'WARNING:' causes CDash to count these as warnings.  I have replaced all
of the 'WARNING:' with 'NOTE:' for cases that are not actually warnings but
just information that the user should note.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=334,notpassed=0 (0.97 min)
1) SERIAL_RELEASE => passed: passed=334,notpassed=0 (0.93 min)
Makes it easier to load modules and run utilities out of tribits/python_utils.
Since tribits/ci_support depends on tibits/python_utils, this is not making
things any less general.

This will make it easier to write unit tests for cdash_build_testing_date.py.
This tool is to be used to make for robust installs of Trilinos in a date dir
that matches the CDash testing day (see trilinos/Trilinos#2689).
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=335,notpassed=0 (0.84 min)
1) SERIAL_RELEASE => passed: passed=335,notpassed=0 (1.03 min)
Other local commits for this build/test group: f4cf3b5, 97d9ee0
This example shows how to put a raw CMake build system and a TriBITS build
system side-by-side.

There is also a "how to" based on this example.  Hopefully this will be enough
to explain how to accomplish this.

Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=337,notpassed=0 (0.88 min)
1) SERIAL_RELEASE => passed: passed=337,notpassed=0 (0.99 min)
Build/Test Cases Summary
Enabled Packages:
Enabled all Packages
0) MPI_DEBUG => passed: passed=337,notpassed=0 (0.84 min)
1) SERIAL_RELEASE => passed: passed=337,notpassed=0 (0.95 min)
lefebvre pushed a commit that referenced this pull request Apr 17, 2025
…ptions-1

Adds cdash_analyze_and_report.py --filter-out-builds-and-tests-not-matching-expected-builds, fix filtering
lefebvre pushed a commit that referenced this pull request Apr 17, 2025
…po_fixes

Fixed typo mistake seen in PR 464
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants