Skip to content

[roottest] set build dir when compile macro #19054

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

linev
Copy link
Member

@linev linev commented Jun 16, 2025

Try to avoid creation of many temporary files in source directory where macro is situated.
Most significant drawback has on Windows when several files has to be moved or deleted from source directory

Need to adjust several existing tests to correctly configure fixtures (dependencies) between tests.
Re-enable cling/templateMembers/runtemplateMembers test which was not included in cmake before, but exists in Makefile

Several failures was due to fact that both compiled and interpreted version of macro need to be running.
To exclude interference - I add deletion of compiled code and configure strict dependency:

      PRECMD ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/runvbase_C${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_CURRENT_BINARY_DIR}/runvbase_C_ACLiC_dict_rdict.pcm

Copy link

github-actions bot commented Jun 16, 2025

Test Results

    18 files      18 suites   3d 12h 38m 38s ⏱️
 2 861 tests  2 861 ✅ 0 💤 0 ❌
50 056 runs  50 056 ✅ 0 💤 0 ❌

Results for commit 2920b72.

♻️ This comment has been updated with latest results.

@pcanal
Copy link
Member

pcanal commented Jun 16, 2025

I am exactly sure why it works before and not after. The test failures seems to indicates that the ACLiCed library is being loaded both explicitly (as intended by the test) and implicitly (autoloading). It might be related to (before the rootmap file would not be copied, after the rootmap file would be built in the run-time/binary directory)

# Select whether and how ACLiC tracks the dependency of the libraries.
#  0 - No tracking
#  1 - [Default] New libraries are explicitly linked to all currently loaded libraries
#  2 - Generate and use rootmap file for each library
#  3 - Generate rootmap file for each library _and_ explicitly link to the
#      needed libraries.
# On Windows, the default is 3
#ACLiC.LinkLibs:      1

@linev
Copy link
Member Author

linev commented Jun 17, 2025

Most (all?) failures due to fact that both compiled and interpreted version of macro need to be running.

To exclude interference - I will try to delete all libs first, then run interpreted version and finally run ACLiC version.

@linev linev force-pushed the roottest_compile_macro_win branch from 9946d02 to 08be0da Compare June 17, 2025 06:43
@linev linev requested a review from dpiparo as a code owner June 17, 2025 06:43
@linev linev force-pushed the roottest_compile_macro_win branch 2 times, most recently from 12ee70e to 698f472 Compare June 17, 2025 07:41
linev added 6 commits June 17, 2025 11:17
Try to create many temporary files in source directory where macro is situated. Most significant draw back has on Windows when several files has to be moved or deleted from source directory
Remove macro dll to avoid interfearence with interpreted and compiled macro
@linev linev force-pushed the roottest_compile_macro_win branch from 698f472 to 5128a13 Compare June 17, 2025 09:19
On the Windows one should compile macro before running it.
Doing same on other platforms fails.
Change test names to avoid collision in log files
Remove unused files
@linev linev force-pushed the roottest_compile_macro_win branch from 5128a13 to 2920b72 Compare June 17, 2025 11:27
@linev
Copy link
Member Author

linev commented Jun 17, 2025

@pcanal After fixing dependency new approach works

@pcanal
Copy link
Member

pcanal commented Jun 17, 2025

Several failures was due to fact that both compiled and interpreted version of macro need to be running.

It should not be a problem and is not on Linux ... What appended when using the .rootrc:

Rint.History:  .root_hist
ACLiC.LinkLibs:  1

(i.e. the one created by roottest's cmake)?

@linev
Copy link
Member Author

linev commented Jun 17, 2025

It should not be a problem and is not on Linux ... What appended when using the .rootrc:

Main problem was Windows.
And use of -e "gSystem->SetBuildDir(\"${CMAKE_CURRENT_BINARY_DIR}\", true)" only has real effect on Windows.
And only use of FIXTURES_SETUP/FIXTURES_REQUIRED helps to solve the problem

Copy link
Member

@bellenot bellenot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thanks Sergey! Let's see if Philippe agrees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants