From f408de1f1abcf207e5054ab924f3e2816499bb0a Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Tue, 25 Jun 2019 19:24:53 +0200 Subject: [PATCH] Update GDML tests to use ROOT GDML converter --- DDCore/src/gdml/GdmlPlugins.cpp | 17 +++++++++++++++++ examples/CLICSiD/CMakeLists.txt | 8 +++++++- examples/ClientTests/CMakeLists.txt | 8 +++++++- examples/LHeD/CMakeLists.txt | 8 +++++++- examples/SimpleDetector/CMakeLists.txt | 6 +++++- 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/DDCore/src/gdml/GdmlPlugins.cpp b/DDCore/src/gdml/GdmlPlugins.cpp index 22a3c166f..183d93526 100644 --- a/DDCore/src/gdml/GdmlPlugins.cpp +++ b/DDCore/src/gdml/GdmlPlugins.cpp @@ -229,4 +229,21 @@ static long gdml_extract(Detector& description, int argc, char** argv) { } DECLARE_APPLY(DD4hep_ROOTGDMLExtract,gdml_extract) +/// Factory for backwards compatibility +static long create_gdml_from_dd4hep(Detector& description, int argc, char** argv) { + if ( argc > 0 ) { + string output = argv[0]; + if ( output.substr(0,5) == "file:" ) output = output.substr(6); + const char* av[] = {"DD4hepGeometry2GDML", "-output", output.c_str(), "-path", "/world", 0}; + if ( 1 == gdml_extract(description, 5, (char**)av) ) { + printout(INFO,"Geometry2GDML","+++ Successfully extracted GDML to %s",output.c_str()); + return 1; + } + except("Geometry2GDML","+++ FAILED to extract GDML file %s.",output.c_str()); + } + except("Geometry2GDML","+++ No output file name given."); + return 0; +} +DECLARE_APPLY(DD4hepGeometry2GDML, create_gdml_from_dd4hep) + #endif diff --git a/examples/CLICSiD/CMakeLists.txt b/examples/CLICSiD/CMakeLists.txt index 9967ff104..d0a8c570b 100644 --- a/examples/CLICSiD/CMakeLists.txt +++ b/examples/CLICSiD/CMakeLists.txt @@ -34,7 +34,13 @@ dd4hep_configure_scripts ( CLICSiD DEFAULT_SETUP WITH_TESTS ) #---Testing------------------------------------------------------------------------- # #----- Tests for CLICSid: here we simply require that at least 100 volumes have been converted -foreach ( typ description gdml vis ) +dd4hep_add_test_reg ( "CLICSiD_converter_gdml_LONGTEST" + COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_CLICSiD.sh" + EXEC_ARGS geoConverter -compact2gdml + -input file:${CLICSiDEx_INSTALL}/compact/compact.xml + -output file:CLICSiD.gdml + REGEX_PASS " Successfully extracted GDML to" ) +foreach ( typ description vis ) dd4hep_add_test_reg ( "CLICSiD_converter_${typ}_LONGTEST" COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_CLICSiD.sh" EXEC_ARGS geoConverter -compact2${typ} diff --git a/examples/ClientTests/CMakeLists.txt b/examples/ClientTests/CMakeLists.txt index a44d06721..20b79de65 100644 --- a/examples/ClientTests/CMakeLists.txt +++ b/examples/ClientTests/CMakeLists.txt @@ -205,7 +205,13 @@ foreach (test Assemblies BoxTrafos IronCylinder LheD_tracker MagnetFields Materi REGEX_PASS "\\+\\+\\+ Checked [1-9][0-9]* materials in volume placements. 0 are BAD." ) # Test format conversions - foreach( type description gdml vis ) + dd4hep_add_test_reg( ClientTests_converter_gdml_${test} + COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_ClientTests.sh" + EXEC_ARGS geoConverter -compact2gdml + -input file:${ClientTestsEx_INSTALL}/compact/${test}.xml + -output file:${test}.gdml + REGEX_PASS " Successfully extracted GDML to" ) + foreach( type description vis ) dd4hep_add_test_reg( ClientTests_converter_${type}_${test} COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_ClientTests.sh" EXEC_ARGS geoConverter -compact2${type} diff --git a/examples/LHeD/CMakeLists.txt b/examples/LHeD/CMakeLists.txt index 17a775f42..98813ff25 100644 --- a/examples/LHeD/CMakeLists.txt +++ b/examples/LHeD/CMakeLists.txt @@ -38,7 +38,13 @@ dd4hep_configure_scripts(LHeD DEFAULT_SETUP WITH_TESTS) #---Testing------------------------------------------------------------------------- # #----- Tests for LHeD: here we simply require that at least 100 volumes have been converted -foreach ( typ description gdml vis ) +dd4hep_add_test_reg ( "LHeD_converter_gdml_LONGTEST" + COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_LHeD.sh" + EXEC_ARGS geoConverter -compact2gdml + -input file:${LHeDEx_INSTALL}/compact/compact.xml + -output file:LHeD.gdml + REGEX_PASS " Successfully extracted GDML to" ) +foreach ( typ description vis ) dd4hep_add_test_reg ( "LHeD_converter_${typ}_LONGTEST" COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_LHeD.sh" EXEC_ARGS geoConverter -compact2${typ} diff --git a/examples/SimpleDetector/CMakeLists.txt b/examples/SimpleDetector/CMakeLists.txt index d1efb9cb3..2e7387a42 100644 --- a/examples/SimpleDetector/CMakeLists.txt +++ b/examples/SimpleDetector/CMakeLists.txt @@ -27,7 +27,11 @@ dd4hep_configure_scripts(SimpleDetector DEFAULT_SETUP WITH_TESTS) #*** Testing ********************************************************************* foreach (test Simple_ILD) - foreach( type description gdml vis ) + dd4hep_add_test_reg( SimpleDetector_converter_gdml + COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_SimpleDetector.sh" + EXEC_ARGS geoConverter -compact2gdml -input file:${CMAKE_CURRENT_SOURCE_DIR}/compact/${test}.xml -output file:${test}.gdml + REGEX_PASS " Successfully extracted GDML to") + foreach( type description vis ) dd4hep_add_test_reg( SimpleDetector_converter_${type} COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_SimpleDetector.sh" EXEC_ARGS geoConverter -compact2${type} -input file:${CMAKE_CURRENT_SOURCE_DIR}/compact/${test}.xml -output file:${test}.${type} -- GitLab