Ticket #9442 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

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:1 Changed 6 years ago by Russell Taylor

  • Status changed from new to assigned

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

Note: See TracTickets for help on using tickets.