Skip to content

Conversation

@vepadulano
Copy link
Member

Using the NO_CXXMODULE option of ROOTTEST_GENERATE_DICTIONARY produces dictionary artifacts that correctly reproduce the ATLAS environment (i.e. there are no C++ module neither modulemap produced in the test build directory).

@vepadulano vepadulano requested a review from pcanal July 11, 2025 11:59
@vepadulano vepadulano self-assigned this Jul 11, 2025
@vepadulano vepadulano requested a review from bellenot as a code owner July 11, 2025 11:59
@vepadulano vepadulano added the clean build Ask CI to do non-incremental build on PR label Jul 11, 2025
@github-actions
Copy link

github-actions bot commented Jul 11, 2025

Test Results

    23 files      23 suites   3d 20h 56m 39s ⏱️
 3 812 tests  3 811 ✅ 0 💤 1 ❌
80 355 runs  80 354 ✅ 0 💤 1 ❌

For more details on these failures, see this check.

Results for commit 2b80641.

♻️ This comment has been updated with latest results.

@dpiparo dpiparo self-requested a review July 14, 2025 05:56
dpiparo
dpiparo previously approved these changes Jul 14, 2025
Copy link
Member

@dpiparo dpiparo left a comment

Choose a reason for hiding this comment

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

thanks for these changes. I am approving the PR, with the caveat that the debian failure perhaps deserves a closer look before merging.

@vepadulano
Copy link
Member Author

Indeed the failure https://github.com/root-project/root/actions/runs/16219472129/job/45796305238?pr=19344#step:11:12437 is worrying

   ============================= test session starts ==============================
  platform linux -- Python 3.9.21, pytest-8.4.1, pluggy-1.6.0
  rootdir: /github/home/ROOT-CI
  plugins: anyio-4.9.0
  collected 1 item
  
  ../../../../../src/roottest/root/ntuple/atlas-datavector/template_instantiation.py F [100%]
  
  =================================== FAILURES ===================================
  _________ TestTemplateInstantiation.test_instantiate_function_template _________
  
  self = <template_instantiation.TestTemplateInstantiation object at 0x7f005ea90d30>
  
      def test_instantiate_function_template(self):
          import ROOT
      
          ROOT.gInterpreter.Declare(r"template <typename T> void foo() {}")
      
          # The call raises an exception that the function cannot be found.
          # What is really happening is that a template instantiation is tried
          # with the "wrong" signature, as the class type passed by the user is
          # not what the compiler sees.
          field_type_name = "AtlasLikeDataVector<CustomStruct>"
          with pytest.raises(TypeError):
              ROOT.foo[field_type_name]()
      
          # The first attempt at instantiating the template has had the side
          # effect of loading the dictionary information for AtlasLikeDataVector,
          # including the alternative class type names
          alt_field_type_names = ROOT.TClassTable.GetClassAlternativeNames(field_type_name)
      
          fully_qualified_type_name = "AtlasLikeDataVector<CustomStruct, DataModel_detail::NoBase>"
      
  >       assert len(alt_field_type_names) == 1
  E       assert 0 == 1
  E        +  where 0 = len(vector<string>{})
  
  ../../../../../src/roottest/root/ntuple/atlas-datavector/template_instantiation.py:25: AssertionError
  =========================== short test summary info ============================
  FAILED ../../../../../src/roottest/root/ntuple/atlas-datavector/template_instantiation.py::TestTemplateInstantiation::test_instantiate_function_template - assert 0 == 1
   +  where 0 = len(vector<string>{})
  ============================== 1 failed in 1.71s ===============================
  CMake Error at /github/home/ROOT-CI/build/RootTestDriver.cmake:232 (message):
    error code: 1

It's unclear to me whether it happens because of the changes in this PR.

@vepadulano vepadulano dismissed dpiparo’s stale review July 29, 2025 07:10

The failure on alma9-clang looks real

@vepadulano vepadulano closed this Oct 22, 2025
@vepadulano vepadulano reopened this Oct 22, 2025
@vepadulano vepadulano closed this Jan 9, 2026
@vepadulano vepadulano reopened this Jan 9, 2026
Using the `NO_CXXMODULE` option of `ROOTTEST_GENERATE_DICTIONARY` produces
dictionary artifacts that correctly reproduce the ATLAS environment (i.e. there
are no C++ module neither modulemap produced in the test build directory).
@vepadulano vepadulano force-pushed the atlas-datavector-cmake branch from a975161 to 2b80641 Compare January 12, 2026 11:33
@vepadulano
Copy link
Member Author

The problem was understood, there was a missing FIXTURES_REQUIRED. The second Python unittest does not need the RNTuple file, but it still needs the class dictionary. The second commit fixes the issue.

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

Labels

clean build Ask CI to do non-incremental build on PR in:Build System

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants