Ticket #9442 (closed: fixed)
Minor changes required for Valgrind Jenkins jobs
Reported by: | Russell Taylor | Owned by: | Russell Taylor |
---|---|---|---|
Priority: | trivial | Milestone: | Release 3.2 |
Component: | Tools | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Peter Peterson |
Description
These jobs involve running the test executable directly rather than via ctest, which is subtly different so sometimes exposes issues.
I'm also running separate jobs for each package and building only that test package, which is showing up some hidden dependencies.
Change History
comment:2 Changed 6 years ago by Russell Taylor
- Status changed from assigned to inprogress
Re #9442. Change required to run CrystalTest directly.
Changeset: c83ab6a6db548825f27497fdca2a0c70af86664a
comment:3 Changed 6 years ago by Russell Taylor
Re #9442. Make sure CurveFitting is up to date for Crystal tests.
One of the algorithms in Crystal uses the Fit algorithm so we have to make sure CurveFitting is built before running the Crystal tests.
Changeset: f23bbb745b8c38c003349134353a0fec4b7ff62d
comment:4 Changed 6 years ago by Russell Taylor
Re #9442. Add required packages for running tests.
GroupDetectors requires Divide. LoadTest requires LoadMD.
Changeset: 5cd1b2250db7787efd2d188564ade21840aca118
comment:5 Changed 6 years ago by Russell Taylor
Re #9442. Also need to have Algorithms built.
LoadIsawUB requires Rebin.
Changeset: 341f2d72ec84ac336bc0d1705151adea6bd15dc3
comment:6 Changed 6 years ago by Russell Taylor
Re #9442. Add test dependency.
LoadLiveDataTest uses an MD algorithm.
Changeset: 72c28ff712cd73c0f43f0bc56753276825112f54
comment:7 Changed 6 years ago by Russell Taylor
Re #9442. Clear the AlgorithmManager at the start of the test.
Ensures that the LiveDataTest executable can be run directly (and successfully).
Changeset: ef2a90f110b8b45ba8bca5f1f97d4adcd45d85b6
comment:8 Changed 6 years ago by Russell Taylor
Re #9442. WorkflowAlgorithmTests require CurveFitting package.
MuonCalculateAsymmetry uses RemoveExpDecay which uses Fit.
Changeset: 89ddf13e27204127e64c625ed19ef10bda9c50c9
comment:9 Changed 6 years ago by Russell Taylor
Re #9442. Algorithms is required to run MDAlgorithmsTest.
Changeset: 2330a6f20a30b0aa34b5f591e38820a1b727e05b
comment:10 Changed 6 years ago by Russell Taylor
Re #9442. Running the Algorithm tests requires MDAlgorithms.
Changeset: 887b13fdf835f91a5bb0dbca9527c103ef28bf2b
comment:11 Changed 6 years ago by Russell Taylor
Re #9442. CurveFitting shouldn't need to be a full link.
Specifying it as a dependency should be enough - no tests use it directly.
Changeset: f3bbf8f63d720e26673e82872ed6b755371a90df
comment:12 Changed 6 years ago by Russell Taylor
Re #9442. Crystal also needed for AnvredCorrection.
Changeset: f1c8fca2523eeb18f8838947aad467875ccd5ba3
comment:13 Changed 6 years ago by Russell Taylor
Re #9442. The CurveFitting tests require Algorithms.
Changeset: 39d3994e2fff79b3adcec48bff71fded39d0a6c8
comment:14 Changed 6 years ago by Russell Taylor
Re #9442. Make sure config variable is reset after running.
This is what was causing the DiffSphereTest to fail when running the CurveFittingTest executable directly.
Changeset: 13376069d589e65bf9f18545ec14de14eb9a1da2
comment:15 Changed 6 years ago by Russell Taylor
Re #9442. Skip DiffSphereTest suite if running in Valgrind.
These tests fail if running under valgrind (see comment in commit itself). Lean on a Valgrind macro to determine if we're running within Valgrind and skip the tests if we are so that the rest of the tests can run to completion (I'm running the CurveFittingTest executable directly so it's running all the tests together).
The required header from valgrind has been placed into the CurveFitting/test directory so we're not creating a dependency. If some platforms don't like it I'll conditionally include/use it on linux only.
Changeset: f736a87310ae2b4a1dbb19a27489d3bb5afd3150
comment:16 Changed 6 years ago by Russell Taylor
Re #9442. Remove unrequired definition of pi.
Changeset: d83da2a1e944c8c9df3c34dc827ace3245ba3871
comment:17 Changed 6 years ago by Russell Taylor
- Status changed from inprogress to verify
- Resolution set to fixed
This is all about being able to build a framework package test target in isolation and run the unit test executable. So it's mostly making sure that soft dependencies between plugin algorithm packages are specified correctly (e.g. so CurveFitting is built when AlgorithmsTest is as there are algorithms in Algorithms that call the Fit algorithm as a child), and that tests are still able to run if some other test has, e.g. stored a workspace with the same name or changed a config setting.
There was one other extra bit in DiffSphereTest that skips the tests if running in Valgrind - do check that they're running in the 'normal' builds.
I suggest testing by inspection.
comment:18 Changed 6 years ago by Peter Peterson
- Status changed from verify to verifying
- Tester set to Peter Peterson
comment:19 Changed 6 years ago by Pete Peterson
Merge remote-tracking branch 'origin/feature/9442_for_valgrind_jobs'
Re #9442
Conflicts:
Code/Mantid/Framework/Crystal/test/CMakeLists.txt
Changeset: 9cf7aaf0ec938935854592341992faedc85f605e
comment:20 Changed 6 years ago by Pete Peterson
- Status changed from verifying to closed
Merge remote-tracking branch 'origin/feature/9442_for_valgrind_jobs'
Re #9442
Conflicts:
Code/Mantid/Framework/Crystal/test/CMakeLists.txt
Full changeset: 9cf7aaf0ec938935854592341992faedc85f605e
comment:21 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 10285