diff --git a/roottest/root/meta/MakeProject/.rootrc b/roottest/root/meta/MakeProject/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/MakeProject/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/MakeProject/CMakeLists.txt b/roottest/root/meta/MakeProject/CMakeLists.txt index 0c3605f94552e..a450f5ebc5d27 100644 --- a/roottest/root/meta/MakeProject/CMakeLists.txt +++ b/roottest/root/meta/MakeProject/CMakeLists.txt @@ -1,12 +1,16 @@ -ROOTTEST_GENERATE_DICTIONARY(stl_makeproject_test stl_makeproject_test.h LINKDEF stl_makeproject_test_linkdef.h NO_ROOTMAP NO_CXXMODULE) +ROOTTEST_GENERATE_DICTIONARY(stl_makeproject_test + stl_makeproject_test.h + LINKDEF stl_makeproject_test_linkdef.h + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-MakeProject-stl_makeproject_test-fixture) # If we build roottest in-tree, add a dependecy on Hist because the header # includes TH1D. if(TARGET Hist) add_dependencies(stl_makeproject_test Hist) endif() -if(ROOT_runtime_cxxmodules_FOUND) - # FIXME: For C++ modules builds, module.modulemap is generated during configuration time +if(runtime_cxxmodules) + # FIXME: For C++ modules builds, module.modulemap is generated during configuration time # and it is not needed during execution of stltest*, but later for other tests it needs to be back in build directory. # FIXME: We need to run some tests in serial mode, because in very-parallel builds, # since they access the same build directory, they could conflict via existent/not module.modulemap file. @@ -18,8 +22,7 @@ if(ROOT_runtime_cxxmodules_FOUND) OUTCNV atlasaod_convert.sh OUTREF atlasaod.ref LABELS longtest - RUN_SERIAL - ) + RUN_SERIAL) ROOTTEST_ADD_TEST(runcms310 COPY_TO_BUILDDIR enable_modulemap.sh @@ -39,34 +42,35 @@ if(ROOT_runtime_cxxmodules_FOUND) OUTCNV aliceesd_convert.sh OUTREF aliceesd.ref RUN_SERIAL) - + ROOTTEST_ADD_TEST(examples - COPY_TO_BUILDDIR enable_modulemap.sh + COPY_TO_BUILDDIR enable_modulemap.sh disable_modulemap.sh stl_makeproject_test.h PRECMD ./enable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} - COPY_TO_BUILDDIR stl_makeproject_test.h MACRO create_makeproject_examples.C OUTREF create_makeproject_examples.ref - DEPENDS ${GENERATE_DICTIONARY_TEST} stl_makeproject_test-build) + FIXTURES_REQUIRED root-meta-MakeProject-stl_makeproject_test-fixture + FIXTURES_SETUP root-meta-MakeProject-examples-fixture) ROOTTEST_ADD_TEST(stltest - COPY_TO_BUILDDIR disable_modulemap.sh enable_modulemap.sh PRECMD ./disable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} MACRO runstltest.C POSTCMD ./enable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} OUTREF teststlCTEST.ref - DEPENDS examples) + FIXTURES_REQUIRED root-meta-MakeProject-examples-fixture + FIXTURES_SETUP root-meta-MakeProject-stltest-fixture) ROOTTEST_ADD_TEST(stltest2 - COPY_TO_BUILDDIR disable_modulemap.sh enable_modulemap.sh PRECMD ./disable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} MACRO runstltest2.C POSTCMD ./enable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS stltest) + OUTREF stltest2.ref + FIXTURES_REQUIRED root-meta-MakeProject-stltest-fixture) ROOTTEST_ADD_TEST(foreign COPY_TO_BUILDDIR enable_modulemap.sh foreign.root PRECMD ./enable_modulemap.sh ${CMAKE_CURRENT_BINARY_DIR} MACRO runforeign.C + OUTREF foreign.ref RUN_SERIAL) else() ROOTTEST_ADD_TEST(runatlasaod @@ -88,24 +92,28 @@ else() MACRO runaliceesd.C OUTCNV aliceesd_convert.sh OUTREF aliceesd.ref) - + ROOTTEST_ADD_TEST(examples COPY_TO_BUILDDIR stl_makeproject_test.h MACRO create_makeproject_examples.C OUTREF create_makeproject_examples.ref - DEPENDS ${GENERATE_DICTIONARY_TEST} stl_makeproject_test-build) + FIXTURES_REQUIRED root-meta-MakeProject-stl_makeproject_test-fixture + FIXTURES_SETUP root-meta-MakeProject-examples-fixture) ROOTTEST_ADD_TEST(stltest MACRO runstltest.C OUTREF teststlCTEST${ref_suffix} - DEPENDS examples) - + FIXTURES_REQUIRED root-meta-MakeProject-examples-fixture + FIXTURES_SETUP root-meta-MakeProject-stltest-fixture) + ROOTTEST_ADD_TEST(stltest2 MACRO runstltest2.C - DEPENDS stltest) + OUTREF stltest2.ref + FIXTURES_REQUIRED root-meta-MakeProject-stltest-fixture) ROOTTEST_ADD_TEST(foreign - COPY_TO_BUILDDIR foreign.root - MACRO runforeign.C) + COPY_TO_BUILDDIR foreign.root + MACRO runforeign.C + OUTREF foreign.ref) endif() diff --git a/roottest/root/meta/MakeProject/Makefile b/roottest/root/meta/MakeProject/Makefile deleted file mode 100644 index ac600d464a20a..0000000000000 --- a/roottest/root/meta/MakeProject/Makefile +++ /dev/null @@ -1,134 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) cms310 small_aod aliceesd stl_example.root stltest foreign - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += atlasaod aliceesd teststl stltest2 foreign -ifeq ($(FAST),) -# Takes >1GB of RAM when building; disable for quick builds: -TEST_TARGETS += cms310 -endif - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - -atlasaod.log: runatlasaod.C - $(CMDECHO) $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -ifeq ($(ARCH)$(FAIL),win32) -atlasaod: - $(WarnFailTest) -else -atlasaod: atlasaod.log - $(TestDiff) -endif - -cms310.log: runcms310.C - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v 'WARNING: IO rule for class' | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -ifeq ($(ARCH)$(FAIL),win32) -aliceesd: - $(WarnFailTest) - -cms310: - $(WarnFailTest) -else -aliceesd: aliceesd.log - $(TestDiff) - -cms310: cms310.log - $(TestDiff) - -endif - -aliceesd.log: runaliceesd.C - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -stl_makeproject_test.$(DllSuf): stl_makeproject_test_cling.$(ObjSuf) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(BuildFromObj) - -stl_example.log: create_makeproject_examples.C | stl_makeproject_test.$(DllSuf) - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -stl_example: stl_example.log - $(TestDiff) - -stl_example.root: stl_example.log - -stltest.log: runstltest.C stl_example.root - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v 'WARNING: IO rule for class' | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -stltest2.log: runstltest2.C stltest.log | stl_example.root - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v 'WARNING: IO rule for class' | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -foreign.log: runforeign.C - $(CMDECHO) ulimit -n 1024 ; $(CALLROOTEXE) -q -b -l $< 2>&1 | $(RemoveLeadingDirs) | grep -v 'WARNING: IO rule for class' | grep -v -e 'unused class rule' -e 'no dictionary for class pair' > $@ - -teststl: stltest.log - $(TestDiff) - -stltest2: stltest2.log - $(TestDiff) - -foreign: foreign.log - $(TestDiff) - diff --git a/roottest/root/meta/MakeProject/foreign.ref b/roottest/root/meta/MakeProject/foreign.ref index 01f826505264d..037d2fdbfbc8f 100644 --- a/roottest/root/meta/MakeProject/foreign.ref +++ b/roottest/root/meta/MakeProject/foreign.ref @@ -2,6 +2,6 @@ Processing runforeign.C... Warning in : no dictionary for class ndtf::FinalStateParticle is available MakeProject has generated 1 classes in foreign -MAKEP file has been generated -foreign.so has been generated -foreign.so has been dynamically linked +foreign/MAKEP file has been generated +Shared lib foreign/foreign.so has been generated +Shared lib foreign/foreign.so has been dynamically linked diff --git a/roottest/root/meta/MakeProject/foreign_win32.ref b/roottest/root/meta/MakeProject/foreign_win32.ref new file mode 100644 index 0000000000000..9937d1458d458 --- /dev/null +++ b/roottest/root/meta/MakeProject/foreign_win32.ref @@ -0,0 +1,10 @@ + +Processing runforeign.C... +Warning in : no dictionary for class ndtf::FinalStateParticle is available + + +foreignProjectSource.cxx +MakeProject has generated 1 classes in foreign +foreign/MAKEP file has been generated +Shared lib foreign/foreign.so has been generated +Shared lib foreign/foreign.so has been dynamically linked diff --git a/roottest/root/meta/MakeProject/foreign_win64.ref b/roottest/root/meta/MakeProject/foreign_win64.ref new file mode 100644 index 0000000000000..9937d1458d458 --- /dev/null +++ b/roottest/root/meta/MakeProject/foreign_win64.ref @@ -0,0 +1,10 @@ + +Processing runforeign.C... +Warning in : no dictionary for class ndtf::FinalStateParticle is available + + +foreignProjectSource.cxx +MakeProject has generated 1 classes in foreign +foreign/MAKEP file has been generated +Shared lib foreign/foreign.so has been generated +Shared lib foreign/foreign.so has been dynamically linked diff --git a/roottest/root/meta/MakeProject/teststl.ref b/roottest/root/meta/MakeProject/teststl.ref deleted file mode 100644 index 2ec4dbeb78ece..0000000000000 --- a/roottest/root/meta/MakeProject/teststl.ref +++ /dev/null @@ -1,7 +0,0 @@ - -Processing runstltest.C... -Warning in : no dictionary for class SillyStlEvent is available -MakeProject has generated 1 classes in stltest -MAKEP file has been generated -stltest.so has been generated -stltest.so has been dynamically linked diff --git a/roottest/root/meta/ROOT-10804/CMakeLists.txt b/roottest/root/meta/ROOT-10804/CMakeLists.txt index 4aca5a8e44613..fe22c9b665f3f 100644 --- a/roottest/root/meta/ROOT-10804/CMakeLists.txt +++ b/roottest/root/meta/ROOT-10804/CMakeLists.txt @@ -1,8 +1,10 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT10804 ROOT10804.h SELECTION selection.xml) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT10804 + ROOT10804.h + SELECTION selection.xml + FIXTURES_SETUP root-meta-10804-fixture) ROOTTEST_ADD_TEST(execROOT10804 MACRO execROOT10804.C OUTREF execROOT10804.oref ERRREF execROOT10804.eref - DEPENDS ${depends}) + FIXTURES_REQUIRED root-meta-10804-fixture) diff --git a/roottest/root/meta/ROOT-5694/.rootrc b/roottest/root/meta/ROOT-5694/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/ROOT-5694/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/ROOT-5694/CMakeLists.txt b/roottest/root/meta/ROOT-5694/CMakeLists.txt index 19dd8b31d887d..cd54a88e423a5 100644 --- a/roottest/root/meta/ROOT-5694/CMakeLists.txt +++ b/roottest/root/meta/ROOT-5694/CMakeLists.txt @@ -2,15 +2,15 @@ if(NOT MSVC OR win_broken_tests) ROOTTEST_GENERATE_REFLEX_DICTIONARY(One One.h SELECTION One_selection.xml NO_ROOTMAP - FIXTURES_SETUP execLoadLibs_fixture) + FIXTURES_SETUP root-meta-5694-One-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(Two Two.h SELECTION Two_selection.xml NO_ROOTMAP - FIXTURES_SETUP execLoadLibs_fixture) + FIXTURES_SETUP root-meta-5694-Two-fixture) ROOTTEST_ADD_TEST(execLoadLibs MACRO execLoadLibs.C OUTREF execLoadLibs.oref ERRREF execLoadLibs.eref - FIXTURES_REQUIRED execLoadLibs_fixture) + FIXTURES_REQUIRED root-meta-5694-One-fixture root-meta-5694-Two-fixture) endif() diff --git a/roottest/root/meta/ROOT-5694/Makefile b/roottest/root/meta/ROOT-5694/Makefile deleted file mode 100644 index 21cdabdbe01b5..0000000000000 --- a/roottest/root/meta/ROOT-5694/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execLoadLibs - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -execLoadLibs.log: libOne_dictrflx.$(DllSuf) libTwo_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/ROOT-7181/.rootrc b/roottest/root/meta/ROOT-7181/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/ROOT-7181/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/ROOT-7181/CMakeLists.txt b/roottest/root/meta/ROOT-7181/CMakeLists.txt index 182629f9610bb..3e9609e2bdfbe 100644 --- a/roottest/root/meta/ROOT-7181/CMakeLists.txt +++ b/roottest/root/meta/ROOT-7181/CMakeLists.txt @@ -1,8 +1,44 @@ -#------------------------------------------------------------------------------- -# -# Placeholder file to translate the tests to the new CTest system. Meanwhile we -# define a CTest test that calls 'make' in ${CMAKE_CURRENT_SOURCE_DIR} -# -#------------------------------------------------------------------------------- - -ROOTTEST_ADD_OLDTEST() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(btag + inc/BTagVertex_v1.h + SELECTION inc/btag_selection.xml + FIXTURES_SETUP root-meta-7181-btag-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(jet + inc/Jet_v1.h + SELECTION inc/jet_selection.xml + FIXTURES_SETUP root-meta-7181-jet-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(sjet + inc/SJet_v1.h + SELECTION inc/sjet_selection.xml + FIXTURES_SETUP root-meta-7181-sjet-fixture) + +macro(ROOT_7181_TEST name use_rmap) + if(${use_rmap} STREQUAL "true") + set(testname rmap-${name}) + else() + set(testname ${name}) + endif() + + ROOTTEST_ADD_TEST(${testname} + MACRO runscript.C + MACROARG "\"${CMAKE_CURRENT_SOURCE_DIR}/scripts/${name}.script\",${use_rmap}" + ROOTEXE_OPTS -e "gInterpreter->AddIncludePath(\"-I${CMAKE_CURRENT_SOURCE_DIR}\")" + -e "gInterpreter->AddIncludePath(\"-I${CMAKE_CURRENT_SOURCE_DIR}/inc\")" + OUTREF ${testname}.ref + FIXTURES_REQUIRED root-meta-7181-btag-fixture + root-meta-7181-jet-fixture + root-meta-7181-sjet-fixture) +endmacro(ROOT_7181_TEST) + +ROOT_7181_TEST(case1 false) +ROOT_7181_TEST(case2 false) +ROOT_7181_TEST(case3 false) +ROOT_7181_TEST(case4 false) + +ROOT_7181_TEST(case1 true) +ROOT_7181_TEST(case2 true) +ROOT_7181_TEST(case3 true) +ROOT_7181_TEST(case4 true) diff --git a/roottest/root/meta/ROOT-7181/Makefile b/roottest/root/meta/ROOT-7181/Makefile deleted file mode 100644 index ba736d68ad8df..0000000000000 --- a/roottest/root/meta/ROOT-7181/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -ALL_CASES = case1 case2 case3 case4 -ALL_ROOTMAP_CASES = $(addprefix rmap-,$(ALL_CASES)) - -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) \ - obj/* lib/* -TEST_TARGETS += execLoadLibs $(ALL_CASES) $(ALL_ROOTMAP_CASES) - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -obj/jet_dict.cxx: inc/jet_selection.xml inc/Jet_v1.h inc/DataVector.h - $(CMDECHO) mkdir -p obj lib && genreflex inc/Jet_v1.h --output obj/jet_dict.cxx -l lib/libjet.so -s inc/jet_selection.xml --rootmap lib/libjet.rootmap -Iinc - -obj/sjet_dict.cxx: inc/sjet_selection.xml inc/SJet_v1.h inc/DataVector.h - $(CMDECHO) mkdir -p obj lib && genreflex inc/SJet_v1.h --output obj/sjet_dict.cxx -l lib/libsjet.so -s inc/sjet_selection.xml --rootmap lib/libsjet.rootmap -Iinc - -obj/btag_dict.cxx: inc/btag_selection.xml inc/BTagVertex_v1.h inc/DataVector.h - $(CMDECHO) mkdir -p obj lib && genreflex inc/BTagVertex_v1.h --output obj/btag_dict.cxx -l lib/libbtag.so -s inc/btag_selection.xml --rootmap lib/libbtag.rootmap -Iinc - - -lib/libjet.$(DllSuf): obj/jet_dict.$(ObjSuf) - $(BuildFromObj) - -lib/libsjet.$(DllSuf): obj/sjet_dict.$(ObjSuf) - $(BuildFromObj) - -lib/libbtag.$(DllSuf): obj/btag_dict.$(ObjSuf) - $(BuildFromObj) - -$(ALL_CASES) : %: %.success -$(ALL_ROOTMAP_CASES) : %: %.success - -ALL_CASES_LOG = $(addsuffix .log,$(ALL_CASES)) -ALL_ROOTMAP_CASES_LOG = $(addsuffix .log,$(ALL_ROOTMAP_CASES)) - -$(addsuffix .success,$(ALL_CASES) $(ALL_ROOTMAP_CASES)) : %.success: %.log %.ref - $(SuccessTestDiff) && touch $@ - - -$(ALL_CASES_LOG): %.log: scripts/%.script lib/libjet.$(DllSuf) lib/libbtag.$(DllSuf) lib/libsjet.$(DllSuf) $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(CMDECHO) $(CALLROOTEXE) -l -b < $< > $@ 2>&1 || handleError.sh --cmd='Execution of $<' --result=$$? --log=$@ --test=$* - -$(ALL_ROOTMAP_CASES_LOG): rmap-%.log: scripts/%.script lib/libjet.$(DllSuf) lib/libbtag.$(DllSuf) lib/libsjet.$(DllSuf) $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(CMDECHO) $(CALLROOTEXE) -l -b scripts/loadrootmap.C < $< > $@ 2>&1 || handleError.sh --cmd='Execution of $<' --result=$$? --log=$@ --test=$* - - - diff --git a/roottest/root/meta/ROOT-7181/case1.ref b/roottest/root/meta/ROOT-7181/case1.ref index 254b61f0be9df..4de6c68a33935 100644 --- a/roottest/root/meta/ROOT-7181/case1.ref +++ b/roottest/root/meta/ROOT-7181/case1.ref @@ -1,2 +1,3 @@ +Processing runscript.C("scripts/case1.script",false)... Classinfo for DataVector is valid diff --git a/roottest/root/meta/ROOT-7181/case2.ref b/roottest/root/meta/ROOT-7181/case2.ref index 0d0b2a7145ad4..45b99f628043f 100644 --- a/roottest/root/meta/ROOT-7181/case2.ref +++ b/roottest/root/meta/ROOT-7181/case2.ref @@ -1,2 +1,3 @@ +Processing runscript.C("scripts/case2.script",false)... Classinfo for SDataVector is valid diff --git a/roottest/root/meta/ROOT-7181/case3.ref b/roottest/root/meta/ROOT-7181/case3.ref index f72e441106768..695377fa0dfb3 100644 --- a/roottest/root/meta/ROOT-7181/case3.ref +++ b/roottest/root/meta/ROOT-7181/case3.ref @@ -1,2 +1,3 @@ +Processing runscript.C("scripts/case3.script",false)... TClass for DataVector is loaded diff --git a/roottest/root/meta/ROOT-7181/case4.ref b/roottest/root/meta/ROOT-7181/case4.ref index 995ac8e45c649..e944d63a16135 100644 --- a/roottest/root/meta/ROOT-7181/case4.ref +++ b/roottest/root/meta/ROOT-7181/case4.ref @@ -1,2 +1,3 @@ +Processing runscript.C("scripts/case4.script",false)... Normalized name for DataVector is : DataVector > diff --git a/roottest/root/meta/ROOT-7181/rmap-case1.ref b/roottest/root/meta/ROOT-7181/rmap-case1.ref index 5689528baca7e..5926a5ed1338c 100644 --- a/roottest/root/meta/ROOT-7181/rmap-case1.ref +++ b/roottest/root/meta/ROOT-7181/rmap-case1.ref @@ -1,3 +1,3 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C("scripts/case1.script",true)... Classinfo for DataVector is valid diff --git a/roottest/root/meta/ROOT-7181/rmap-case2.ref b/roottest/root/meta/ROOT-7181/rmap-case2.ref index 03a90ffbc68eb..5977840320989 100644 --- a/roottest/root/meta/ROOT-7181/rmap-case2.ref +++ b/roottest/root/meta/ROOT-7181/rmap-case2.ref @@ -1,3 +1,3 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C("scripts/case2.script",true)... Classinfo for SDataVector is valid diff --git a/roottest/root/meta/ROOT-7181/rmap-case3.ref b/roottest/root/meta/ROOT-7181/rmap-case3.ref index 75adadeed4c81..d055793a817f3 100644 --- a/roottest/root/meta/ROOT-7181/rmap-case3.ref +++ b/roottest/root/meta/ROOT-7181/rmap-case3.ref @@ -1,3 +1,3 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C("scripts/case3.script",true)... TClass for DataVector is loaded diff --git a/roottest/root/meta/ROOT-7181/rmap-case4.ref b/roottest/root/meta/ROOT-7181/rmap-case4.ref index f5c2ce19b3663..589770da3b73e 100644 --- a/roottest/root/meta/ROOT-7181/rmap-case4.ref +++ b/roottest/root/meta/ROOT-7181/rmap-case4.ref @@ -1,3 +1,3 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C("scripts/case4.script",true)... Normalized name for DataVector is : DataVector > diff --git a/roottest/root/meta/ROOT-7181/runscript.C b/roottest/root/meta/ROOT-7181/runscript.C new file mode 100644 index 0000000000000..a0b18024a56e8 --- /dev/null +++ b/roottest/root/meta/ROOT-7181/runscript.C @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +void runscript(const char *fname, bool with_rootmap = false) +{ + if (with_rootmap) { + int old = gInterpreter->SetClassAutoloading(kFALSE); + gInterpreter->LoadLibraryMap("libbtag.rootmap"); + gInterpreter->LoadLibraryMap("libjet.rootmap"); + gInterpreter->LoadLibraryMap("libsjet.rootmap"); + gInterpreter->SetClassAutoloading(old); + } + + std::ifstream f(fname); + if (!f) { + std::cout << "Not able to open " << fname << std::endl; + return; + } + + std::string line; + while (std::getline(f, line)) { + // std::cout << "Process: " << line << std::endl; + gROOT->ProcessLine(line.c_str()); + } +} + diff --git a/roottest/root/meta/ROOT-7181/scripts/case1.script b/roottest/root/meta/ROOT-7181/scripts/case1.script index 05272158cc514..8f4b361f585c7 100644 --- a/roottest/root/meta/ROOT-7181/scripts/case1.script +++ b/roottest/root/meta/ROOT-7181/scripts/case1.script @@ -1,6 +1,6 @@ -.L lib/libjet.so -.L lib/libbtag.so -#include "DataVector.h" +gSystem->Load("libjet_dictrflx"); +gSystem->Load("libbtag_dictrflx"); +#include "inc/DataVector.h" TClass::GetClass("SG::AuxTypeVectorFactory > > >"); auto c = TClass::GetClass("DataVector")->GetClassInfo(); printf("Classinfo for DataVector is %s\n",gInterpreter->ClassInfo_IsValid(c) ? "valid" : "invalid"); diff --git a/roottest/root/meta/ROOT-7181/scripts/case2.script b/roottest/root/meta/ROOT-7181/scripts/case2.script index 187e5c72d02ef..4cc989da462f8 100644 --- a/roottest/root/meta/ROOT-7181/scripts/case2.script +++ b/roottest/root/meta/ROOT-7181/scripts/case2.script @@ -1,6 +1,6 @@ -.L lib/libsjet.so -.L lib/libbtag.so -#include "DataVector.h" +gSystem->Load("libjet_dictrflx"); +gSystem->Load("libbtag_dictrflx"); +#include "inc/DataVector.h" TClass::GetClass("SG::AuxTypeVectorFactory > > >"); auto c = TClass::GetClass("SDataVector")->GetClassInfo(); printf("Classinfo for SDataVector is %s\n",gInterpreter->ClassInfo_IsValid(c) ? "valid" : "invalid"); diff --git a/roottest/root/meta/ROOT-7181/scripts/case3.script b/roottest/root/meta/ROOT-7181/scripts/case3.script index ed02144391419..078199c45c1e1 100644 --- a/roottest/root/meta/ROOT-7181/scripts/case3.script +++ b/roottest/root/meta/ROOT-7181/scripts/case3.script @@ -1,6 +1,6 @@ -.L lib/libjet.so -.L lib/libbtag.so -#include "DataVector.h" +gSystem->Load("libjet_dictrflx"); +gSystem->Load("libbtag_dictrflx"); +#include "inc/DataVector.h" auto c = TClass::GetClass("DataVector"); printf("TClass for DataVector is %s\n",c->IsLoaded() ? "loaded" : "not loaded"); diff --git a/roottest/root/meta/ROOT-7181/scripts/case4.script b/roottest/root/meta/ROOT-7181/scripts/case4.script index 9c3e85a5a0105..7d139aba21b17 100644 --- a/roottest/root/meta/ROOT-7181/scripts/case4.script +++ b/roottest/root/meta/ROOT-7181/scripts/case4.script @@ -1,6 +1,6 @@ -.L lib/libjet.so -.L lib/libbtag.so -#include "DataVector.h" +gSystem->Load("libjet_dictrflx"); +gSystem->Load("libbtag_dictrflx"); +#include "inc/DataVector.h" DataVector obj; std::string name; diff --git a/roottest/root/meta/ROOT-7181/scripts/loadrootmap.C b/roottest/root/meta/ROOT-7181/scripts/loadrootmap.C deleted file mode 100644 index e7807d5118489..0000000000000 --- a/roottest/root/meta/ROOT-7181/scripts/loadrootmap.C +++ /dev/null @@ -1,8 +0,0 @@ -{ -int old = gInterpreter->SetClassAutoloading(kFALSE); -gInterpreter->LoadLibraryMap("lib/libbtag.rootmap"); -gInterpreter->LoadLibraryMap("lib/libjet.rootmap"); -gInterpreter->LoadLibraryMap("lib/libsjet.rootmap"); -gInterpreter->SetClassAutoloading(old); -} - diff --git a/roottest/root/meta/ROOT-7462/.rootrc b/roottest/root/meta/ROOT-7462/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/ROOT-7462/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/ROOT-7462/CMakeLists.txt b/roottest/root/meta/ROOT-7462/CMakeLists.txt index 182629f9610bb..603f636a43a3a 100644 --- a/roottest/root/meta/ROOT-7462/CMakeLists.txt +++ b/roottest/root/meta/ROOT-7462/CMakeLists.txt @@ -1,8 +1,32 @@ -#------------------------------------------------------------------------------- -# -# Placeholder file to translate the tests to the new CTest system. Meanwhile we -# define a CTest test that calls 'make' in ${CMAKE_CURRENT_SOURCE_DIR} -# -#------------------------------------------------------------------------------- - -ROOTTEST_ADD_OLDTEST() +ROOTTEST_GENERATE_DICTIONARY(instlib + instHeader.h + instGood.cxx + LINKDEF linkdef.h + NO_CXXMODULE + FIXTURES_SETUP root-meta-7462-instlib-fixtures) + +ROOTTEST_GENERATE_DICTIONARY(inst2lib + instHeader.h + instGood.cxx + LINKDEF secondLinkdef.h + NO_CXXMODULE NO_ROOTMAP + FIXTURES_SETUP root-meta-7462-inst2lib-fixtures) + +ROOTTEST_ADD_TEST(WriteFile + MACRO execWriteFile.C + OUTREF execWriteFile.ref + FIXTURES_REQUIRED root-meta-7462-instlib-fixtures + root-meta-7462-inst2lib-fixtures + FIXTURES_SETUP root-meta-7462-WriteFile-fixtures) + +ROOTTEST_ADD_TEST(Test + MACRO execTest.C + OUTREF execTest.ref + FIXTURES_REQUIRED root-meta-7462-WriteFile-fixtures) + +ROOTTEST_ADD_TEST(InvalidDeclRecoveryCI + MACRO execInvalidDeclRecoveryCI.C + OUTREF execInvalidDeclRecoveryCI.ref) + +ROOTTEST_ADD_TEST(InvalidDeclRecovery + MACRO runInvalidDeclRecovery.C) diff --git a/roottest/root/meta/ROOT-7462/Makefile b/roottest/root/meta/ROOT-7462/Makefile deleted file mode 100644 index 7b8ac2b18f1b1..0000000000000 --- a/roottest/root/meta/ROOT-7462/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) inst.root instlib* inst2lib* -TEST_TARGETS += execLoadLibs runInvalidDeclRecovery.success -#runInvalidDeclRecoveryCI.success - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -instlib.cxx: - $(CMDECHO) rootcling -f instlib.cxx -s instlib.so -rml instlib.so -rmf instlib.rootmap instGood.cxx linkdef.h - -# Custom rule required here, as we must make *sure* that there is no rootmap -# file generated/left over. -inst2lib.cxx: - $(CMDECHO) rootcling -f inst2lib.cxx -s inst2lib.so instGood.cxx secondLinkdef.h - -instlib.$(DllSuf): instlib.$(ObjSuf) - $(BuildFromObj) - -inst2lib.$(DllSuf): inst2lib.$(ObjSuf) - $(BuildFromObj) - -execWriteFile.log: instlib.$(DllSuf) inst2lib.$(DllSuf) - -execTest.log: execWriteFile.success - -runInvalidDeclRecovery.success: runInvalidDeclRecovery.C $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(CMDECHO) $(CALLROOTEXE) -q -l -b $< > runInvalidDeclRecovery.log 2>runInvalidDeclRecovery.ign.elog || handleError.sh --cmd='Execution of $<' --result=$$? --log=runInvalidDeclRecovery.ign.elog --test=runInvalidDeclRecovery.C && touch $@ - -#runInvalidDeclRecoveryCI.success: runInvalidDeclRecoveryCI.C $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) -# $(CMDECHO) $(CALLROOTEXE) -q -l -b $< > runInvalidDeclRecoveryCI.log 2>runInvalidDeclRecoveryCI.ign.elog || handleError.sh --cmd='Execution of $<' --result=$$? --log=runInvalidDeclRecoveryCI.ign.elog --test=runInvalidDeclRecoveryCI.C && touch $@ - diff --git a/roottest/root/meta/autoloading/.rootrc b/roottest/root/meta/autoloading/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/autoloading/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/autoloading/CMakeLists.txt b/roottest/root/meta/autoloading/CMakeLists.txt index 33b94d97137be..e7a4f2dc16944 100644 --- a/roottest/root/meta/autoloading/CMakeLists.txt +++ b/roottest/root/meta/autoloading/CMakeLists.txt @@ -1,19 +1,65 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml NO_ROOTMAP) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_ADD_TESTDIRS() + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-classes-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT7114classes + ROOT7114classes.h + SELECTION ROOT7114classes_selection.xml + FIXTURES_SETUP root-meta-autoloading-ROOT7114classes-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(TriggerTypeDefs + TriggerTypeDefs.h + SELECTION TriggerTypeDefs_selection.xml + FIXTURES_SETUP root-meta-autoloading-TriggerTypeDefs-fixture) + +ROOTTEST_ADD_TEST(ROOT7114 + MACRO assertROOT7114.C + OUTREF assertROOT7114.ref + FIXTURES_REQUIRED root-meta-autoloading-ROOT7114classes-fixture) + +ROOTTEST_ADD_TEST(AutoLoadEntriesAsSelected + MACRO execAutoLoadEntriesAsSelected.C + OUTREF execAutoLoadEntriesAsSelected.ref) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT7114classes ROOT7114classes.h SELECTION ROOT7114classes_selection.xml) -set(depends ${depends} ${GENERATE_REFLEX_TEST}) +ROOTTEST_ADD_TEST(AutoloadOnInclusion + MACRO execAutoloadOnInclusion.C + COPY_TO_BUILDDIR aHeader.h aRootmap.rootmap + OUTREF execAutoloadOnInclusion.ref) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(TriggerTypeDefs TriggerTypeDefs.h SELECTION TriggerTypeDefs_selection.xml) -set(depends ${depends} ${GENERATE_REFLEX_TEST}) +ROOTTEST_ADD_TEST(execTriggerTypedefs + MACRO execTriggerTypedefs.C + OUTREF execTriggerTypedefs.ref + FIXTURES_REQUIRED root-meta-autoloading-TriggerTypeDefs-fixture) + +ROOTTEST_ADD_TEST(typeDefAutoloading + MACRO exectypeDefAutoloading.C + COPY_TO_BUILDDIR exectypeDefAutoloading.rootmap + OUTREF exectypeDefAutoloading.ref + FIXTURES_REQUIRED root-meta-autoloading-classes-fixture) + +ROOTTEST_ADD_TEST(Typeinfo + MACRO execTypeinfo.cxx+ + OUTREF execTypeinfo.ref) + +ROOTTEST_ADD_TEST(MissingEntriesROOT-5759 + MACRO runFullMissingEntriesROOT-5759.C + COPY_TO_BUILDDIR MissingEntriesROOT-5759.rootmap + OUTREF MissingEntriesROOT-5759.ref) + +#ROOTTEST_ADD_TEST( +# MACRO +# OUTREF .ref) #---Copy from source to binary some of the files -configure_file(exectypeDefAutoloading.rootmap . COPYONLY) -configure_file(aRootmap.rootmap . COPYONLY) -configure_file(aHeader.h . COPYONLY) +#configure_file( . COPYONLY) +#configure_file( . COPYONLY) +#configure_file( . COPYONLY) #--With ACLiC--------------------------------------------------------- -set(execTypeinfo-suffix +) +#set(execTypeinfo-suffix +) -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) -ROOTTEST_ADD_TESTDIRS() +#ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) diff --git a/roottest/root/meta/autoloading/Makefile b/roottest/root/meta/autoloading/Makefile deleted file mode 100644 index 3ac203318c202..0000000000000 --- a/roottest/root/meta/autoloading/Makefile +++ /dev/null @@ -1,87 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog classes_rflx.cpp lib*_dictrflx.rootmap - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += MissingEntriesROOT-5759 mytest typeDefAutoloading AutoLoadEntriesAsSelected - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - -# Sed-away the line number. A different number of new-style rootmap files (i.e. -# with forward declarations) for example on different platforms can result in a -# different line number. -MissingEntriesROOT-5759.log: FullMissingEntriesROOT-5759.log - $(CMDECHO) cat FullMissingEntriesROOT-5759.log |sed 's/input_line_[0-9]*://g' > MissingEntriesROOT-5759.log 2>&1 - - -MissingEntriesROOT-5759: MissingEntriesROOT-5759.log - $(TestDiff) - -exectypeDefAutoloading.log: libclasses_dictrflx.$(DllSuf) - -execTriggerTypedefs.log: libTriggerTypeDefs_dictrflx.$(DllSuf) - -assertROOT7114.elog: libROOT7114classes_dictrflx.$(DllSuf) -assertROOT7114.elog: CALLROOTEXE += -e 'gSystem->AddDynamicPath("$(ROOTTEST_HOME)/root/meta/autoloading")' - - -ROOT7114classes_rflx.cpp: GENREFLEXFLAGS += --rootmap libROOT7114classes_dictrflx.rootmap --library libROOT7114classes_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/autoloading/MissingEntriesROOT-5759.ref b/roottest/root/meta/autoloading/MissingEntriesROOT-5759.ref index d5f1fabddf52e..265b63a65a355 100644 --- a/roottest/root/meta/autoloading/MissingEntriesROOT-5759.ref +++ b/roottest/root/meta/autoloading/MissingEntriesROOT-5759.ref @@ -1,12 +1,8 @@ Processing runFullMissingEntriesROOT-5759.C... -1:10: fatal error: 'does_not_exist.h' file not found +input_line_26:1:10: fatal error: 'does_not_exist.h' file not found #include "does_not_exist.h" ^~~~~~~~~~~~~~~~~~ -2:6: error: expected ';' after expression +input_line_27:2:2: error: unknown type name 'cool' cool d; - ^ - ; -2:7: error: use of undeclared identifier 'd' - cool d; - ^ + ^ diff --git a/roottest/root/meta/autoloading/NestedClasses/.rootrc b/roottest/root/meta/autoloading/NestedClasses/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/autoloading/NestedClasses/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/autoloading/NestedClasses/CMakeLists.txt b/roottest/root/meta/autoloading/NestedClasses/CMakeLists.txt index 00c929c03a919..b78326f27831f 100644 --- a/roottest/root/meta/autoloading/NestedClasses/CMakeLists.txt +++ b/roottest/root/meta/autoloading/NestedClasses/CMakeLists.txt @@ -1,22 +1,25 @@ ROOTTEST_GENERATE_REFLEX_DICTIONARY(nestedTemplate nestedTemplate.h - SELECTION sel1.xml) + SELECTION sel1.xml + FIXTURES_SETUP root-meta-autoloading-NestedClasses-dic1-fixture) if(NOT MSVC OR win_broken_tests) ROOTTEST_GENERATE_REFLEX_DICTIONARY(nestedTemplateClone nestedTemplate_clone.h - SELECTION sel2.xml) + SELECTION sel2.xml + FIXTURES_SETUP root-meta-autoloading-NestedClasses-dic1-fixture) endif() ROOTTEST_ADD_TEST(nestedTemplate MACRO execnestedTemplate.C OUTREF nestedTemplate.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-autoloading-NestedClasses-dic1-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(nestedClasses nestedClasses.h - SELECTION nestedClasses_selection.xml) + SELECTION nestedClasses_selection.xml + FIXTURES_SETUP root-meta-autoloading-NestedClasses-dic2-fixture) ROOTTEST_ADD_TEST(nestedClasses MACRO execNestedClasses.C OUTREF execNestedClasses${ref_suffix} - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-autoloading-NestedClasses-dic2-fixture) diff --git a/roottest/root/meta/autoloading/NestedClasses/Makefile b/roottest/root/meta/autoloading/NestedClasses/Makefile deleted file mode 100644 index 6d905b9b2cb8d..0000000000000 --- a/roottest/root/meta/autoloading/NestedClasses/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *_rflx.cpp *rootmap - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += execNestedClasses - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += --rootmap nestedClasses.rootmap --rootmap-lib libnestedClasses_dictrflx.$(DllSuf) - -execNestedClasses.log: libnestedClasses_dictrflx.$(DllSuf) - diff --git a/roottest/root/meta/autoloading/ROOT-12378/CMakeLists.txt b/roottest/root/meta/autoloading/ROOT-12378/CMakeLists.txt index 41f97c035c95a..6c5bd85b0d6f7 100644 --- a/roottest/root/meta/autoloading/ROOT-12378/CMakeLists.txt +++ b/roottest/root/meta/autoloading/ROOT-12378/CMakeLists.txt @@ -1,12 +1,20 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas00 classes00.hh SELECTION sel00.xml) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas00 + classes00.hh + SELECTION sel00.xml + FIXTURES_SETUP root-meta-autoloading-ROOT-12378-libatlas00-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas01 classes01.hh SELECTION sel01.xml) -set(depends ${depends} ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas01 + classes01.hh + SELECTION sel01.xml + FIXTURES_SETUP root-meta-autoloading-ROOT-12378-libatlas01-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas02 classes02.hh SELECTION sel02.xml) -set(depends ${depends} ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(libatlas02 + classes02.hh + SELECTION sel02.xml + FIXTURES_SETUP root-meta-autoloading-ROOT-12378-libatlas02-fixture) - -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) -ROOTTEST_ADD_TESTDIRS() +ROOTTEST_ADD_TEST(testtypedef + MACRO exec_testtypedef.C + FIXTURES_REQUIRED root-meta-autoloading-ROOT-12378-libatlas00-fixture + root-meta-autoloading-ROOT-12378-libatlas01-fixture + root-meta-autoloading-ROOT-12378-libatlas02-fixture) diff --git a/roottest/root/meta/autoloading/ROOT-8432/CMakeLists.txt b/roottest/root/meta/autoloading/ROOT-8432/CMakeLists.txt index 5e5b97d243fb7..f32811ceb25b6 100644 --- a/roottest/root/meta/autoloading/ROOT-8432/CMakeLists.txt +++ b/roottest/root/meta/autoloading/ROOT-8432/CMakeLists.txt @@ -1,5 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(cmswrapper cmswrapper.h SELECTION sel.xml) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(cmswrapper + cmswrapper.h + SELECTION sel.xml + FIXTURES_SETUP root-meta-autoloading-ROOT-8432-dic-fixture) -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) +ROOTTEST_ADD_TEST(cmsWrapper + MACRO execcmsWrapper.C + FIXTURES_REQUIRED root-meta-autoloading-ROOT-8432-dic-fixture) diff --git a/roottest/root/meta/autoloading/classInNamespace/.rootrc b/roottest/root/meta/autoloading/classInNamespace/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/autoloading/classInNamespace/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/autoloading/classInNamespace/CMakeLists.txt b/roottest/root/meta/autoloading/classInNamespace/CMakeLists.txt index 68a4f6d7607f9..cfe0c363bf0ca 100644 --- a/roottest/root/meta/autoloading/classInNamespace/CMakeLists.txt +++ b/roottest/root/meta/autoloading/classInNamespace/CMakeLists.txt @@ -1,9 +1,12 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classInNamespace classInNamespace.h +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classInNamespace + classInNamespace.h SELECTION classInNamespace_selection.xml LIBNAME libclassInNamespace_dictrflx - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-classInNamespace-dict-fixture) -#---Copy from source to binary some of the files -configure_file(classInNamespace.rootmap . COPYONLY) - -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${GENERATE_REFLEX_TEST}) +ROOTTEST_ADD_TEST(ClassInNamespace + MACRO execClassInNamespace.C + OUTREF execClassInNamespace.ref + COPY_TO_BUILDDIR classInNamespace.rootmap + FIXTURES_REQUIRED root-meta-autoloading-classInNamespace-dict-fixture) \ No newline at end of file diff --git a/roottest/root/meta/autoloading/headerParsingOnDemand/.rootrc b/roottest/root/meta/autoloading/headerParsingOnDemand/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/autoloading/headerParsingOnDemand/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/autoloading/headerParsingOnDemand/CMakeLists.txt b/roottest/root/meta/autoloading/headerParsingOnDemand/CMakeLists.txt index c7928b7a20b43..f99993aef4ba7 100644 --- a/roottest/root/meta/autoloading/headerParsingOnDemand/CMakeLists.txt +++ b/roottest/root/meta/autoloading/headerParsingOnDemand/CMakeLists.txt @@ -13,28 +13,30 @@ if(NOT MSVC OR NOT DEFINED ENV{JENKINS_HOME} OR win_broken_tests) FullheaderParsingOnDemand.h SELECTION FullheaderParsingOnDemand_selection.xml LIBNAME libFullheaderParsingOnDemand_dictrflx - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-dic1-fixture) ROOTTEST_ADD_TEST(runFullheaderParsingOnDemand COPY_TO_BUILDDIR headerParsingOnDemand.rootmap MACRO runFullheaderParsingOnDemand.C OUTREF headerParsingOnDemand.ref OUTCNV FullheaderParsingOnDemand_convert.sh - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-autoloading-headerParsingOnDemand-dic1-fixture) endif() ROOTTEST_GENERATE_REFLEX_DICTIONARY(complexTypedefs complexTypedefs.h SELECTION complexTypedefs_selection.xml LIBNAME libcomplexTypedefs_dictrflx - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-dic2-fixture) ROOTTEST_ADD_TEST(execCheckComplexTypedefs COPY_TO_BUILDDIR complexTypedefs.rootmap MACRO execCheckComplexTypedefs.C OUTREF execCheckComplexTypedefs.ref ${WILLFAIL_ON_WIN32} - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-autoloading-headerParsingOnDemand-dic2-fixture) ROOTTEST_ADD_TEST(execLDAPAttribute MACRO execLDAPAttribute.C @@ -43,36 +45,41 @@ ROOTTEST_ADD_TEST(execLDAPAttribute ROOTTEST_GENERATE_REFLEX_DICTIONARY(scopedEnums scopedEnums.h SELECTION scopedEnums_selection.xml - LIBNAME libscopedEnums_dictrflx) + LIBNAME libscopedEnums_dictrflx + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-dic3-fixture) ROOTTEST_ADD_TEST(runscopedEnums MACRO runscopedEnums.C OUTREF scopedEnums.ref OUTCNV scopedEnums_convert.sh - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-autoloading-headerParsingOnDemand-dic3-fixture) ROOTTEST_GENERATE_DICTIONARY(libno_autoparse_v10 no_autoparse.h OPTIONS -DITEM_V10 + SOURCES no_autoparse_writer.cxx LINKDEF no_autoparseLinkDef.h - NO_ROOTMAP NO_CXXMODULE) + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-dicv10-fixture) target_compile_definitions(libno_autoparse_v10libgen PUBLIC ITEM_V10) -target_sources(libno_autoparse_v10libgen PRIVATE no_autoparse_writer.cxx) ROOTTEST_GENERATE_DICTIONARY(libno_autoparse_v11 no_autoparse.h OPTIONS -DITEM_V11 + SOURCES no_autoparse_writer.cxx LINKDEF no_autoparseLinkDef.h - NO_ROOTMAP NO_CXXMODULE) + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-dicv11-fixture) target_compile_definitions(libno_autoparse_v11libgen PUBLIC ITEM_V11) -target_sources(libno_autoparse_v11libgen PRIVATE no_autoparse_writer.cxx) ROOTTEST_ADD_TEST(no_autoparse_write MACRO no_autoparse_write.C - DEPENDS libno_autoparse_v10-build) + FIXTURES_REQUIRED root-meta-autoloading-headerParsingOnDemand-dicv10-fixture + FIXTURES_SETUP root-meta-autoloading-headerParsingOnDemand-no_autoparse_write-fixture) ROOTTEST_ADD_TEST(no_autoparse_read MACRO no_autoparse_read.cxx+ - DEPENDS libno_autoparse_v11-build no_autoparse_write) + FIXTURES_REQUIRED root-meta-autoloading-headerParsingOnDemand-dicv11-fixture + root-meta-autoloading-headerParsingOnDemand-no_autoparse_write-fixture) diff --git a/roottest/root/meta/autoloading/templates/.rootrc b/roottest/root/meta/autoloading/templates/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/autoloading/templates/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/autoloading/templates/CMakeLists.txt b/roottest/root/meta/autoloading/templates/CMakeLists.txt index a49cb61c4e71c..b32865fa554cd 100644 --- a/roottest/root/meta/autoloading/templates/CMakeLists.txt +++ b/roottest/root/meta/autoloading/templates/CMakeLists.txt @@ -1,11 +1,19 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml NO_ROOTMAP) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-templates-classes-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes2 classes2.h SELECTION classes2_selection.xml NO_ROOTMAP) -set(depends ${depends} ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes2 + classes2.h + SELECTION classes2_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-autoloading-templates-classes2-fixture) -#---Copy from source to binary some of the files -configure_file(theRootmap.rootmap . COPYONLY) - -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) +ROOTTEST_ADD_TEST(TemplateAutoloading + MACRO execTemplateAutoloading.C + COPY_TO_BUILDDIR theRootmap.rootmap + OUTREF execTemplateAutoloading.ref + FIXTURES_REQUIRED root-meta-autoloading-templates-classes-fixture + root-meta-autoloading-templates-classes2-fixture) diff --git a/roottest/root/meta/autoloading/templates/Makefile b/roottest/root/meta/autoloading/templates/Makefile deleted file mode 100644 index d539e058f12c2..0000000000000 --- a/roottest/root/meta/autoloading/templates/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execTemplateAutoloading - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -execTemplateAutoloading.log: libclasses_dictrflx.$(DllSuf) libclasses2_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/callfunc/.rootrc b/roottest/root/meta/callfunc/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/callfunc/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/callfunc/CMakeLists.txt b/roottest/root/meta/callfunc/CMakeLists.txt index be8e4ae6be0ae..9a89392b0d5b8 100644 --- a/roottest/root/meta/callfunc/CMakeLists.txt +++ b/roottest/root/meta/callfunc/CMakeLists.txt @@ -1 +1,14 @@ -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) +ROOTTEST_ADD_TEST(Unload + MACRO assertUnload.C) + +ROOTTEST_ADD_TEST(ResolveAt + MACRO execResolveAt.C + OUTREF execResolveAt.ref) + +ROOTTEST_ADD_TEST(memberFunc + MACRO runmemberFunc.C + OUTREF memberFunc.ref) + +ROOTTEST_ADD_TEST(simpleFunc + MACRO runsimpleFunc.C + OUTREF simpleFunc.ref) diff --git a/roottest/root/meta/callfunc/Makefile b/roottest/root/meta/callfunc/Makefile deleted file mode 100644 index 2572adf15e00a..0000000000000 --- a/roottest/root/meta/callfunc/Makefile +++ /dev/null @@ -1,73 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += simpleFunc memberFunc mytest - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - - -simpleFunc: simpleFunc.log - $(TestDiff) -memberFunc: memberFunc.log - $(TestDiff) diff --git a/roottest/root/meta/cmsUnload/.rootrc b/roottest/root/meta/cmsUnload/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/cmsUnload/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/cmsUnload/CMakeLists.txt b/roottest/root/meta/cmsUnload/CMakeLists.txt index 182629f9610bb..0b1a7d9e9fdde 100644 --- a/roottest/root/meta/cmsUnload/CMakeLists.txt +++ b/roottest/root/meta/cmsUnload/CMakeLists.txt @@ -1,8 +1,43 @@ -#------------------------------------------------------------------------------- -# -# Placeholder file to translate the tests to the new CTest system. Meanwhile we -# define a CTest test that calls 'make' in ${CMAKE_CURRENT_SOURCE_DIR} -# -#------------------------------------------------------------------------------- - -ROOTTEST_ADD_OLDTEST() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(Edm + inc/Wrapper.h + SELECTION inc/edm_selection.xml + FIXTURES_SETUP root-meta-cmsUnload-Edm-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(Strip + inc/SiStripCluster_classes.h + SELECTION inc/strip_selection.xml + FIXTURES_SETUP root-meta-cmsUnload-Strip-fixture) + +ROOTTEST_GENERATE_REFLEX_DICTIONARY(Cluster + inc/ClusterTotals.h + SELECTION inc/cluster_selection.xml + FIXTURES_SETUP root-meta-cmsUnload-Cluster-fixture) + + +macro(CMS_UNLOAD_TEST name use_rmap) + if(${use_rmap} STREQUAL "true") + set(testname rmap-${name}) + else() + set(testname ${name}) + endif() + + ROOTTEST_ADD_TEST(${testname} + MACRO runscript.C + COPY_TO_BUILDDIR step2.cxx + MACROARG "\"${CMAKE_CURRENT_SOURCE_DIR}/scripts/${name}.script\",${use_rmap}" + ROOTEXE_OPTS -e "gInterpreter->AddIncludePath(\"-I${CMAKE_CURRENT_SOURCE_DIR}\")" + OUTREF ${testname}.ref + FIXTURES_REQUIRED root-meta-cmsUnload-Edm-fixture + root-meta-cmsUnload-Strip-fixture + root-meta-cmsUnload-Cluster-fixture) +endmacro(CMS_UNLOAD_TEST) + +CMS_UNLOAD_TEST(case1 false) +CMS_UNLOAD_TEST(case2 false) +CMS_UNLOAD_TEST(case3 false) + +CMS_UNLOAD_TEST(case1 true) +CMS_UNLOAD_TEST(case2 true) +CMS_UNLOAD_TEST(case3 true) diff --git a/roottest/root/meta/cmsUnload/Makefile b/roottest/root/meta/cmsUnload/Makefile deleted file mode 100644 index 3fe5b27b9a434..0000000000000 --- a/roottest/root/meta/cmsUnload/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -ALL_CASES = case1 case2 case3 -# case4 -ALL_ROOTMAP_CASES = $(addprefix rmap-,$(ALL_CASES)) - -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) \ - obj/* lib/* -TEST_TARGETS += execLoadLibs $(ALL_CASES) $(ALL_ROOTMAP_CASES) - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -obj/edm_dict.cxx: inc/Wrapper.h inc/edm_selection.xml - $(CMDECHO) mkdir -p obj lib && genreflex inc/Wrapper.h --output obj/edm_dict.cxx -l lib/libEdm.so -Iinc -s inc/edm_selection.xml --rootmap lib/libEdm.rootmap --rootmap-lib lib/libEdm.so > edm_dict.log - -lib/libEdm.so: obj/edm_dict.$(ObjSuf) - $(BuildFromObj) - -# SiStripCluster -obj/strip_dict.cxx: inc/SiStripCluster_classes.h inc/strip_selection.xml \ - inc/DetSetNew.h inc/DetSetVector.h inc/DetSetVectorNew.h \ - inc/SiStripCluster.h - $(CMDECHO) mkdir -p obj lib && genreflex inc/SiStripCluster_classes.h --output obj/strip_dict.cxx -l lib/libStrip.so -Iinc -s inc/strip_selection.xml --rootmap lib/libStrip.rootmap > strip_dict.log - -lib/libStrip.so: obj/strip_dict.$(ObjSuf) lib/libEdm.so - $(BuildFromObj) - - -# ClusterTotals -obj/cluster_dict.cxx: inc/ClusterTotals.h inc/cluster_selection.xml inc/DetSetNew.h \ - inc/DetSetVector.h inc/DetSetVectorNew.h inc/SiStripCluster.h - $(CMDECHO) mkdir -p obj lib && genreflex inc/ClusterTotals.h --output obj/cluster_dict.cxx -l lib/libCluster.so -Iinc -s cluster_selection.xml --rootmap lib/libCluster.rootmap > cluster_dict.log - -lib/libCluster.so: obj/cluster_dict.$(ObjSuf) lib/libStrip.so - $(BuildFromObj) - - -$(ALL_CASES) : %: %.success -$(ALL_ROOTMAP_CASES) : %: %.success - -ALL_CASES_LOG = $(addsuffix .log,$(ALL_CASES)) -ALL_ROOTMAP_CASES_LOG = $(addsuffix .log,$(ALL_ROOTMAP_CASES)) - -$(addsuffix .success,$(ALL_CASES) $(ALL_ROOTMAP_CASES)) : %.success: %.log %.ref - $(SuccessTestDiff) && touch $@ - - -$(ALL_CASES_LOG): %.log: scripts/%.script lib/libEdm.so lib/libStrip.so lib/libCluster.so $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(CMDECHO) LD_LIBRARY_PATH=${CURDIR}/lib:${LD_LIBRARY_PATH} $(CALLROOTEXE) -l -b < $< > $@ 2>&1 || handleError.sh --cmd='Execution of $<' --result=$$? --log=$@ --test=$* - -$(ALL_ROOTMAP_CASES_LOG): rmap-%.log: scripts/%.script lib/libEdm.so lib/libStrip.so lib/libCluster.so $(UTILS_PREREQ) $(ROOTCORELIBS) $(ROOTCINT) $(ROOTV) - $(CMDECHO) LD_LIBRARY_PATH=${CURDIR}/lib:${LD_LIBRARY_PATH} $(CALLROOTEXE) -l -b scripts/loadrootmap.C < $< > $@ 2>&1 || handleError.sh --cmd='Execution of $<' --result=$$? --log=$@ --test=$* - - - diff --git a/roottest/root/meta/cmsUnload/case1.ref b/roottest/root/meta/cmsUnload/case1.ref index 8b137891791fe..7ee8ca0993f84 100644 --- a/roottest/root/meta/cmsUnload/case1.ref +++ b/roottest/root/meta/cmsUnload/case1.ref @@ -1 +1,2 @@ +Processing runscript.C... diff --git a/roottest/root/meta/cmsUnload/case2.ref b/roottest/root/meta/cmsUnload/case2.ref index 4ca4599be6f2a..034b1c4c17eca 100644 --- a/roottest/root/meta/cmsUnload/case2.ref +++ b/roottest/root/meta/cmsUnload/case2.ref @@ -1,3 +1,4 @@ +Processing runscript.C... dest dest diff --git a/roottest/root/meta/cmsUnload/case3.ref b/roottest/root/meta/cmsUnload/case3.ref index d11928205e07e..a42649b57a485 100644 --- a/roottest/root/meta/cmsUnload/case3.ref +++ b/roottest/root/meta/cmsUnload/case3.ref @@ -1,4 +1,5 @@ +Processing runscript.C... dest The [almost] end. dest diff --git a/roottest/root/meta/cmsUnload/rmap-case1.ref b/roottest/root/meta/cmsUnload/rmap-case1.ref index 396312a962f6a..7ee8ca0993f84 100644 --- a/roottest/root/meta/cmsUnload/rmap-case1.ref +++ b/roottest/root/meta/cmsUnload/rmap-case1.ref @@ -1,2 +1,2 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C... diff --git a/roottest/root/meta/cmsUnload/rmap-case2.lref b/roottest/root/meta/cmsUnload/rmap-case2.lref deleted file mode 100644 index 7710466694de2..0000000000000 --- a/roottest/root/meta/cmsUnload/rmap-case2.lref +++ /dev/null @@ -1,4 +0,0 @@ - -Processing scripts/loadrootmap.C... -dest -dest diff --git a/roottest/root/meta/cmsUnload/rmap-case2.ref b/roottest/root/meta/cmsUnload/rmap-case2.ref index 7710466694de2..034b1c4c17eca 100644 --- a/roottest/root/meta/cmsUnload/rmap-case2.ref +++ b/roottest/root/meta/cmsUnload/rmap-case2.ref @@ -1,4 +1,4 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C... dest dest diff --git a/roottest/root/meta/cmsUnload/rmap-case3.ref b/roottest/root/meta/cmsUnload/rmap-case3.ref index 369912fdae8f4..a42649b57a485 100644 --- a/roottest/root/meta/cmsUnload/rmap-case3.ref +++ b/roottest/root/meta/cmsUnload/rmap-case3.ref @@ -1,5 +1,5 @@ -Processing scripts/loadrootmap.C... +Processing runscript.C... dest The [almost] end. dest diff --git a/roottest/root/meta/cmsUnload/runscript.C b/roottest/root/meta/cmsUnload/runscript.C new file mode 100644 index 0000000000000..f437039bbeb1b --- /dev/null +++ b/roottest/root/meta/cmsUnload/runscript.C @@ -0,0 +1,28 @@ +#include +#include +#include +#include + +void runscript(const char *fname, bool with_rootmap = false) +{ + if (with_rootmap) { + int old = gInterpreter->SetClassAutoloading(kFALSE); + gInterpreter->LoadLibraryMap("Edm.rootmap"); + gInterpreter->LoadLibraryMap("Strip.rootmap"); + gInterpreter->LoadLibraryMap("Cluster.rootmap"); + gInterpreter->SetClassAutoloading(old); + } + + std::ifstream f(fname); + if (!f) { + std::cout << "Not able to open " << fname << std::endl; + return; + } + + std::string line; + while (std::getline(f, line)) { + // std::cout << "Process: " << line << std::endl; + gROOT->ProcessLine(line.c_str()); + } +} + diff --git a/roottest/root/meta/cmsUnload/scripts/case1.script b/roottest/root/meta/cmsUnload/scripts/case1.script index c0b1b7b2cd3d3..f04950d8b8813 100644 --- a/roottest/root/meta/cmsUnload/scripts/case1.script +++ b/roottest/root/meta/cmsUnload/scripts/case1.script @@ -1,10 +1,10 @@ #include "inc/Nothing.h" // gDebug=1; -.L lib/libEdm.so -.L lib/libStrip.so +gSystem->Load("libEdm_dictrflx"); +gSystem->Load("libStrip_dictrflx"); // step2.cxx does a lookup that provokes a auto-parsing following by // an (intentional) compilation error and thus a set of unloading. -.x scripts/step2.cxx +.x step2.cxx // This use to lead to a strange error (complain that a class is a being // defined a second time on the ... same line in the same file) which was // due to the unloading now removing the DefinitionData cached in the forward diff --git a/roottest/root/meta/cmsUnload/scripts/case2.script b/roottest/root/meta/cmsUnload/scripts/case2.script index 2f5daf2de37a0..3466aaee94ee9 100644 --- a/roottest/root/meta/cmsUnload/scripts/case2.script +++ b/roottest/root/meta/cmsUnload/scripts/case2.script @@ -1,6 +1,6 @@ struct Marker { ~Marker() { fprintf(stdout,"dest\n"); } }; -.L lib/libEdm.so -.L lib/libStrip.so +gSystem->Load("libEdm_dictrflx"); +gSystem->Load("libStrip_dictrflx"); Marker m1; Marker m2; gInterpreter->AutoParse("SiStripCluster"); diff --git a/roottest/root/meta/cmsUnload/scripts/case3.script b/roottest/root/meta/cmsUnload/scripts/case3.script index ab8633f60f1f5..26e7d0dba1713 100644 --- a/roottest/root/meta/cmsUnload/scripts/case3.script +++ b/roottest/root/meta/cmsUnload/scripts/case3.script @@ -1,6 +1,6 @@ struct Marker { ~Marker() { fprintf(stdout,"dest\n"); } }; -.L lib/libEdm.so -.L lib/libStrip.so +gSystem->Load("libEdm_dictrflx"); +gSystem->Load("libStrip_dictrflx"); Marker m1; Marker m2; gInterpreter->AutoParse("SiStripCluster"); diff --git a/roottest/root/meta/cmsUnload/scripts/loadrootmap.C b/roottest/root/meta/cmsUnload/scripts/loadrootmap.C deleted file mode 100644 index 4c98f3a1bbb35..0000000000000 --- a/roottest/root/meta/cmsUnload/scripts/loadrootmap.C +++ /dev/null @@ -1,8 +0,0 @@ -{ -int old = gInterpreter->SetClassAutoloading(kFALSE); -gInterpreter->LoadLibraryMap("lib/libEdm.rootmap"); -gInterpreter->LoadLibraryMap("lib/libStrip.rootmap"); -gInterpreter->LoadLibraryMap("lib/libCluster.rootmap"); -gInterpreter->SetClassAutoloading(old); -} - diff --git a/roottest/root/meta/cmsUnload/scripts/step2.cxx b/roottest/root/meta/cmsUnload/step2.cxx similarity index 100% rename from roottest/root/meta/cmsUnload/scripts/step2.cxx rename to roottest/root/meta/cmsUnload/step2.cxx diff --git a/roottest/root/meta/dictSelection/.rootrc b/roottest/root/meta/dictSelection/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/dictSelection/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/dictSelection/CMakeLists.txt b/roottest/root/meta/dictSelection/CMakeLists.txt index 8ccf2b011aed6..9f2fe71b88d77 100644 --- a/roottest/root/meta/dictSelection/CMakeLists.txt +++ b/roottest/root/meta/dictSelection/CMakeLists.txt @@ -1,23 +1,38 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(AtlasTest AtlasTest.h SELECTION AtlasTest_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(AtlasTest + AtlasTest.h + SELECTION AtlasTest_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-dictSelection-AtlasTest-fixture) ROOTTEST_ADD_TEST(execAtlasTest MACRO execAtlasTest.C OUTREF execAtlasTest.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-dictSelection-AtlasTest-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(AtlasTest2 AtlasTest2.h SELECTION AtlasTest2_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(AtlasTest2 + AtlasTest2.h + SELECTION AtlasTest2_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-dictSelection-AtlasTest2-fixture) ROOTTEST_ADD_TEST(execAtlasTest2 MACRO execAtlasTest2.C OUTREF execAtlasTest2.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-dictSelection-AtlasTest2-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classesDictSelection classesDictSelection.h SELECTION classesDictSelection_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classesDictSelection + classesDictSelection.h + SELECTION classesDictSelection_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-dictSelection-classesDictSelection-fixture) ROOTTEST_ADD_TEST(classesDictSelection MACRO execDictSelection.C OUTREF execDictSelection.ref ${WILLFAIL_ON_WIN32} - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-dictSelection-classesDictSelection-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(Dict_ex2 Dict_ex2.h SELECTION Dict_ex2_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(Dict_ex2 + Dict_ex2.h + SELECTION Dict_ex2_selection.xml + NO_ROOTMAP) diff --git a/roottest/root/meta/dictSelection/Makefile b/roottest/root/meta/dictSelection/Makefile deleted file mode 100644 index 630325881e89a..0000000000000 --- a/roottest/root/meta/dictSelection/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *rflx* - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += execDictSelection execAtlasTest execAtlasTest2 - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -execDictSelection.log: libclassesDictSelection_dictrflx.$(DllSuf) -execAtlasTest.log: libAtlasTest_dictrflx.$(DllSuf) -execAtlasTest2.log: libAtlasTest2_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/dictSelection/dictSelection.ref b/roottest/root/meta/dictSelection/dictSelection.ref deleted file mode 100644 index da7a04a980c0e..0000000000000 --- a/roottest/root/meta/dictSelection/dictSelection.ref +++ /dev/null @@ -1,2 +0,0 @@ - -Processing rundictSelection.C... diff --git a/roottest/root/meta/enumPayloadManipulation/CMakeLists.txt b/roottest/root/meta/enumPayloadManipulation/CMakeLists.txt index f740ca8d36949..d7e27d8ff9988 100644 --- a/roottest/root/meta/enumPayloadManipulation/CMakeLists.txt +++ b/roottest/root/meta/enumPayloadManipulation/CMakeLists.txt @@ -2,20 +2,25 @@ # which I cannot figure out, CMake will pass multiple times the "-D"s relative to the # cling workarounds to genreflex. Given that other tests check some properties of the # fwd declaration payload in the dictionaries, this "feature" makes them fail. -# In a sense, this is a workaround to have a sane reproducer of ROOT-9660 which does +# In a sense, this is a workaround to have a sane reproducer of ROOT-9660 which does # not interfere with the other tests. # ROOT-9660 -ROOTTEST_GENERATE_REFLEX_DICTIONARY(checkEnumFwdDeclxDict x.h SELECTION selection_x.xml) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(checkEnumFwdDeclyDict y.h SELECTION selection_y.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(checkEnumFwdDeclxDict + x.h + SELECTION selection_x.xml + FIXTURES_SETUP root-meta-enumPayloadManipulation-x-fixture) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(checkEnumFwdDeclyDict + y.h + SELECTION selection_y.xml + FIXTURES_SETUP root-meta-enumPayloadManipulation-y-fixture) -if(ROOT_pyroot_FOUND) +if(pyroot) ROOTTEST_ADD_TEST(checkEnumFwdDecl MACRO checkEnumFwdDecl.py OUTREF empty.ref ERRREF empty.ref - DEPENDS checkEnumFwdDeclyDict-libgen-build checkEnumFwdDeclxDict-libgen-build) + FIXTURES_REQUIRED root-meta-enumPayloadManipulation-x-fixture + root-meta-enumPayloadManipulation-y-fixture) endif() -ROOTTEST_ADD_TESTDIRS() - diff --git a/roottest/root/meta/enums/.rootrc b/roottest/root/meta/enums/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/enums/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/enums/CMakeLists.txt b/roottest/root/meta/enums/CMakeLists.txt index a2a37962edaa6..5bc3074182774 100644 --- a/roottest/root/meta/enums/CMakeLists.txt +++ b/roottest/root/meta/enums/CMakeLists.txt @@ -1,81 +1,89 @@ ROOTTEST_GENERATE_REFLEX_DICTIONARY(fclassVal fclassVal.h - SELECTION fclassVal_selection.xml) + SELECTION fclassVal_selection.xml + FIXTURES_SETUP root-meta-enums-fclassVal-fixture) ROOTTEST_ADD_TEST(fclassVal MACRO execfclassVal.C OUTREF execfclassVal.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-fclassVal-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(qualifiedNames qualifiedNames.h - SELECTION qualifiedNames_selection.xml) + SELECTION qualifiedNames_selection.xml + FIXTURES_SETUP root-meta-enums-qualifiedNames-fixture) ROOTTEST_ADD_TEST(qualifiedNames MACRO execQualifiedNames.C OUTREF execQualifiedNames.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-qualifiedNames-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(enumsTestClasses enumsTestClasses.h SELECTION enumsTestClasses_selection.xml - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-enums-enumsTestClasses-fixture) ROOTTEST_ADD_TEST(execEnumsTest MACRO execEnumsTest.C OUTREF execEnumsTest.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-enumsTestClasses-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(tEnumGetEnumClasses tEnumGetEnumClasses.h SELECTION tEnumGetEnumClasses_selection.xml - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-enums-tEnumGetEnumClasses-fixture) ROOTTEST_ADD_TEST(execTEnumGetEnum MACRO execTEnumGetEnum.C OUTREF execTEnumGetEnum.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-tEnumGetEnumClasses-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(enumsInNamespaces enumsInNamespaces.h SELECTION enumsInNamespaces_selection.xml - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-enums-enumsInNamespaces-fixture) ROOTTEST_ADD_TEST(enumsInNamespaces MACRO execenumsInNamespaces.C OUTREF execenumsInNamespaces.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-enumsInNamespaces-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(enumsInNamespaces2 enumsInNamespaces2.h SELECTION enumsInNamespaces2_selection.xml - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-enums-enumsInNamespaces2-fixture) ROOTTEST_ADD_TEST(enumsInNamespaces2 MACRO execenumsInNamespaces2.C OUTREF execenumsInNamespaces2.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-enumsInNamespaces2-fixture) ROOTTEST_GENERATE_REFLEX_DICTIONARY(duplicateEnums duplicateEnums.h SELECTION duplicateEnums_selection.xml - NO_ROOTMAP) + NO_ROOTMAP + FIXTURES_SETUP root-meta-enums-duplicateEnums-fixture) ROOTTEST_ADD_TEST(duplicateEnums MACRO execduplicateEnums.C OUTREF execduplicateEnums.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-enums-duplicateEnums-fixture) ROOTTEST_GENERATE_DICTIONARY(libenumSize enumSize.h LINKDEF enumSizeLinkDef.h - NO_ROOTMAP NO_CXXMODULE) + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-enums-libenumSize-fixture) ROOTTEST_ADD_TEST(enumSize MACRO execenumSize.C OUTREF execenumSize.ref - DEPENDS ${GENERATE_DICTIONARY_TEST}) + FIXTURES_REQUIRED root-meta-enums-libenumSize-fixture) ROOTTEST_ADD_TEST(testUsingEnum.cxx MACRO test_usingenum.cxx diff --git a/roottest/root/meta/enums/Makefile b/roottest/root/meta/enums/Makefile deleted file mode 100644 index 8e176fdd01be7..0000000000000 --- a/roottest/root/meta/enums/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execEnumsTest - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -execEnumsTest.log: libenumsTestClasses_dictrflx.$(DllSuf) -execenumsInNamespaces.log: libenumsInNamespaces_dictrflx.$(DllSuf) -execenumsInNamespaces2.log: libenumsInNamespaces2_dictrflx.$(DllSuf) -execduplicateEnums.log: libduplicateEnums_dictrflx.$(DllSuf) -execQualifiedNames.log: libqualifiedNames_dictrflx.$(DllSuf) -execfclassVal.log: libfclassVal_dictrflx.$(DllSuf) -execenumsInNamespaces.log: libfclassVal_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/evolution/.rootrc b/roottest/root/meta/evolution/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/evolution/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/evolution/CMakeLists.txt b/roottest/root/meta/evolution/CMakeLists.txt index 6f2fefe0235de..faf1277b9b0f8 100644 --- a/roottest/root/meta/evolution/CMakeLists.txt +++ b/roottest/root/meta/evolution/CMakeLists.txt @@ -2,8 +2,7 @@ foreach(_i 1 2 3 4 5 6) ROOTTEST_ADD_TEST(data${_i} MACRO writefile.C MACROARG ${_i} - DEPENDS data${_i}.C) - list(APPEND _data_depends data${_i}) + FIXTURES_SETUP root-meta-evolution-data${_i}-fixture) endforeach() foreach(_i 0 1 2 3 4 10 11 12 13 14 15 16 17 18) @@ -13,82 +12,91 @@ foreach(_i 0 1 2 3 4 10 11 12 13 14 15 16 17 18) OUTREF warning${_i}.oref ERRREF warning${_i}.eref OUTCNVCMD sed -e s,offset=[[:space:]][[:space:]]*[0-9]*,offset=n/a,g - DEPENDS ${_data_depends}) + FIXTURES_REQUIRED root-meta-evolution-data1-fixture + root-meta-evolution-data2-fixture + root-meta-evolution-data3-fixture + root-meta-evolution-data4-fixture + root-meta-evolution-data5-fixture + root-meta-evolution-data6-fixture) endforeach() ROOTTEST_ADD_TEST(execBaseClass_v1 MACRO execBaseClass_v1.cxx+ - OUTREF execBaseClass_v1.ref) + OUTREF execBaseClass_v1.ref + FIXTURES_SETUP root-meta-evolution-execBaseClass_v1-fixture) ROOTTEST_ADD_TEST(execBaseClass_v2 MACRO execBaseClass_v2.cxx+ OUTREF execBaseClass_v2.ref - DEPENDS execBaseClass_v1 ) - + FIXTURES_REQUIRED root-meta-evolution-execBaseClass_v1-fixture + FIXTURES_SETUP root-meta-evolution-execBaseClass_v2-fixture) + ROOTTEST_ADD_TEST(baseClass_53410_v1 COPY_TO_BUILDDIR baseClass_53410_v1.root MACRO execBaseClass_v2.cxx+ MACROARG "\"baseClass_53410_v1.root\"" OUTREF baseClass_53410_v1.ref - DEPENDS execBaseClass_v2) + FIXTURES_REQUIRED root-meta-evolution-execBaseClass_v2-fixture) ROOTTEST_ADD_TEST(baseClass_53410_v2 COPY_TO_BUILDDIR baseClass_53410_v2.root MACRO execBaseClass_v2.cxx+ MACROARG "\"baseClass_53410_v2.root\"" OUTREF baseClass_53410_v2.ref - DEPENDS execBaseClass_v2) - + FIXTURES_REQUIRED root-meta-evolution-execBaseClass_v2-fixture) + ROOTTEST_ADD_TEST(baseClass_merge1 PRECMD hadd -f baseClass_merge1.root baseClass_v1.root baseClass_v2.root MACRO execBaseClass_v2.cxx+ MACROARG "\"baseClass_merge1.root\"" OUTREF baseClass_merge1.ref - DEPENDS execBaseClass_v2 ) + FIXTURES_REQUIRED root-meta-evolution-execBaseClass_v2-fixture) ROOTTEST_ADD_TEST(baseClass_merge2 PRECMD hadd -f baseClass_merge2.root baseClass_v2.root baseClass_v1.root MACRO execBaseClass_v2.cxx+ MACROARG "\"baseClass_merge2.root\"" OUTREF baseClass_merge2.ref - DEPENDS execBaseClass_v2 ) - + FIXTURES_REQUIRED root-meta-evolution-execBaseClass_v2-fixture) + ROOTTEST_ADD_TEST(execMixedBaseClass_v1 MACRO execMixedBaseClass_v1.cxx+ - OUTREF execMixedBaseClass_v1.ref) + OUTREF execMixedBaseClass_v1.ref + FIXTURES_SETUP root-meta-evolution-execMixedBaseClass_v1-fixture) ROOTTEST_ADD_TEST(execMixedBaseClass_v2 MACRO execMixedBaseClass_v2.cxx+ OUTREF execMixedBaseClass_v2.ref - DEPENDS execMixedBaseClass_v1 ) - + FIXTURES_REQUIRED root-meta-evolution-execMixedBaseClass_v1-fixture + FIXTURES_SETUP root-meta-evolution-execMixedBaseClass_v2-fixture) + ROOTTEST_ADD_TEST(mixedBase_53410_v1 COPY_TO_BUILDDIR mixedBase_53410_v1.root MACRO execMixedBaseClass_v2.cxx+ MACROARG "\"mixedBase_53410_v1.root\"" OUTREF mixedBase_53410_v1.ref - DEPENDS execMixedBaseClass_v2) + FIXTURES_REQUIRED root-meta-evolution-execMixedBaseClass_v2-fixture) ROOTTEST_ADD_TEST(mixedBase_53410_v2 COPY_TO_BUILDDIR mixedBase_53410_v2.root MACRO execMixedBaseClass_v2.cxx+ MACROARG "\"mixedBase_53410_v2.root\"" OUTREF mixedBase_53410_v2.ref - DEPENDS execMixedBaseClass_v2) - + FIXTURES_REQUIRED root-meta-evolution-execMixedBaseClass_v2-fixture) + ROOTTEST_ADD_TEST(mixedBase_merge1 PRECMD hadd -f mixedBase_merge1.root mixedBase_v1.root mixedBase_v2.root MACRO execMixedBaseClass_v2.cxx+ MACROARG "\"mixedBase_merge1.root\"" OUTREF mixedBase_merge1.ref - DEPENDS execMixedBaseClass_v2 ) + FIXTURES_REQUIRED root-meta-evolution-execMixedBaseClass_v2-fixture) ROOTTEST_ADD_TEST(mixedBase_merge2 PRECMD hadd -f mixedBase_merge2.root mixedBase_v2.root mixedBase_v1.root MACRO execMixedBaseClass_v2.cxx+ MACROARG "\"mixedBase_merge2.root\"" OUTREF mixedBase_merge2.ref - DEPENDS execMixedBaseClass_v2 ) + FIXTURES_REQUIRED root-meta-evolution-execMixedBaseClass_v2-fixture) ROOTTEST_ADD_TEST(execReadOldCSC COPY_TO_BUILDDIR cscdstarmb.root @@ -101,7 +109,7 @@ ROOTTEST_ADD_TEST(execCheckSum OUTREF execCheckSum.ref) ROOTTEST_ADD_TEST(execMissingCheckSum - COPY_TO_BUILDDIR missingCheckSum.root missingCheckSum2.root checksumReflexEnum_v5.root + COPY_TO_BUILDDIR missingCheckSum.root missingCheckSum2.root checksumReflexEnum_v5.root checksumSignedChar_v5.root MACRO execMissingCheckSum.cxx+ OUTREF execMissingCheckSum.ref) @@ -109,5 +117,9 @@ ROOTTEST_ADD_TEST(execMissingCheckSum ROOTTEST_ADD_TEST(runforeign MACRO runforeign.C OUTREF foreign.ref - DEPENDS data1 data2 data3 data4) + FIXTURES_REQUIRED root-meta-evolution-data1-fixture + root-meta-evolution-data2-fixture + root-meta-evolution-data3-fixture + root-meta-evolution-data4-fixture) + ROOTTEST_ADD_TESTDIRS() diff --git a/roottest/root/meta/evolution/Makefile b/roottest/root/meta/evolution/Makefile deleted file mode 100644 index af69a9181a772..0000000000000 --- a/roottest/root/meta/evolution/Makefile +++ /dev/null @@ -1,119 +0,0 @@ -# This is a template for all makefiles. - -BASE_FILES = baseClass_merge1.root baseClass_merge2.root baseClass_53410_v1.root baseClass_53410_v2.root -MIXED_FILES = mixedBase_merge1.root mixedBase_merge2.root mixedBase_53410_v1.root mixedBase_53410_v2.root -BASE_SUCCESS = $(subst .root,.success,$(BASE_FILES) $(MIXED_FILES)) - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog data*.root mixedBase_v?.root baseClass_v?.root baseClass_merge?.root mixedBase_merge?.root baseClass_merged?.root - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += foreign warning $(BASE_SUCCESS) - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - -data1_C.$(DllSuf) : data.h data1.C - -data2_C.$(DllSuf) : data.h data2.C - -data1.root: writefile.C data1_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(1)' 2>&1 > data1.log - -data2.root: writefile.C data2_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(2)' 2>&1 > data2.log - -data3.root: writefile.C data3_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(3)' 2>&1 > data3.log - -data4.root: writefile.C data4_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(4)' 2>&1 > data4.log - -data5.root: writefile.C data5_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(5)' 2>&1 > data4.log - -data6.root: writefile.C data6_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l 'writefile.C(6)' 2>&1 > data4.log - -foreign.log: data1.root data2.root data3.root data4.root data2_C.$(DllSuf) - -warning.log: data1.root data2.root data3.root data4.root data5.root \ - data6.root data2_C.$(DllSuf) checkWarn.C $(ROOTCORELIBS) - $(CMDECHO) ($(CALLROOTEXE) -q -b -l 'checkWarn.C(0)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(1)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(2)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(3)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(4)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(10)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(11)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(12)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(13)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(14)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(15)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(16)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(17)' \ - && $(CALLROOTEXE) -q -b -l 'checkWarn.C(18)' \ - ) 2>&1 | sed -e 's@offset= [0-9]*@offset= n/a@' > warning.log - -ifeq ($(ClingWorkAroundJITandInline),) -foreign: foreign.log - $(TestDiff) -else -foreign: -endif - -warning: warning.log - $(TestDiff) - -baseClass_merge1.root: execBaseClass_v2.success - $(CMDECHO) hadd -f $@ baseClass_v1.root baseClass_v2.root > $@.build.log 2>&1 || handleError.sh --cmd="hadd -f $@ baseClass_v1.root baseClass_v2.root" --result=$$? --log=$@.build.log --test=$@ - -baseClass_merge2.root: execBaseClass_v2.success - $(CMDECHO) hadd -f $@ baseClass_v2.root baseClass_v1.root > $@.build.log 2>&1 || handleError.sh --cmd="hadd -f $@ baseClass_v2.root baseClass_v1.root" --result=$$? --log=$@.build.log --test=$@ - -mixedBase_merge1.root: execMixedBaseClass_v2.success - $(CMDECHO) hadd -f $@ mixedBase_v1.root mixedBase_v2.root > $@.build.log 2>&1 || handleError.sh --cmd="hadd -f $@ mixedBase_v1.root mixedBase_v2.root" --result=$$? --log=$@.build.log --test=$@ - -mixedBase_merge2.root: execMixedBaseClass_v2.success - $(CMDECHO) hadd -f $@ mixedBase_v2.root mixedBase_v1.root > $@.build.log 2>&1 || handleError.sh --cmd="hadd -f $@ mixedBase_v2.root mixedBase_v1.root" --result=$$? --log=$@.build.log --test=$@ - -execBaseClass_v2.clog: execBaseClass_v1.success - -execMixedBaseClass_v2.clog: execMixedBaseClass_v1.success - -$(subst .root,.log,$(BASE_FILES)): %.log: %.root execBaseClass_v2_cxx.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l execBaseClass_v2.cxx+\(\"$<\"\) > $@ 2>&1 || handleError.sh --cmd="Execution of execBaseClass_v2.cxx+(\"$<\") > $@" --result=$$? --log=$@.build.log --test=$@ - -$(subst .root,.log,$(MIXED_FILES)): %.log: %.root execMixedBaseClass_v2_cxx.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -q -l execMixedBaseClass_v2.cxx+\(\"$<\"\) > $@ 2>&1 || handleError.sh --cmd="Execution of execMixedBaseClass_v2.cxx+(\"$<\") > $@" --result=$$? --log=$@.build.log --test=$@ - -$(BASE_SUCCESS): %.success: %.log - $(SuccessTestDiff) && touch $@ - - - - - diff --git a/roottest/root/meta/evolution/version5/.rootrc b/roottest/root/meta/evolution/version5/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/evolution/version5/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/evolution/version5/Makefile b/roottest/root/meta/evolution/version5/Makefile deleted file mode 100644 index fc343364a3d05..0000000000000 --- a/roottest/root/meta/evolution/version5/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - diff --git a/roottest/root/meta/fwdDecls/.rootrc b/roottest/root/meta/fwdDecls/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/fwdDecls/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/fwdDecls/CMakeLists.txt b/roottest/root/meta/fwdDecls/CMakeLists.txt index c36d2ce997bce..ebf7c29084666 100644 --- a/roottest/root/meta/fwdDecls/CMakeLists.txt +++ b/roottest/root/meta/fwdDecls/CMakeLists.txt @@ -2,18 +2,19 @@ if(NOT MSVC OR win_broken_tests) ROOTTEST_ADD_TEST(clingFwdDeclExample - COPY_TO_BUILDDIR clingFwdDeclExample.h clingFwdDeclExample_selection.xml A.h checkDict - COMMAND ./checkDict - OUTREF clingFwdDeclExample.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + COPY_TO_BUILDDIR clingFwdDeclExample.h clingFwdDeclExample_selection.xml A.h checkDict.sh + COMMAND ./checkDict.sh + OUTREF clingFwdDeclExample.ref) endif() -ROOTTEST_GENERATE_REFLEX_DICTIONARY(fwdDeclarations fwdDeclarations.h SELECTION fwdDeclarations_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(fwdDeclarations + fwdDeclarations.h + SELECTION fwdDeclarations_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-fwdDecls-fwdDeclarations-fixture) ROOTTEST_ADD_TEST(fwdDeclarations MACRO execfwdDeclarations.C OUTREF execfwdDeclarations.ref ${WILLFAIL_ON_WIN32} - DEPENDS ${GENERATE_REFLEX_TEST}) - -ROOTTEST_ADD_TESTDIRS() + FIXTURES_REQUIRED root-meta-fwdDecls-fwdDeclarations-fixture) diff --git a/roottest/root/meta/fwdDecls/Makefile b/roottest/root/meta/fwdDecls/Makefile deleted file mode 100644 index 9c3fcd6f94b39..0000000000000 --- a/roottest/root/meta/fwdDecls/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -CLEAN_TARGETS += *pcm *$(DllSuf) *log *o *cpp *summary dummy* *success - -TEST_TARGETS += execfwdDeclarations - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -execfwdDeclarations.log: libfwdDeclarations_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/fwdDecls/checkDict b/roottest/root/meta/fwdDecls/checkDict.sh similarity index 100% rename from roottest/root/meta/fwdDecls/checkDict rename to roottest/root/meta/fwdDecls/checkDict.sh diff --git a/roottest/root/meta/genreflex/.rootrc b/roottest/root/meta/genreflex/.rootrc deleted file mode 100644 index e7e8e8496c970..0000000000000 --- a/roottest/root/meta/genreflex/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/genreflex/CMakeLists.txt b/roottest/root/meta/genreflex/CMakeLists.txt index f2def76aa4c9c..0737217b10221 100644 --- a/roottest/root/meta/genreflex/CMakeLists.txt +++ b/roottest/root/meta/genreflex/CMakeLists.txt @@ -1,30 +1,38 @@ ROOTTEST_ADD_TESTDIRS() # ROOT-9872 -ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT_9872 classes_ROOT_9872.h SELECTION classes_def_ROOT_9872.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT_9872 + classes_ROOT_9872.h + SELECTION classes_def_ROOT_9872.xml + FIXTURES_SETUP root-meta-genreflex-ROOT_9872-fixture) ROOTTEST_ADD_TEST(ROOT_9872 MACRO run_ROOT_9872.C - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-ROOT_9872-fixture) # ROOT-8509 ROOTTEST_ADD_TEST(noIncludePaths COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/noIncludePaths.h --noIncludePaths --select=${CMAKE_CURRENT_SOURCE_DIR}/noIncludePaths_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/noIncludePaths_rflx.cxx ) # ROOT-8380 -ROOTTEST_GENERATE_REFLEX_DICTIONARY(canSplit canSplit.h SELECTION canSplit_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(canSplit + canSplit.h + SELECTION canSplit_selection.xml + FIXTURES_SETUP root-meta-genreflex-canSplit-fixture) ROOTTEST_ADD_TEST(canSplit MACRO canSplit.C - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-canSplit-fixture) # ROOT-8381 ROOTTEST_ADD_TEST(vectorOfTStar COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/vectorOfTStar.h --select=${CMAKE_CURRENT_SOURCE_DIR}/vectorOfTStar_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/vectorOfTStar_rflx.cxx OUTREF vectorOfTStar.ref ERRREF vectorOfTStar.eref) @@ -32,6 +40,7 @@ ROOTTEST_ADD_TEST(vectorOfTStar ROOTTEST_ADD_TEST(ioreadrulesfailonwarning COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/ioreadrulesfailonwarning.h --fail_on_warnings --select=${CMAKE_CURRENT_SOURCE_DIR}/ioreadrulesfailonwarning_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/ioreadrulesfailonwarning_rflx.cxx OUTREF ioreadrulesfailonwarning.eref PASSRC 1) @@ -41,12 +50,14 @@ if(APPLE) ROOTTEST_ADD_TEST(checkOSXLibraryExtension COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/checkOSXLibraryExtension.h -l libMylib.dylib --rootmap checkOSXLibraryExtension.rootmap --rootmap-lib libMylib.dylib + --output=${CMAKE_CURRENT_BINARY_DIR}/checkOSXLibraryExtension_rflx.cxx OUTREF checkOSXLibraryExtension.ref) endif() ROOTTEST_ADD_TEST(conflictingSelections COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/conflictingNameRule.h --select=${CMAKE_CURRENT_SOURCE_DIR}/conflictingNameRule_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/conflictingNameRule_rflx.cxx OUTREF conflictingNameRule.eref ${WILLFAIL_ON_WIN32} PASSRC 1) @@ -54,6 +65,7 @@ ROOTTEST_ADD_TEST(conflictingSelections ROOTTEST_ADD_TEST(equivalentSelections COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/equivalentSelections.h --select=${CMAKE_CURRENT_SOURCE_DIR}/equivalentSelections_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/equivalentSelections_rflx.cxx ${WILLFAIL_ON_WIN32} OUTREF equivalentSelections.eref) @@ -61,12 +73,14 @@ ROOTTEST_ADD_TEST(equivalentSelections ROOTTEST_ADD_TEST(twoTypedefsOneClass COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/twoTypedefsOneClass.h --select=${CMAKE_CURRENT_SOURCE_DIR}/twoTypedefsOneClass_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/twoTypedefsOneClass_rflx.cxx OUTREF twoTypedefsOneClass.ref) # ROOT-7450 ROOTTEST_ADD_TEST(privateClassXMLSelection COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/privateClassSelection.h --select=${CMAKE_CURRENT_SOURCE_DIR}/privateClassSelection_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/privateClassSelection_rflx.cxx ERRREF privateClassXMLSelection.eref) # ROOT-7450 @@ -80,103 +94,147 @@ ROOTTEST_ADD_TEST(privateClassFileSelection ROOTTEST_ADD_TEST(selectionDuplicate COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/duplicateSelection.h --select=${CMAKE_CURRENT_SOURCE_DIR}/duplicateSelection_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/duplicateSelection_rflx.cxx ERRREF duplicateSelection.eref PASSRC 1) ROOTTEST_ADD_TEST(excludedAutoparseKeys COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/excludedAutoparseKeys.h - --select=${CMAKE_CURRENT_SOURCE_DIR}/excludedAutoparseKeys_selection.xml --debug -I ${CMAKE_CURRENT_SOURCE_DIR} + --select=${CMAKE_CURRENT_SOURCE_DIR}/excludedAutoparseKeys_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/excludedAutoparseKeys_rflx.cxx + --debug -I ${CMAKE_CURRENT_SOURCE_DIR} OUTREF excludedAutoparseKeys.ref OUTCNV excludedAutoparseKeysOutputFilter.sh) ROOTTEST_ADD_TEST(unsupportedClasses COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/unsupportedClasses.h - --select=${CMAKE_CURRENT_SOURCE_DIR}/unsupportedClasses_selection.xml -I ${CMAKE_CURRENT_SOURCE_DIR} + --select=${CMAKE_CURRENT_SOURCE_DIR}/unsupportedClasses_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/unsupportedClasses_rflx.cxx + -I ${CMAKE_CURRENT_SOURCE_DIR} ERRREF unsupportedClasses.eref PASSRC 4) # These 3 tests will fail because a pragma once will be found in the inlined header ROOTTEST_ADD_TEST(pragmaOnce1 - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce1.h -o pragmaOnce1.cxx - --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce1_selection.xml -I ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce1.h + --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce1_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/pragmaOnce1.cxx + -I ${CMAKE_CURRENT_SOURCE_DIR} WILLFAIL) ROOTTEST_ADD_TEST(pragmaOnce2 - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce2.h -o pragmaOnce2.cxx - --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce2_selection.xml -I ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce2.h + --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce2_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/pragmaOnce2.cxx + -I ${CMAKE_CURRENT_SOURCE_DIR} WILLFAIL) ROOTTEST_ADD_TEST(pragmaOnce3 - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce3.h -o pragmaOnce3.cxx - --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce3_selection.xml -I ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce3.h + --select=${CMAKE_CURRENT_SOURCE_DIR}/pragmaOnce3_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/pragmaOnce3.cxx + -I ${CMAKE_CURRENT_SOURCE_DIR} WILLFAIL) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(mangledName mangledTest_lhapdf-5.9.1.h SELECTION mangledTest_lhapdf-5.9.1_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(mangledName + mangledTest_lhapdf-5.9.1.h + SELECTION mangledTest_lhapdf-5.9.1_selection.xml + FIXTURES_SETUP root-meta-genreflex-mangledName-fixture) ROOTTEST_ADD_TEST(mangledName MACRO execmangledTest.C OUTREF execmangledTest.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-mangledName-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(MyClass_v1 MyClass_v1.h SELECTION MyClass_v1_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(MyClass_v1 + MyClass_v1.h + SELECTION MyClass_v1_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-genreflex-MyClass_v1-fixture) ROOTTEST_ADD_TEST(escapedQuotesRootmapGen MACRO execwriteFirstRootmap.C OUTREF execwriteFirstRootmap.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-MyClass_v1-fixture + FIXTURES_SETUP root-meta-genreflex-escapedQuotesRootmapGen-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(MyClass_v2 MyClass_v2.h SELECTION MyClass_v2_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(MyClass_v2 + MyClass_v2.h + SELECTION MyClass_v2_selection.xml + NO_ROOTMAP + FIXTURES_SETUP root-meta-genreflex-MyClass_v2-fixture) ROOTTEST_ADD_TEST(escapedQuotesWriteTree MACRO execwriteTree.C OUTREF execwriteTree.ref - DEPENDS ${GENERATE_REFLEX_TEST} escapedQuotesRootmapGen) + FIXTURES_REQUIRED root-meta-genreflex-escapedQuotesRootmapGen-fixture + root-meta-genreflex-MyClass_v2-fixture + FIXTURES_SETUP root-meta-genreflex-escapedQuotesWriteTree-fixture) ROOTTEST_ADD_TEST(escapedQuotesreadTree MACRO execreadTree.C OUTREF execreadTree.ref - DEPENDS escapedQuotesWriteTree) + FIXTURES_REQUIRED root-meta-genreflex-escapedQuotesWriteTree-fixture) ROOTTEST_ADD_TEST(classSelectedTwice - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/classSelectedTwice.h --verbose --select=${CMAKE_CURRENT_SOURCE_DIR}/classSelectedTwice_selection.xml + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/classSelectedTwice.h --verbose + --select=${CMAKE_CURRENT_SOURCE_DIR}/classSelectedTwice_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/classSelectedTwice_rflx.cxx ${WILLFAIL_ON_WIN32} OUTREF classSelectedTwice.ref) ROOTTEST_ADD_TEST(virtualInheritance - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/virtualInheritance.h --verbose --select=${CMAKE_CURRENT_SOURCE_DIR}/virtualInheritance_selection.xml + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/virtualInheritance.h --verbose + --select=${CMAKE_CURRENT_SOURCE_DIR}/virtualInheritance_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/virtualInheritance_rflx.cxx OUTREF virtualInheritance.ref) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(typedefSelection typedefSelection.h SELECTION typedefSelection_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(typedefSelection + typedefSelection.h + SELECTION typedefSelection_selection.xml + FIXTURES_SETUP root-meta-genreflex-typedefSelection-fixture) ROOTTEST_ADD_TEST(typedefSelection MACRO execTypedefSelection.C OUTREF execTypedefSelection.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-typedefSelection-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(stlPatternSelection stlPatternSelection.h SELECTION stlPatternSelection_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(stlPatternSelection + stlPatternSelection.h + SELECTION stlPatternSelection_selection.xml + FIXTURES_SETUP root-meta-genreflex-stlPatternSelection-fixture) ROOTTEST_ADD_TEST(stlPatternSelection MACRO execstlPatternSelection.C OUTREF execstlPatternSelection.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-stlPatternSelection-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(complicatedAllocator complicatedAllocator.h SELECTION complicatedAllocator_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(complicatedAllocator + complicatedAllocator.h + SELECTION complicatedAllocator_selection.xml + FIXTURES_SETUP root-meta-genreflex-complicatedAllocator-fixture) ROOTTEST_ADD_TEST(CheckComplicatedAllocator MACRO execCheckComplicatedAllocator.C OUTREF execCheckComplicatedAllocator.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-complicatedAllocator-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(ns ns.h SELECTION ns_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(ns + ns.h + SELECTION ns_selection.xml + FIXTURES_SETUP root-meta-genreflex-ns-fixture) ROOTTEST_ADD_TEST(ns MACRO execns.C OUTREF execns.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-ns-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(attributesCheck attributesCheck.h SELECTION attributesCheck_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(attributesCheck + attributesCheck.h + SELECTION attributesCheck_selection.xml + FIXTURES_SETUP root-meta-genreflex-attributesCheck-fixture) ROOTTEST_ADD_TEST(attributesCheck MACRO execAttributesCheck.C OUTREF execAttributesCheck.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-attributesCheck-fixture) diff --git a/roottest/root/meta/genreflex/Makefile b/roottest/root/meta/genreflex/Makefile deleted file mode 100644 index 3ae477be2f8e1..0000000000000 --- a/roottest/root/meta/genreflex/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *pcm *o *rflx.* dummy* al.rootmap ofile.root - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# check sanity of pcm name -execmangledTest.log: libmangledTest_lhapdf-5.9.1_dictrflx.$(DllSuf) -# escape quotes test -execwriteFirstRootmap.log: execwriteFirstRootmap.C -execwriteTree.log: libMyClass_v1_dictrflx.$(DllSuf) execwriteFirstRootmap.log -execreadTree.log: execwriteTree.log libMyClass_v2_dictrflx.$(DllSuf) - -execTypedefSelection.log: libns_dictrflx.$(DllSuf) -execTypedefSelection.log: libtypedefSelection_dictrflx.$(DllSuf) -execstlPatternSelection.log: libstlPatternSelection_dictrflx.$(DllSuf) -execCheckComplicatedAllocator.log: libcomplicatedAllocator_dictrflx.$(DllSuf) -execns.log: libns_dictrflx.$(DllSuf) -execAttributesCheck.log: libattributesCheck_dictrflx.$(DllSuf) - diff --git a/roottest/root/meta/genreflex/ROOT-5594/.rootrc b/roottest/root/meta/genreflex/ROOT-5594/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5594/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5626/.rootrc b/roottest/root/meta/genreflex/ROOT-5626/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5626/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5627/.rootrc b/roottest/root/meta/genreflex/ROOT-5627/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5627/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5627/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5627/CMakeLists.txt index 194a6452286b5..476ceb6eb59e7 100644 --- a/roottest/root/meta/genreflex/ROOT-5627/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5627/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes SELECTION classes_selection.xml classes.h) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + FIXTURES_SETUP root-meta-genreflex-5627-fixture) ROOTTEST_ADD_TEST(exec5627 MACRO exec5627.C OUTREF exec5627.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5627-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5627/Makefile b/roottest/root/meta/genreflex/ROOT-5627/Makefile deleted file mode 100644 index bc8e51a298475..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5627/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *_rflx* -TEST_TARGETS += root_5627 - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += --deep -DCMS_DICT_IMPL -D_REENTRANT -DGNUSOURCE -D__STRICT_ANSI__ -DGNU_GCC -D_GNU_SOURCE - -classes_rflx.cpp: TH2Analyzer.h - -exec5627.log: libclasses_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5627/root_5627 b/roottest/root/meta/genreflex/ROOT-5627/root_5627 deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/roottest/root/meta/genreflex/ROOT-5657/.rootrc b/roottest/root/meta/genreflex/ROOT-5657/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5657/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5657/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5657/CMakeLists.txt index 0ab9b71983dad..e9043247db539 100644 --- a/roottest/root/meta/genreflex/ROOT-5657/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5657/CMakeLists.txt @@ -2,9 +2,12 @@ # -Werror makes no sense with this test; remove it: string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + FIXTURES_SETUP root-meta-genreflex-5657-fixture) ROOTTEST_ADD_TEST(execloadLib MACRO execloadLib.C OUTREF execloadLib.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5657-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5657/Makefile b/roottest/root/meta/genreflex/ROOT-5657/Makefile deleted file mode 100644 index 2cbe863f3be27..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5657/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CLEAN_TARGETS += *.log *so *pcm *rflx* dummy*.C dummy*_C.d -TEST_TARGETS += execloadLib - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Create the dict source -execloadLib.log: libclasses_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5690/.rootrc b/roottest/root/meta/genreflex/ROOT-5690/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5690/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5690/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5690/CMakeLists.txt index 1b1cb3164800f..a60a897964317 100644 --- a/roottest/root/meta/genreflex/ROOT-5690/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5690/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(FastAllocVector FastAllocVector.h SELECTION FastAllocVector_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(FastAllocVector + FastAllocVector.h + SELECTION FastAllocVector_selection.xml + FIXTURES_SETUP root-meta-genreflex-5690-fixture) ROOTTEST_ADD_TEST(execdummy MACRO execdummy.C OUTREF execdummy.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5690-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5690/Makefile b/roottest/root/meta/genreflex/ROOT-5690/Makefile deleted file mode 100644 index 74def1ba85d00..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5690/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CLEAN_TARGETS += *.log xr.* dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += root_5690 - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Create the dict source -execdummy.log: FastAllocVector_rflx.$(ObjSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5696/.rootrc b/roottest/root/meta/genreflex/ROOT-5696/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5696/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5696/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5696/CMakeLists.txt index e310c69dab83b..ddb7d526d7fac 100644 --- a/roottest/root/meta/genreflex/ROOT-5696/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5696/CMakeLists.txt @@ -1,9 +1,12 @@ # -Werror makes no sense with this testing a warning; remove it: string(REPLACE "-Werror" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(warnMe warnMe.h SELECTION warnMe_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(warnMe + warnMe.h + SELECTION warnMe_selection.xml + FIXTURES_SETUP root-meta-genreflex-5696-fixture) ROOTTEST_ADD_TEST(exec5596 MACRO exec5596.C OUTREF exec5596.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5696-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5696/Makefile b/roottest/root/meta/genreflex/ROOT-5696/Makefile deleted file mode 100644 index 66e7f804a5c33..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5696/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *_rflx* *pcm *log *so -TEST_TARGETS += root_5596 - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -GENREFLEXCXXFLAGS += --quiet - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -exec5596.log: libwarnMe_dictrflx.$(DllSuf) - diff --git a/roottest/root/meta/genreflex/ROOT-5709/.rootrc b/roottest/root/meta/genreflex/ROOT-5709/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5709/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5709/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5709/CMakeLists.txt index 3048deb0cd7d7..fd421251dc303 100644 --- a/roottest/root/meta/genreflex/ROOT-5709/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5709/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(Tau Tau.h SELECTION Tau_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(Tau + Tau.h + SELECTION Tau_selection.xml + FIXTURES_SETUP root-meta-genreflex-5709-fixture) ROOTTEST_ADD_TEST(execlibLoad MACRO execLibLoad.C OUTREF execLibLoad.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5709-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5709/Makefile b/roottest/root/meta/genreflex/ROOT-5709/Makefile deleted file mode 100644 index 3eec86087050f..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5709/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execLibLoad - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += --deep - -execLibLoad.log: libTau_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5756/.rootrc b/roottest/root/meta/genreflex/ROOT-5756/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5756/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5756/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5756/CMakeLists.txt index 8437957214872..1775d2790f918 100644 --- a/roottest/root/meta/genreflex/ROOT-5756/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5756/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + FIXTURES_SETUP root-meta-genreflex-5756-fixture) ROOTTEST_ADD_TEST(execLibLoad MACRO execLibLoad.C OUTREF execLibLoad.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5756-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5756/Makefile b/roottest/root/meta/genreflex/ROOT-5756/Makefile deleted file mode 100644 index 9071e44f9e975..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5756/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execLibLoad - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -execLibLoad.log: libclasses_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5764/.rootrc b/roottest/root/meta/genreflex/ROOT-5764/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5764/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5764/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5764/CMakeLists.txt index 4ec2e5972ff7b..16bd7ae3c9569 100644 --- a/roottest/root/meta/genreflex/ROOT-5764/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5764/CMakeLists.txt @@ -1,8 +1,11 @@ if(NOT MSVC OR win_broken_tests) - ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml) + ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + FIXTURES_SETUP root-meta-genreflex-5764-fixture) ROOTTEST_ADD_TEST(execLibLoad MACRO execLibLoad.C OUTREF execLibLoad.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-5764-fixture) endif() diff --git a/roottest/root/meta/genreflex/ROOT-5764/Makefile b/roottest/root/meta/genreflex/ROOT-5764/Makefile deleted file mode 100644 index 9071e44f9e975..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5764/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execLibLoad - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -execLibLoad.log: libclasses_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5768/.rootrc b/roottest/root/meta/genreflex/ROOT-5768/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5768/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5768/CMakeLists.txt index 227297c2402a2..a306e3a68e3c0 100644 --- a/roottest/root/meta/genreflex/ROOT-5768/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5768/CMakeLists.txt @@ -1,7 +1,30 @@ -#------------------------------------------------------------------------------- -# -# Placeholder file to translate the tests to the new CTest system. Meanwhile we -# define a CTest test that calls 'make' in ${CMAKE_CURRENT_SOURCE_DIR} -# -#------------------------------------------------------------------------------- -ROOTTEST_ADD_OLDTEST() +# windows fails with message +# PyCool_rflx.cxx(824,1): error C2026: string too big, trailing characters truncated + +if(NOT MSVC OR win_broken_tests) + ROOTTEST_ADD_TEST(PyCool + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/PyCool.h + --interpreteronly -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_CURRENT_SOURCE_DIR}/CoralBase + --select=${CMAKE_CURRENT_SOURCE_DIR}/PyCool_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/PyCool_rflx.cxx + FIXTURES_SETUP PyCool-reflex-dict) + + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/PyCool_rflx.cxx + COMMAND ${CMAKE_COMMAND} -E echo "do nothing, dictionary should be generated already") + + + # build static library only to ensure that generated dictionary can be compiled + ROOTTEST_LINKER_LIBRARY(PyCoolLib + TEST + ${CMAKE_CURRENT_BINARY_DIR}/PyCool_rflx.cxx + TYPE STATIC + LIBRARIES ${ROOT_LIBRARIES}) + + target_include_directories(PyCoolLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + # target_include_directories(PyCoolLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/CoralBase) + + ROOTTEST_ADD_TEST(PyCoolLib-build + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} ${build_config} --target PyCoolLib${fast} -- ${always-make} + FIXTURES_REQUIRED PyCool-reflex-dict) +endif() \ No newline at end of file diff --git a/roottest/root/meta/genreflex/ROOT-5768/Makefile b/roottest/root/meta/genreflex/ROOT-5768/Makefile deleted file mode 100644 index 0359881c126d4..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -#Disable until boost is not present in the headers -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += execLibLoad - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += --interpreteronly -I ./ -I CoralBase -CXXFLAGS += -I ./ -I CoralBase - -execLibLoad.log: PyCool_rflx.$(ObjSuf) diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/requirements b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/requirements deleted file mode 100755 index c68c2bb9ce8db..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/requirements +++ /dev/null @@ -1,107 +0,0 @@ -package RelationalCool - -#============================================================================ -# Public dependencies and build rules -#============================================================================ - -use CoolKernel v* - -#---------------------------------------------------------------------------- -# Library -#---------------------------------------------------------------------------- - -include_path none -apply_pattern lcg_shared_library - -#============================================================================ -# Private dependencies and build rules -#============================================================================ - -private - -# Link the CORAL relational libraries -apply_tag NEEDS_CORAL_RELATIONAL_ACCESS - -# Temporary hack to avoid c++ deprecation warnings for auto_ptr (bug #98086) -macro_append cppflags "" target-c11 " -Wno-deprecated " - -# Not sure why this was needed on Windows... -###macro_append lcg_RelationalCool_shlibflags '' target-winxp ' PowrProf.lib ' - -#---------------------------------------------------------------------------- -# Tests -#---------------------------------------------------------------------------- - -use CppUnit v* LCG_Interfaces -no_auto_imports - -# Unit tests with no database connection -apply_pattern cool_unit_test tname=ChannelSelection -apply_pattern cool_unit_test tname=PayloadSpecification -apply_pattern cool_unit_test tname=VersionNumber -apply_pattern cool_unit_test tname=HvsPathHandler -apply_pattern cool_unit_test tname=RelationalDatabaseId -apply_pattern cool_unit_test tname=ObjectId -apply_pattern cool_unit_test tname=utility_methods - -# Unit tests with a database connection -apply_pattern cool_unit_test tname=Channels -apply_pattern cool_unit_test tname=HvsTags -apply_pattern cool_unit_test tname=RalDatabase -apply_pattern cool_unit_test tname=RalDatabase_extendedSpec -apply_pattern cool_unit_test tname=RalDatabaseSvc -apply_pattern cool_unit_test tname=RalSequence -apply_pattern cool_unit_test tname=RelationalFolder -apply_pattern cool_unit_test tname=RelationalFolderSet -apply_pattern cool_unit_test tname=RelationalObjectIterator -apply_pattern cool_unit_test tname=RelationalObjectMgr -apply_pattern cool_unit_test tname=RelationalObjectSet -apply_pattern cool_unit_test tname=RelationalObjectTable - -# Private unit tests - not to be installed in the release area -###apply_pattern cool_unit_test tname=Bug62634 -###macro_remove tests_constituents test_RelationalCool_Bug62634 - -#---------------------------------------------------------------------------- -# Utilities -#---------------------------------------------------------------------------- - -# New version using the new LCG_Policy patterns (SPI-169) -# Inherit gcov/icc linkopts from pattern lcg_application (fix bug #91133) -# Link lcg_ needed in lcg_module_library but not in lcg_shared_library -pattern cool_utility \ - apply_pattern lcg_application appname= files=../utilities//*.cpp import2= category=utilities ; \ - macro _dependencies ' lcg_ ' - -apply_pattern cool_utility uname=coolAuthentication -apply_pattern cool_utility uname=coolDropDB -apply_pattern cool_utility uname=coolDumpSchema -apply_pattern cool_utility uname=coolEvolveSchema -apply_pattern cool_utility uname=coolPrivileges -apply_pattern cool_utility uname=coolReplicateDB -apply_pattern cool_utility uname=coolStat -apply_pattern cool_utility uname=coolValidateSchema - -#---------------------------------------------------------------------------- -# Install the scripts -#---------------------------------------------------------------------------- - -macro scrdir "$(CMTINSTALLAREA)/$(tag)/bin" \ - target-winxp "$(CMTINSTALLAREA)\$(tag)\bin" -action install_scripts "mkdir -p $(scrdir); cp -rf ../scripts/*.* $(scrdir)/.; cp -rf ../scripts/sql $(scrdir)/." \ - target-winxp "xcopy /I/S/Y/Q ..\scripts\*.* $(scrdir)\." - -# Append to 'constituents' to execute an action in 'cmt make' -# (append to 'all_constituents' to execute it only in 'cmt make all'). -# Remove the action from cmt_actions_constituents so that the action -# is not executed twice in 'cmt make all_groups' (it executes all actions). -macro_append constituents "install_scripts" -macro_remove cmt_actions_constituents "install_scripts" - -#---------------------------------------------------------------------------- - -# Do not install the header files -macro_remove constituents 'install_includes' - -# Fake target for examples -action examples "echo No examples in this package" -macro_remove cmt_actions_constituents "examples" diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/version.cmt b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/version.cmt deleted file mode 100644 index 626799f0f8532..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/cmt/version.cmt +++ /dev/null @@ -1 +0,0 @@ -v1 diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.CLOB b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.CLOB deleted file mode 100644 index 70dfa80c8f7d9..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.CLOB +++ /dev/null @@ -1,215 +0,0 @@ -Various problems with CLOB. Let's start with the most important. - ------------------------------------------------------------------------------ -Problem #1: segmentation fault in reading back CLOB from Oracle (08.04.2005) ------------------------------------------------------------------------------ - -The problem initially appeared in COOL after changing the folder payload spec -column to CLOB. In Oracle, I got a segmentation fault when reading from this table. - -I initially thought this was because I was mixing CLOB and non-CLOB columns -and thought of testing this. So I downloaded the standard clobInputOutput.cpp -test from the POOL OracleAccess test suite. However I realised that even the -standard POOL test failed. I went on to investigate this. - -I thought that this could be an environment problem (the COOL environment mixes -some debug and non-debug libraries, it ALWAYS uses POOL in debug mode to avoid -segmentation faults discovered elsewhere in the code). -I downloaded POOL into a separate project area than COOL. -Using the POOL standard environment everything works fine: -the test executes successfully in non-debug mode. - - cd ~/myLCG/ - rm -rf POOL_2_0_3 - setenv SCRAM_ARCH rh73_gcc323 - scram project POOL POOL_2_0_3 - cd POOL_2_0_3/ - setenv CVSROOT :kserver:pool.cvs.cern.ch:/cvs/POOL - cvs co -r POOL_2_0_3 OracleAccess - cd OracleAccess/tests/CLOBInputOutput/ - mv clobInputOutput.cpp clobInputOutput.cpp.OLD - mv authentication.xml authentication.xml.OLD - cp ~/myLCG/COOL_HEAD/src/RelationalCool/tests/ClobIO/clobInputOutput.cpp . - cp ~/myLCG/COOL_HEAD/src/RelationalCool/tests/ClobIO/authentication.xml . - scram b - which unitTest_OracleAccess_CLOBInputOutput - unitTest_OracleAccess_CLOBInputOutput - -I try again using the debug version. This one causes a segmentation fault! -The POOL debug library causes a segmentation fault when using CLOBs in Oracle. -[Note: scram setup is probably not needed, it does nothing.] - - setenv SCRAM_ARCH rh73_gcc323_dbg - cd ~/myLCG/POOL_2_0_3/src/OracleAccess/tests/CLOBInputOutput > - scram setup - scram b - eval `scram runtime -csh` - which unitTest_OracleAccess_CLOBInputOutput - unitTest_OracleAccess_CLOBInputOutput - -Note that my own modifications to the test only change the debug level and the schema. -I need to change the schema because the POOL default test uses an unknown database. -I tested in any case that changing the message level from Info to Debug is not -what causes the problem. The segmentation fault appears also if the level is Info. - -Changes between the POOL standard test and my test: -==> diff clobInputOutput.cpp clobInputOutput.cpp.OLD -179,180c179 -< //pool::POOLContext::setMessageVerbosityLevel( seal::Msg::Info ); -< pool::POOLContext::setMessageVerbosityLevel( seal::Msg::Verbose ); ---- -> pool::POOLContext::setMessageVerbosityLevel( seal::Msg::Info ); -183,184c182 -< // std::string connectionString = "oracle://test10g/ioannis"; -< std::string connectionString = "oracle://devdb/conddb_test"; ---- -> std::string connectionString = "oracle://test10g/ioannis"; -==> diff authentication.xml authentication.xml.OLD -14,17d13 -< -< -< -< - -Output from the program (within gdb): -==> gdb unitTest_OracleAccess_CLOBInputOutput -GNU gdb Red Hat Linux (5.2-2) -Copyright 2002 Free Software Foundation, Inc. -GDB is free software, covered by the GNU General Public License, and you are -welcome to change it and/or distribute copies of it under certain conditions. -Type "show copying" to see the conditions. -There is absolutely no warranty for GDB. Type "show warranty" for details. -This GDB was configured as "i386-redhat-linux"... -(gdb) r -Starting program: /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_0_3/rh73_gcc323_dbg/tests/bin/unitTest_OracleAccess_CLOBInputOutput -LOCALRT: /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_0_3 -ORACLE_HOME not set -[New Thread 1024 (LWP 21112)] -POOL/Services/RelationalService Info Found plugin for RDBMS technology "mysql" with implementation "odbc" -POOL/Services/RelationalService Info Found plugin for RDBMS technology "oracle" with native implementation -POOL/Services/RelationalService Info Found plugin for RDBMS technology "sqlite" with native implementation -POOL/Services/RelationalService Info Default implementation for RDBMS technology "mysql" is "odbc" -POOL/Services/RelationalService Info Default implementation for RDBMS technology "oracle" is native -POOL/Services/RelationalService Info Default implementation for RDBMS technology "sqlite" is native -Connecting... -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 9.2.0.6.0 -Starting a new transaction -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'CONDDB_TEST'" -Deleting table "DataTable" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "CONDDB_TEST"."DataTable"" -Creating table "DataTable" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "CONDDB_TEST"."DataTable" ( "id" NUMBER(10), "data" CLOB )" -Adding a row into the table -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "CONDDB_TEST"."DataTable" ("id","data") VALUES (:"id",:"data")" -Adding a second row into the table -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "CONDDB_TEST"."DataTable" ("id","data") VALUES (:"id",:"data")" -Committing... -Disconnecting... -Connecting... -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 9.2.0.6.0 -Starting a new transaction -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'CONDDB_TEST'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "id", "data" FROM "CONDDB_TEST"."DataTable"" -Program received signal SIGSEGV, Segmentation fault. -[Switching to Thread 1024 (LWP 20859)] -0x407ef2cf in kpccld2i () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 - -Stack trace from gdb at this point: -==> (gdb) bt -#0 0x407ef2cf in kpccld2i () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#1 0x407da72b in ttccfpg () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#2 0x407d95b6 in ttcfour () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#3 0x407ceab7 in ttcdrv () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#4 0x4066590d in nioqwa () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#5 0x404e1366 in upirtrc () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#6 0x4047801d in kpurcsc () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#7 0x405824a8 in kpufch0 () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#8 0x405832fb in kpufch () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#9 0x404ab067 in OCIStmtFetch2 () - from /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/rh73_gcc323/lib/libclntsh.so.10.1 -#10 0x400b57fc in pool::OracleAccess::OracleStatement::fetchNext() (this=0x80f4878) - at /afs/cern.ch/sw/lcg/app/releases/POOL/POOL_2_0_3/src/OracleAccess/src/OracleStatement.cpp:635 -#11 0x4008e8be in pool::OracleAccess::OracleCursor::next() (this=0x8082af8) - at /afs/cern.ch/sw/lcg/app/releases/POOL/POOL_2_0_3/src/OracleAccess/src/OracleCursor.cpp:117 -#12 0x0804f281 in readClob(std::string const&) (connectionString=@0xbfffc0c0) - at /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_0_3/src/OracleAccess/tests/CLOBInputOutput/clobInputOutput.cpp:140 -#13 0x0804faef in main () - at /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_0_3/src/OracleAccess/tests/CLOBInputOutput/clobInputOutput.cpp:189 -#14 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6 - ------------------------------------------------------------------------------ -Problem #2: Feedback about the RAL API (07.04.2005) ------------------------------------------------------------------------------ - -The present RAL interface has some limitations in handling tables where -columns with the same C++ type are stored using different SQL types. -Presently non-default SQL types can only be set at the session level -using the type converter, not on individual table columns. -The present workaround is that columns must be individually altered, or dropped -and recreated using a new SQL type mapping temporarily set at the session level. -A new RAL API is being designed to overcome this problem. - -Feedback for the new RAL design: -1. The RAL interface should allow to specify some kind of SQL-type 'hint' -for individual columns already when creating the table. -2. The "size" of the SQL type should be a part of the hint. For strings, for -instance, RAL should automatically decide that 255-size strings can use VARCHAR2(255) -on Oracle and VARCHAR(255) BINARY on MySQL, but 4000-size strings can use -VARCHAR2(4000) on Oracle and need TEXT on MySQL. -3. The "size" alone is not enough. Strings can be mapped to DATE, for instance. -The RAL interface for creating a table should allow users to specify that a -string is stored as DATE. reserving a special size value for this seems awkward. -Other examples may include CHAR vs VARCHAR2, for instance, with the same size. -4. The "size" should not only be used in creating the table, but also in inserting -(and reading back?) data: for instance, if the type is specified as 4000-size -maximum but is stored as TEXT in MySQL, a 5000-size string could be stored in MySQL. -RAL should throw an exception. This should make sure that data can safely be -transferred to Oracle, where VARCHAR2(4000) would be used. This also means that -an SQL-type hint alone is also not enough (one may indicate TEXT or CLOB but may -also want to indicate a maximum size). -5. The "size" (and eventually maybe also the DATEness or CHAR/VARCHAR) of -each attribute is presently being added in COOL to a wrapper for the POOL -AttributeListSpecification class. It may be useful to review this class -so that an extended AttributeListSpecification with size or other SQL-related -information can be derived from the POOL AttributeListSpecification -and included in POOL. Or maybe this information can simply be added to the -new POOL AttributeListSpecification. - ------------------------------------------------------------------------------ -Problem #3: ALTER TABLE constraints in Oracle (07.04.2005) ------------------------------------------------------------------------------ - -The initial implementation I tried to change the payload specification -column from the RAL default to CLOB was using the ALTER TABLE statement -(via the RAL modifyColumn interface). - -However, changing a VARCHAR to CLOB is not possible (ORA-22858). -Similarly, changing a CLOB to VARCHAR to CLOB is also not possible (ORA-22859). - -Solution: the COOL implementation now drops and recreates columns. -In order not to change the column order, all columns following the first -column whose SQL type needs to be changed are also dropped and recreated. - ------------------------------------------------------------------------------ -Problem #4: modifying column types did not seem to work in MySQL (07.04.2005) ------------------------------------------------------------------------------ - -Both the alter table and the drop/recreate column solution seemed to give -problems also in MySQL. Using DESC table in TOra, the old schema was printed. - -Solution: thanks to Rado, I found out that the reason is that TOra has a schema -cache that it does not refresh. One should use the TOra schema browser for the -specified table to make sure the table schema is refreshed. Another possibility -is to use the SHOW CREATE TABLE statement in MySQL, which is guaranteed -to print out the full correct schema of a table. - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.gmt b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.gmt deleted file mode 100644 index 2833461415734..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.gmt +++ /dev/null @@ -1,44 +0,0 @@ -Brief summary of the problem with GMT times which caused Windows -unit tests to fail on the first attempted release of COOL_1-2_0. - -An IOV is stored with a string '13:38 GMT' in the table. -The problem is that tagAsOfDate tries to use the string '12:38 GMT'. - -Let's look at what happens at retrieval after insertion. -1. findObject calls findSingleVersionObject where - - fetchObjectTableRowAtTimeSV retrieves the string in an AttributeList - - RelationalObjectTable::decodeRow transforms AttributeList into IObject -2. RelationalObjectTable::decodeRow - - transforms the string into a seal::Time using stringToTime - - calls the RelationalObject constructor with a seal::Time argument -3. RelationalObject constructor - - transforms seal::Time into nanosec (no 'local' argument needed) - - calls seal::Time constructor from nanosec argument (no 'local' argument) - - stores the date as a seal::Time -4. RelationalObject::insertionTime() - - returns a reference to the seal::Time -5. tag( asOfDate ) - - takes a seal::Time argument - (prints it out to screen using timeToString) - - calls fetchObjectTableRowsForTagging with the same seal::Time argument - (prints it out to screen using timeToString) -6. fetchObjectTableRowsForTagging - - binds the argument as string using timeToString - -In summary, this is what happens: - "13:38 GMT" (stored in IOV) - -> convert to seal::Time by stringToTime in RelationalObjectTable::decodeRow - -> convert to int64 by ns() in RelationalObject constructor - -> convert to seal::Time by constructor in RelationalObject constructor - -> convert to string by timeToString in fetchObjectTableRowsForTagging - -The problem must be either -- in seal::Time::ns() and seal::Time( ns ) -- in timeToString and stringToTime - -PS The bug was identified in the seal::Time constructor. -When converting using GMT times, tm_isdst should be set to 0. -Note that gmtime(timegm(tm)) is always equal to tm on Windows -only if isdst=0: if isdst=+1/-1, a one hour difference is observed -for instance in January/April. Note also that calling timegm -alters the value of the original tm. diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.standalone b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.standalone deleted file mode 100644 index e0c4b84f3ba9d..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/README.standalone +++ /dev/null @@ -1,221 +0,0 @@ ------------------------------------------------- -Standalone installation on Windows (20.04.2005) ------------------------------------------------- - -Login a bash shell under cywgin. - - bash - -Follow the instructions in - - http://spi.cern.ch/workbook/howto/HowTo-Install-locally-lcg-software.html - -Create a directory /opt/sw/lcg in cygwin. -[In my case, first do 'ln -sf /cygdrive/l /opt' to create it on the L: disk] - - mkdir -p /opt/sw/lcg - -Download the installation script -Change the python version from 2.2 to 2.4 - - cd /opt/sw - wget http://service-spi.web.cern.ch/service-spi/external/distribution//lcg-installation-manager.py - cat lcg-installation-manager.py | sed 's/python2.2/python2.4/' > lcg-installation-manager.py.NEW - \mv lcg-installation-manager.py.NEW lcg-installation-manager.py - chmod +x ./lcg-installation-manager.py - -Download the required packages - - ./lcg-installation-manager.py --project=POOL_2_0_4 \ - --arch=win32_vc71_dbg --prefix=/opt/sw/lcg download - -This does not work! - - fetching file: - /opt/sw/lcg/external/distribution//POOL_2_0_4__LCG_win32_vc71_dbg.info - ERROR: could not download the file : POOL_2_0_4__LCG_win32_vc71_dbg.info - fetching file: /opt/sw/lcg/external/distribution//POOL_2_0_4.scram_output - ERROR: could not download the file : POOL_2_0_4.scram_output - Most probably POOL_2_0_4 is not available in the LCG software repository... - Please report this to LCG SPI - -Andreas confirms that there are some known problems on Windows. -The installation via the python script does not work on Linux, -but other /afs/cern.ch/sw/lcg/app/spi/tools/latest/scripts/ -solutions are possible, for instance one can look at -/afs/cern.ch/sw/lcg/app/spi/tools/latest/scripts/lcg-mirror-externals.bat - -...to be continued... - ------------------------------------------------- -Standalone installation on Windows (21.06.2005) ------------------------------------------------- - -Tried again the same as above, it does not work again. - -Try using the lcg-mirror-externals.bat script. -I tried by myself but failed miserably. - -Finally found some useful doc from SEAL on -http://seal.web.cern.ch/seal/snapshot/workbook/howtorelease.html - -1. Add environment variable AFS with value \\afs in MyComputer->Properties. - -2. Create directory "C:\Documents and Settings\avalassi\mycmt" -as this is needed by CMT. - -3. Copied lcg-mirror-externals.bat and lcg-mirror-externals.py -from /afs/cern.ch/sw/lcg/app/spi/tools/latest/scripts/ -to L:\sw and made them more verbose to debug them. - -4. From a command prompt in L:\sw I execute - lcg-mirror-externals -v 35 -p win32_vc71_dbg -o L:\sw\lcg\external - -But this only copies the LCGCMT package... - -Andreas proposed -/afs/cern.ch/user/p/pfeiffer/public/scripts/syncWinTree.py -but in the meantime I had done my own solution (see below). - -Removed AFS variable from MyComputer at the end. - ------------------------------------------------- -Standalone installation on Windows (21.06.2005) ------------------------------------------------- - -Developed my own script. -This creates a script on Windows, -executed on Linux to create a tar file of AFS, -the tar is then shipped back to Windows. -This is to avoid file copying over AFS on Windows. - -I also use a little script to download POOL locally, -rather than using CVS from Windows directly. -There seems to be a problem with CVS (or the SCRAM -installer using CVS) on Windows, it gets stuck. -Note also that I had to do (like on Mac!) - cp /afs/cern.ch/user/a/avalassi/.cvspass /tmp/79125CVSmodule/.cvspass -(where id gives 79125 for avalassi on cygwin), but this was not enough. - -1. On Windows (cygwin) ~ 1 minute - -From the standard COOL_HEAD using SITENAME=CERN: - -cd ~/myLCG/COOL_HEAD/config -coolMirrorExternals.csh - -2. On lxb0675 ~ 6 + 2 minutes - -cd ~/myLCG/COOL_HEAD/config -./coolMirrorExternals-win32_vc71_dbg.csh -scp /opt/avalassi/coolKit-win32_vc71_dbg/sw/lcg-win32_vc71_dbg.tar \ - avalassi@pcitdb38:/opt/sw - -(NB The archive is ~950 MB if it includes POOL and ~590 MB if it does not) - -3. On Windows (cygwin) ~ 4 minutes - -date -cd /opt/sw -rm -rf /opt/sw/lcg -tar -xvf lcg-win32_vc71_dbg.tar > lcg-win32_vc71_dbg-tar.txt -date - -4. On lxb0675 ~ 2 minutes - -cd ~/myLCG/COOL_HEAD/config -./coolInstallPool.csh -scp /opt/avalassi/poolKit/sw/lcg-POOL_2_1_0.tar \ - avalassi@pcitdb38:/opt/sw - -(NB The archive is ~3 MB) - -5. On Windows (cygwin) ~ few seconds - -cd /opt/sw -rm -rf /opt/sw/lcg/app/releases/POOL -tar -xvf lcg-POOL_2_1_0.tar > lcg-POOL_2_1_0-tar.txt - -6. On Windows (cygwin) - -Stop the AFS service and start a new cygwin window. - -cd /opt/sw/lcg/app/releases/POOL/POOL_2_1_0/ -export SITENAME=STANDALONE -export PATH=/opt/sw/lcg/app/spi/scram:$PATH -scram setup - -cd /opt/sw/lcg/app/releases/POOL/POOL_2_1_0/src -export SITENAME=STANDALONE -export PATH=/opt/sw/lcg/app/spi/scram:$PATH -date -scram b -date - -This is in any case rather slow (~35-40 minutes), -but at least it does work standalone and is faster than with AFS. -The CPU consumption is always around ~50% spread across two CPUs (25% each). -The largest CPU consupmption comes from python (peaks of 40% on one CPU). -Also perl shows up but never with as high CPU peaks as python. -One problem may be that there is not a single python process, -but rather very many python processes that start and finish. -With AFS, a lot of CPU was eaten up by the AFS daemons. - ------------------------------------------------------ -Standalone COOL installation on Windows (21.06.2005) ------------------------------------------------------ - -1. On lxb0675 - -This uses a siple private script to create a tar of the COOL_HEAD. - -cd ~/myLCG -./installCoolHead-local.csh -scp ~/myLCG/coolKit/COOL_HEAD.tar avalassi@pcitdb38:/opt - -2. On Windows (cygwin) - -cd /opt/ -rm -rf /opt/COOL_HEAD -tar -xvf COOL_HEAD.tar > COOL_HEAD-tar.txt - -3. On Windows (cygwin) - -Stop the AFS service and start a new cygwin window. - -cd /opt/COOL_HEAD -export SITENAME=STANDALONE -export PATH=/opt/sw/lcg/app/spi/scram:$PATH -scram setup - -cd /opt/COOL_HEAD/src -export SITENAME=STANDALONE -export PATH=/opt/sw/lcg/app/spi/scram:$PATH -date -scram b -date - -This is a factor ~5 faster than with AFS, -but it is still very slow (~50 minutes!). -Definitely scram is extremely slow (especially) on Windows. -With the CMT VisualStudio plugin things were MUCH faster. -Note that perl shows up more than for POOL, -but still python seems to be the bottleneck. - -NB: HOW TO IMPROVE? -It looks like python is the bottleneck (but maybe not the only one - -perl also shows up significantly in no-op mode on a prebuilt COOL). -1. One idea could be to try to precompile all .py files from the config -area into .pyc files (but should Python not compile them automatically?). -The only file that appears to be compiled as .pyc is unixToWinPath.py, -however other files are used too (I tried to remove all .py and execute -"scram b", the first errors were from other py modules missing. -However I gave a first quick try at this and it does not seem to help -(try also 'python unixToWinPath.py xxx' or 'python unixToWinPath.pyc xxx', -they are both very slow and not very different from each other). -2. Another possibility is to get rid of python and use instead precompiled -C++ programs or even just bash scripts inside the makefile fragments -(for unixToWinPath.py this should be rather easy). -3. However also perl and possibly other problems may show up. -It may be useful to do a no-o dry run of scram and measure where -the time is actually spent. diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/release.notes b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/release.notes deleted file mode 100755 index 47a0c42ec283f..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/doc/release.notes +++ /dev/null @@ -1,3026 +0,0 @@ -Package RelationalCool -Package managers: Andrea Valassi, Sven A. Schmidt and Marco Clemencic -Package contributors: Uli Moosbrugger, Romain Basset. - -============================================================================== -TODO -- Remove RelationalTableRow (replace it by Record) -- Rename defaultSpecification as metadataSpecification -- Rename fetchLastRowXXX as fetchLastRowMetadataXXX -- Add option to select only certain payload columns - -============================================================================== -!2009.04.27 - Marco - -Modified the level of the message NO SCHEMA EVOLUTION REQUIRED from warning to -info. -https://savannah.cern.ch/bugs/?49495 - -============================================================================== -!2008.11.10 - Andrea - -Internal doc for tag COOL_2_6_0. - -Summary of changes in RelationalCool with respect to COOL_2_6_0-pre6: -- Change API and implementation to replace 'const int f()' by 'int f()' - and get rid of gcc43 compilation warnings (bug #42584, aka task #8261). -- Fix bug #43622 (slow performance: countObjects must not call browseObjects). -- Use the new CORAL API ISession::remoteProperties (sr #103545) to determine - the remote database technology even when forwarded through a CORAL server. - -============================================================================== -!2008.10.21 - Andrea - -*** BRANCH RELEASE NOTES *** - -Tag COOL_2_4_0b. Rebuild of the 2.4.0a release for the LCG_54h configuration. -Add support for Oracle on MacOSX. Bug fixes in CORAL and frontier_client. -No change in the source code. Software version remains "2.4.0". - -NB: None of the _code_ changes in COOL_2_4-branch are released in COOL_2_4_0b! -NB: [there is one minor exception, RelationalCool/tests/RelationalDatabaseId] -NB: Only the _config_ branch changes are released in COOL_2_4_0b! - -Actually, some of the implementation files tagged as COOL_2_4_0b have a -different version number than those tagged as COOL_2_4_0a: they were committed -unchanged to the COOL_2_4_x branch and then retagged as CORAL_2_4_0b. - -============================================================================== -!2008.10.16 - Andrea - -Internal tag COOL_2_6_0-pre5-bis ('2008/10/16 10:00:00'). - -Changes in RelationalCool with respect to COOL_2_6_0-pre5: -- Performance optimization: issue COUNT(*) queries only on demand (task #7971). - This implies a minor backward-incompatible change in the CoolKernel API: - remove const qualifier from IObjectIterator methods size, isEmpty, hasNext. -- Remove '(forcereload=short)' from the aliases in dblookup.xml. - Use the environment variable FRONTIER_FORCERELOAD in QMTEST - to force the immediate refresh of Frontier short-lived cached queries. -- Define CORAL linkopts using the NEEDS_CORAL_BASE macro - (fix for LCGCMT bug #41579: link RelationalAccess only if needed). -- Start the port to gcc4.3. - Add missing STL headers to the implementation code. - Add gcc43 to all .cvsignore files. - -============================================================================== -!2008.09.27 - Andrea - -Internal tag COOL_2_6_0-pre5 (-D '2008/09/27 10:00:00'). - -Changes in RelationalCool with respect to COOL_2_6_0-pre4: -- Major internal cleanup of 'Ral' (CORAL) and 'Relational' (generic) classes. - > Add a generic cool::IRelationalCursor to handle relational queries. - This is returned by new method RelationalQueryMgr::prepareAndExecuteQuery. - Implement it as a RalCursor (wrapper for a CORAL ICursor). - Use it to replace RalObjectIterator by a generic RelationalObjectIterator. - Remove the old commened out COOL210 RalObjectIterator implementation. - Remove the registerIterator method (already commented out). - Replace the RalObjectIterator test by a RelationalObjectIterator test. - > Add static qualifier for RalQueryMgr methods - cursorNext and executeQuery (for TimingReport). - Identify COOL sessions by their IRelationalTransactionMgr - (rather than the RalSessionMgr) in ObjectIteratorCounter. - Add a RelationalQueryMgr::clone() method. - Use a RelationalQueryMgr instead of a RalSessionMgr - in the RelationalObjectIterator constructor. - > Replace RalObjectMgr by generic RelationalObjectMgr. - The browseObjects method now returns a generic RelationalObjectIterator. - Remove the session method (not used). - Remove the sessionMgr method (inline it in implementation). - Remove the objectIdSequence method (inline it in implementation and tests). - Remove the unused storeObjects method (move it to the test); - keep the __storeObjects method (which does not start a transaction). - Replace the RalObjectMgr test by a RelationalObjectMgr test. - > Add RelationalQueryMgr::bulkUpdateTableRows for bulk updates. - Use the cool::RelationalQueryMgr bulk inserter and updater - in the implementation of RelationalObjectMgr. - > Replace RalObjectTable by generic RelationalObjectTable. - Replace the RalObjectTable test by a RelationalObjectTable test. - -============================================================================== -!2008.09.25 - Andrea - -Internal tag COOL_2_6_0-pre4. - -Summary of changes in RelationalCool with respect to COOL_2_6_0-pre3: -- Fix bug #40812 (insertionTimeOfLastObjectInTag for user tags). Add tests. -- Fix bug #41735 (add missing sequence tables to the coolPrivileges tool). -- Fix bug #42101 ("HEAD" tag not accepted for browsing SV folders). Add a test. -- Fix message printouts in log() for RalObjectMgr and RelationalObjectTable. -- Partial fix for bug #17903 (bulk insertion for MV [key,key+1] uses single - row insertion). Alg can be tuned using COOL_MVINSERTION_PREFETCH_MAXROWS. - Better performance observed when inserting over void. Abother improvement - (missing bulk updates) is needed for inserting over existing IOVs. - Add QMTEST tests for both the old and new algorithm. -- Add coolPrivileges logfiles to document the granted privileges (task #7825). - -============================================================================== -!2008.09.11 - Andrea - -Internal tag COOL_2_6_0-pre3. - -Summary of changes in RelationalCool with respect to COOL_2_6_0-pre2: -- Check for any missing tables in the coolValidateSchema tool (task #7691). - Differentiate between warnings, errors and fatal errors in the final dump. - Add a standalone test (using brute force to manually drop a table). -- Add a test for bug #36646 (metadata fields are visible in IObject::payload). -- Remove COOL workaround for CORAL bug #40315, aka COOL bug #40295 (rows not - deleted from coral_sqlite_fk when tables are dropped). Now fixed in CORAL. -- Add link options for Boost date_time after adding /DBOOST_ALL_NO_LIB for vc9. -- Drop inheritance of RelationalTransaction on ITransaction (#ifdef COOL270). -- Include in RelationalCool/tests/dblookup.xml the lcgnight entries from - /afs/cern.ch/sw/lcg/app/pool/db/dblookup.xml, for consistency. - -============================================================================== -!2008.09.01 - Andrea - -Internal tag COOL_2_6_0-pre2. - -Summary of changes in RelationalCool with respect to COOL_2_6_0-pre1: -- Implement addition of IOVs to partially locked tags (task #6541), add tests. -- Fix bug #40353 (do not modify verbosity if COOL_MSGLEVEL is not set). -- Remove the dependency of RelationalCool on CoolApplication. - Keep the dependency of RelationalCool on CoolKernel. - Keep the dependency of CoolApplication on RelationalCool. - Adapt all implementation code and tests. -- Change '#ifdef COOL260' into '#ifdef COOL270'. -- Disable the internal manual transaction handling if COOL270 is not defined. -- Add infrastructure for tests of the Frontier Squid cache (task #3440). - > Update the dblookup.xml file using the complex frontier URL syntax. -- Move RelationalObjectTable methods fetchRowsInTag, fetchRowsInHead, - fetchRowsInPastHead out of src into RalObjectTableTest (task #7646). - -============================================================================== -!2008.08.27 - Andrea - -Internal tag COOL_2_6_0-pre1. - -Summary of changes in RelationalCool with respect to COOL_2_5_0: -- Upgrade software version to COOL 2.6.0. -- Implement payload queries (server-side for FieldSelection and - CompositeSelection, client-side for any other IRecordSelection). - This functionality is protected behind#ifdef COOL260. - > Add class RelationalPayloadQuery. - > Add functional tests for server-side and client-side payload queries - (using a SelectionWrapper test class for the latter). -- Implement manual transaction handling and add test for several use cases. - This functionality is protected behind #ifdef COOL260. - > RelationalTransaction implements ITransaction if COOL260 is defined. - > Add RelationalFolder::maxBufferSize(). - > Add RelationalObjectMgr::__storeObjects. - > Add RalObjectMgr::__storeSingle/MultiVersionObjects. - > Modify the internal transaction manager interface and classes. -- Add virtual destructor for RelationalTransaction. -- Fix bug #22474 (bulk insertion is split across many transactions). Add test. -- Fix bug #38251 (hints ignored in COUNT(*) queries). -- Fix performance for 'SELECT COUNT(*) FROM ( subquery )' queries - by including again the list of selected columns in the subquery, - which had been removed between COOL 2.4.0 and COOL 2.5.0 (task #6482) -- Use the new goToNext API instead of the obsolete hasNext API - in the internal implementation of RalObjectIterator2. -- Enhance the coolAuthentication tool to display all CORAL replicas. - > Add option to display only 1st replica (R/O or R/W) or 1st R/W replica. - > Fix a small memory leak (related to CORAL bug #40507). - > Port the new features to the CoolAuthentication python package too -- Workaround for Windows VC9 bug #40142: #undef symbols 'DELETE' and 'ERROR' -- Workaround for Windows VC9 bug #40143: specify namespace in cool::MSG. -- Remove workaround in the replication tool for SQLiteAccess bug #24867 - (workaround was to avoid dropping and recreating FKs during replication) - > But the SQLiteAccess bug is not fully fixed and COOL tests fail - (see also CORAL bug #40315 and COOL bug #40327) -- Add workaround for CORAL bug #40315 (coral_sqlite_fk not updated when - tables are dropped), aka COOL bug #40295 (error messages for sqlite) -- Implement RelationalObjectTable::fetchRowsInHead using - queryDefinitionGeneric insted of whereDataHead and whereClauseHead. -- Rename RelationalObjectTable::fetchLastRow as fetchLastRowSV and comment - it out (it is only present, commented out, in test_RalObjectTable). -- Remove RelationalObjectTable::fetchRowAtTimeInTag. This was already not - used, except in one test (which has been kept with inlined implementation). -- Remove RelationalObjectTable methods whereClauseHead, whereDataHead, - whereClauseTag, whereDataTag. These were already not used, except in tests. -- Add empty skeleton for RelationalFolder::truncateObjectValidity(). -- Small fix in the schema evolution tool using CORAL msgVerbosity(). -- Temporary workaround for Boost 1.35.0 bug (warnings from Boost headers). -- Get rid of cool::Sleep (use cool::sleep everywhere). -- Add cmt/version.cmt to prepare support for the latest CMT version. -- Remove the old test infrastructure using bash scripts. -- Remove SCRAM configuration fragments. -- Remove SeaUtil_SealTimer.h (keep SealUtil_SealTimer.h). - -============================================================================== -!2008.07.16 - Andrea - -Copy back COOL_2_4_0a code into COOL_2_4-branch. - -This removes a useful bug fix but also some performance improvements we -were not really sure about. Make the COOL_2_4-branch clean to be released. - -============================================================================== -!2008.07.16 - Andrea - -Add workaround for LCGCMT bug #38934 (python module installation is broken -by LCGCMT_55a). This was removed immediately after the LCGCMT bug fix. - -[Changes included by Andrea in COOL_2_4-branch on 2008.07.16] - -============================================================================== -!2008.06.10 - Andrea - -Tag COOL_2_5_0. Production release with API semantic changes, API extensions -and package structure changes to remove the dependency on SEAL. -Upgrade to LCG_55 using the 'de-SEALed' CORAL_2_0_0. - -Summary of changes in RelationalCool with respect to COOL_2_4_0a -(refer to the web release notes for more details): -- CMT package structure changes. -- Remove internal dependency on SEAL - > De-SEAL all tests and utilities. - > Replace seal::TimeInfo::sleep with a sleep function based on Boost. - > Import the SealUtil timing classes (after removing what is not needed). -- Add new internal class CoralConnectionServiceProxy. -- Performance improvements (many many changes). -- There may be more changes that are only documented in the web release notes! - -============================================================================== -!2008.06.04 - Andrea - -*** BRANCH RELEASE NOTES *** - -Tag COOL_2_4_0a. Rebuild of the 2.4.0 release for the LCG_54g configuration. -Port to osx105 and .so shared lib names on MacOSX. Changes in CORAL and ROOT. -No change in the source code. Software version remains "2.4.0". - -NB: None of the _code_ changes in COOL_2_4-branch are released in COOL_2_4_0a! -NB: Only the (osx105) _config_ branch changes are released in COOL_2_4_0a! - -============================================================================== -!2008.05.21 - Marco - -Added a COOL specific implementation of coral::IMsgReporter. -It is activated setting the environment variable USE_COOL_MSGREPORTER, and the -level can be tuned with COOL_MSGLEVEL (by default it is "ERROR"). - -============================================================================== -!2008.04.18 - Marco - -Fixed bug #35734: compilation error on Windows after removeal of SEAL. - -============================================================================== -!2008.04.11 - Marco - -Removed dependency on SEAL. -- De-SEAL all tests and utilities. -- Replace seal::TimeInfo::sleep with a sleep function implemented using Boost. -- Import the SealUtil timing classes (after removing what is not needed). - -============================================================================== -!2008.04.09 - Andrea - -Algorithmic fix: the internal implementation classes exchange a shared pointer -to a connection service proxy (CoralConnectionServiceProxy) rather than a -service reference. The proxy contains a pointer that is reset to null when the -COOL database service is deleted (the CORAL connection service may or may not -continue to exist, but is declared to be unusable). Adapt utilities and tests. - -============================================================================== -!2008.04.10 - Andrea - -Include a modified version of Jaco Kroon's signal handler. -See http://www.tlug.org.za/wiki/index.php/Obtaining_a_stack_trace_in_C_upon_SIGSEGV -and http://cool.cvs.cern.ch/cgi-bin/cool.cgi/cool/contrib/ExternalTests/SignalHandler/src/sigsegv.cpp - -This is enabled only if environment variable COOL_ENABLE_COOLSIGNALHANDLER -is set (this replaces COOL_ENABLE_SEALSIGNALHANDLER and the SEAL handler). - -============================================================================== -!2008.04.09 - Andrea - -Modify some of Marco's changes to remove SEAL. -- In COOL_2_4_0, RalDatabaseSvc could be loaded as a SEAL plugin - (either through CoolApplication or directly from a seal Context). -- In Marco's code, RalDatabaseSvc could be loaded as a Reflex plugin. -- In the present code, RalDatabaseSvc is linked directly to CoolApplication. - -Method IApplication::connectionSvc returns a reference (rather than -a shared pointer) to the coral::IConnectionService. This reference -is exchanged internally between all relevant RelationalCool classes. - -Class Application is implemented by instantiating a CoralApplication -from the RelationalCool library. Class CoralApplication is needed in -RelationalCool to implement tests and utilities: it cannot be in -CoolApplication as otherwise there would be a circular dependency. - -Modify all tests and utilities so that they bootstrap COOL using the -CoralApplication class from RelationalCool rather than the Application -or DatabaseSvcFactory classes from package CoolApplication. -Package CoolApplication is now built after RelationalCool. - -Remove the infrastructure to load RalDatabaseSvc as a Reflex plugin. - -Remove RalDatabaseSvcLabel.h (modules.cpp had already been removed) -because RalDatabaseSvc is not a SEAL plugin anymore. - -Internally replace seal::MessageStream by coral::MessageStream. -- WARNING: changing message verbosity has no effect yet. -- WARNING: retrieving message verbosity is not possible yet. -- WARNING: changing or retrieving message verbosity of an individual - cool::IApplication affects all COOL and CORAL applications because - this is implemented in coral::MessageStreams using static methods. - -Remove the dependency on Reflex, add a (temporary!) dependency on SEAL. -Remove the private dependency of RelationalCool on CoolApplication: -this would imply a circular dependency because now it is CoolApplication -that links the RelationalCool library (which is not a plugin anymore). - -Keep a dependency on CoolApplication headers only (class CoralApplication -implements the IApplication interface defined in package CoolApplication). - -Build the RelationalCool library as an LCG CMT 'shared' library -(not a Reflex 'plugin' library nor a SEAL 'module' library). - -Add build directives to mkdir the bin directory if it does not exist -(else scripts cannot be copied there). - -============================================================================== -!2008.04.03 - Andrea - -Remove lines containing 'Invalid folder node path' from the qmtest XML report. -This is needed in the SEAL-less HEAD version where Error messages -are not filtered out by the new message reporting infrastructure: -line 'ralDb->createFolderSet( "/my\folderset" )' triggers an error -printout with a binary character that fails the XML parsing. -This is not needed in COOL_2_4-branch but it is included for consistency. - -[Changes included by Andrea in COOL_2_4-branch on 2008.04.03] - -============================================================================== -!2008.04.03 - Andrea - -Improve summarizeAll.csh to accept one or more CMTCONFIG values as arguments -when building the qmtest result summaries. - -[Changes included by Andrea in COOL_2_4-branch on 2008.04.03] - -============================================================================== -!2008.04.02 - Andrea - -Created a COOL_2_4 branch off COOL_2_4_1-pre1 for the whole of COOL: - cvs rtag -r COOL_2_4_1-pre1 -b COOL_2_4-branch cool - -============================================================================== -!2008.04.02 - Marco - -Re-enabled LFC support in utilities. - -============================================================================== -!2008.03.20 - Marco - -Removed seal::Context. -cool::RalDatabase can be loaded as a Reflex plug-in. -All the references to seal::MessagesService have been removed and now only -coral::MessageStream is used. - -The tests have been updated, but the utilities are not yet ready. - -============================================================================== -!2008.03.03 - Andrea - -Internal tag COOL_2_4_1-pre1 (bug fixes). -The only changes wrt COOL_2_4_0 are in RelationalCool. - -============================================================================== -!2008.02.29 - Andrea - -Test the parsing of middleTier() in the RelationalDatabaseId class. - -============================================================================== -!2008.02.29 - Andrea - -Remove a few compilation warnings from cppunit the hard way -(remove all uses of CPPUNIT_TEST_EXCEPTION). - -============================================================================== -!2008.02.29 - Sven - -Fix for bug #33989 (setTagDescription should fail if called from wrong node). - -============================================================================== -!2008.02.29 - Andrea - -Test for bug #33989 (setTagDescription should fail if called from wrong node). - -============================================================================== -!2008.02.28 - Andrea - -Tag COOL_2_4_0. Production release with backward compatible API extensions. -Upgrade to LCG_54b using CORAL_1_9_5. - -============================================================================== -!2008.02.27 - Andrea - -Add a test for CORAL bug #33401 as reported by Richard for COOL (ORA-00904). - -============================================================================== -!2008.02.26 - Sven - -Implement IHvsNode::setTagDescription. -This modifies only the global tag table (not the local one). -It can be used to set the description of both IOV and HVS tags. -Add several tests for setTagDescription under various use cases. - -============================================================================== -!2008.02.26 - Andrea - -Prototype support for coralxxx://host:port&... URLs (CORAL server backend). -Add a few tests. - -============================================================================== -!2008.02.25 - Andrea - -Implement userTagOnly argument to IFolder::storeObject (task #6153), to allow -users to avoid the duplication of MV data in the global and user tag HEADs. -Add a few tests. - -============================================================================== -!2008.02.20 - Andrea (changes committed before COOL_2_3_1 but not tagged) - -Change the config: do not install the RelationalCool headers directory -even if it is found (this may happen if cvs co -P is not used). - -============================================================================== -!2008.02.19 - Andrea (changes committed before COOL_2_3_1 but not tagged) - -Upgrade software version to 2.4.0. - -Add two API extensions to be released as COOL_2_4_0: -- add IHvsNode::setTagDescription (task #6394), to allow users to first - create a tag (also as a user tag or HVS tag) and then set its description -- add userTagOnly argument to IFolder::storeObject (task #6153), to allow - users to avoid the duplication of MV data in the global and user tag HEADs - -Remove Sven's IFolder::setTagDescription from the API. -Keep the implementation, but comment it out: this should be moved to -RelationalHvsNode and should not modify the local tag table (to be ignored). -Comment out Sven's tests for setTagDescription. -The implementation of setTagDescription presently throws an exception. -No tests exist to check that this is the case. - -The implementation of storeObject( userTagOnly=true ) throws an exception. -Add a test for storeObject( userTagOnly=true ), checking that it throws. - -============================================================================== -!2008.02.18 - Sven (changes committed before COOL_2_3_1 but not tagged) - -Implement IFolder::setTagDescription. -This modifies both the global and local tag tables. -It cannot be used to set the description of HVS tags for folder sets. -Add several tests for setTagDescription under various use cases. - -============================================================================== -!2008.02.21 - Andrea - -Tag COOL_2_3_1. Bug-fix production release (binary compatible with 2.3.0) -with performance optimizations for multi-version retrieval and insertion. -Upgrade to LCG_54a including bug fixes in ROOT 5.18.00a. - -============================================================================== -!2008.02.13 - Andrea (-D '2008/02/13 19:30:00') - -Internal tag COOL_2_3_1-pre2 (bug fixes and performance optimizations). -Use the default LCG_54 (including ROOT 5.18) on all platforms. - -============================================================================== -!2008.02.13 - Romain and Andrea - -Performance optimization in MV insertion of IOVs with user tags (task #6086). -Part 2 of the optimization: performance improvement for the UPDATE statement. - -When new IOVs are inserted in MV mode, they may overlap with older IOVS that -were previously part of the HEAD: these IOVs need to be updated to mark that -they are not part of the HEAD any longer. The new UPDATE implementation uses -the same 'SELECT MAX(IOV_SINCE)' subquery used in most retrieval use cases -to speed up the lookup of which IOVS need to be updated. - -The latest implementation is enabled by default and reuses almost the same -SQL code that is defined in RelationalObjectTable::queryDefinitionGeneric -(originally developed for MV tag retrieval, task #5820). - -The old COOL_2_3_0 implementation is used by default for MySQL because of -an intrinsic limitation of MySQL (an UPDATE statement cannot update a table -which is also SELECTed from in a subquery of the UPDATE statement). -The old COOL_2_3_0 implementation can also be reenabled for the other -backends if the environment variable COOL_TASK6086_DISABLERBUPDATE is set. - -Limitation of the current implementation: a better SQL statement has been -designed for Oracle, but it cannot be implemented because of missing -support for hints in UPDATE statements in CORAL (sr #103420). - -============================================================================== -!2008.02.08 - Andrea - -Performance optimization in MV insertion of IOVs with user tags (task #5820). -All subqueries which can be rewritten ("merged") as multi-table joins (and -which the Oracle optimizer internally does merge this way) are now -consistently rewritten explicitly as multi-table joins. - -============================================================================== -!2008.02.08 - Andrea - -Performance optimization in MV insertion of IOVs with user tags (task #5820). -A consistent approach is used for naming SQL query blocks and table aliases -in different use cases, making the code much more readable and easier to -maintain and improve. Add several hooks for changing the default query hints -using environment variables for faster performance tests. - -============================================================================== -!2008.02.08 - Andrea - -Performance optimization in MV insertion of IOVs with user tags (task #5820). -When browsing for IOVS between times t1 and t2, the COALESCE function in SQL -is now used consistently (instead of OR or UNION ALL clauses) to concatenate -the IOVS valid at time t1 (since <= t1 < until) with the IOVS starting -between t1 and t2 (t1 < since < t2). - -============================================================================== -!2008.02.05 - Andrea - -Enable the RelationalObjectTable::queryDefinitionGeneric method also for -MV retrieval from standard tags (task #5820). This was previously handled -by method queryDefinitionTag, which now delegates most of its functionality -to the generic method (also used for user tags - task #6086). - -The same method is designed to also handle the SV case (but is not used in -production yet). It can also be adapted for MV HEAD retrieval. - -============================================================================== -!2008.02.05 - Romain and Andrea - -Performance optimization in MV insertion of IOVs with user tags (task #6086). -Part 1 of the optimization: performance improvement for the SELECT statement. - -============================================================================== -!2008.02.04 - Andrea - -Internal tag COOL_2_3_1-pre1 (bug fixes and performance optimizations). -Upgrade COOL software version to 2.3.1. - -============================================================================== -!2008.02.04 - Sven - -Fix for bug #32976 in the replication tool. - -============================================================================== -!2008.01.29 - Andrea - -Performance optimization for MV retrieval from standard HEAD tags (task #5820). -Main change: query the IOV2TAG table instead of the IOV table! -The new strategy is in RelationalObjectTable::queryDefinitionTag. - -============================================================================== -!2008.01.21 - Andrea - -Tag COOL_2_3_0. Production release with backward compatible API extensions. -Upgrade to LCG_54 using Python 2.5, ROOT 5.18 and several other new externals. - -PyCool is not supported on MacOSX because of bug #32770 in ROOT 5.18.00. -The COOL nightlies are all green (except for the PyCool tests on MacOSX). - -============================================================================== -!2008.01.17 - Andrea - -Undo the attempt at performance optimization for task #6086. -There was no clear performance benefit, and some penalty instead. -Keep the new code to be used in the future, but comment it out. - -============================================================================== -!2008.01.17 - Andrea - -Ensure that RelationalCool scripts are installed by 'cmt make all' -and not only by 'cmt make all_groups' (task #5835). - -============================================================================== -!2007.01.16 - Sven - -Fix bug #32610 in the replication tool when replicating databases -where renamePayload or extendPayloadSpecification has been used. - -============================================================================== -!2007.01.15 - Andrea - -Attempt at performance optimization for MV user tag insertion (task #6086). - -Add new RelationalObjectTable::queryDefinitionGeneric method that supports -both the SV and MV user tag cases, with improved queries on since/until. -Use this method in production also for the SV case (remove queryDefinitionSV). -Eventually this can be used in a more general reimplementation of all queries. - -============================================================================== -!2007.01.09 - Andrea - -New signature (record) for IFolder::extendPayloadSpecification (task #5742). -This allows users to add more than one columns at once and to specify -a non-null default value for the additional column of all existing rows. -Remove the old signature (name, type). Add tests for non-null default values. - -Warning: the replication tool has not yet been ported to support the new -IFolder::extendPayloadSpecification functionality (bug #32610). - -============================================================================== -!2008.01.08 - Andrea - -Disable CppUnit header warnings from gcc41 nightlies (task #5837). - -============================================================================== -!2007.12.19 - Andrea - -Internal tag COOL_2_3_0-pre1 (new COOL API extensions on standard LCG_53f). -All CMT tests successful, bash tests not updated. Software version is 2.3.0. - -============================================================================== -!2007.12.17 - Sven - -Complete task #4327 by adding a few new tests in test_RelationalFolder: - - CPPUNIT_TEST( test_findObjects_channelName_SV ); - CPPUNIT_TEST( test_findObjects_channelName_MV ); - CPPUNIT_TEST( test_findObjects_channelName_MV_tag ); - CPPUNIT_TEST( test_findObjects_channelName_MV_userTag ); - CPPUNIT_TEST( test_countObjects_channelName_SV_all ); - CPPUNIT_TEST( test_countObjects_channelName_SV_range ); - CPPUNIT_TEST( test_countObjects_channelName_MV_all ); - CPPUNIT_TEST( test_countObjects_channelName_MV_tag ); - CPPUNIT_TEST( test_countObjects_channelName_MV_userTag ); - -============================================================================== -!2007.12.17 - Andrea - -Centrally maintain credentials for the nightly builds (user lcgspi) in -/afs/cern.ch/sw/lcg/app/pool/db. Files authentication.xml and dblookup.xml -are automatically copied to the private directories on MacOSX and Windows -using Samba. Set CORAL_AUTH_PATH and CORAL_DBLOOKUP_PATH equal to -- /afs/cern.ch/sw/lcg/app/pool/db on Linux -- $HOME/private on MacOSX -- %USERPROFILE%\private on Windows - -Remove dblookup entries for users roiser and pkolet -(the nightly tests are only executed as user lcgspi). - -============================================================================== -!2007.12.16 - Sven - -Implemented channelName based ChannelSelection support for -browseObjects methods. Relevant tests are in test_RelationalFolder: - - CPPUNIT_TEST( test_browseObjects_channelName_SV_all ); - CPPUNIT_TEST( test_browseObjects_channelName_SV_range ); - CPPUNIT_TEST( test_browseObjects_channelName_MV_all ); - CPPUNIT_TEST( test_browseObjects_channelName_MV_tag ); - CPPUNIT_TEST( test_browseObjects_channelName_MV_userTag ); - -These should cover all possible where clauses used by browseObjects code. -The calls findObjects and countObjects also go through browseObjects. - -These changes almost complete task #4327. - -============================================================================== -!2007.12.14 - Andrea - -Upgrade COOL software version to 2.3.0. - -============================================================================== -!2007.12.13 - Andrea - -Split RelationalFolder and Channel tests. Workaround for COOL bug #27650 -(CORAL bug #28547): long tests fail because SQLite file descriptors are not -released (SQLite feature) and the maximum cannot be increased beyond 1024. - -============================================================================== -!2007.12.13 - Andrea - -Added enum value HvsTagLock::PARTIALLYLOCKED (task #4606). - -A PARTIALLYLOCKED tag behaves like a LOCKED tag except in the following cases: -1. It is possible to add a tag relation from a partially locked parent HVS tag -to a tag in a child HVS node (if no tag relation exists for that child node). - -Eventually, one or both of the following functionalities may also be added -(but for the moment, neither of them is implemented yet): -2. It is possible to add IOVs to a partially locked user tag, only if the -newly inserted IOVS have no overlap to those already existing in the user tag. -3. It is possible to retag the HEAD of a folder with a partially locked tag, -only if the retag operation only results in adding new IOVS to the tag. - -============================================================================== -!2007.12.13 - Andrea - -Disable the CORAL connection pool automatic cleanup if the environment -variable COOL_DISABLE_CORALCONNECTIONPOOLCLEANUP is set (bug #30435). -Disable it by default in COOL tests by modifying config/cmt/requirements. - -============================================================================== -!2007.12.13 - Andrea - -Added method IFolder::listChannelsWithNames (task #5868). -Added two tests in the RelationalFolder and RalDatabase test suites. - -Aborted attempts to add method IObject::channelName. The functionality -required by Atlas is provided by IFolder::listChannelsWithNames instead. - -============================================================================== -!2007.12.12 - Andrea - -Added method IFolder::extendPayloadSpecification (task #5742). -Added two tests in the RelationalFolder and RalDatabase test suites. - -============================================================================== -!2007.12.12 - Andrea - -Moved exception DatabaseOpenInReadOnlyMode to the public API (task #5743). -This was previously defined as a RelationalException in RelationalCool. - -============================================================================== -!2007.12.03 - Marco - -Added dblookup entries for uses pkolet and lcgspi for the SPI nightly tests. - -============================================================================== -!2007.11.26 - Sven - -Added channel selection by channel name in the ChannelSelection class. -Implemented channel selection by channel name in RelationalObjectTable.cpp. -Added four tests for the new selections to the ChannelSelection test suite. -Added test_browseObjects_channelName to the RelationalFolder test suite. - -============================================================================== -!2007.11.13 - Andrea - -Tag COOL_2_2_2. Production release (binary compatible with 2.2.0) with many -performance and configuration improvements and bug fixes. New versions of -CORAL and Frontier server (fixing all pending problems in the tests) and ROOT. -This is the first COOL release built by the SPI team (and no SCRAM config). - -============================================================================== -!2007.11.09 - Andrea/Romain - -Reimplement user tags queries using the new RelationalQueryDefinition. -This is needed to implement hints to use the 5d index for task #4381. - -Add the following hint to try and stabilize the execution plan: -/*+ ALL_ROWS FULL(T) INDEX(O (USER_TAG_ID)) LEADING(T O) USE_NL(O)*/. - -============================================================================== -!2007.11.08 - Andrea - -Internal tag COOL_2_2_2-pre2 (using private CORAL192 build and SEAL193 copy). -All CMT tests successful, bash tests not updated. Software version is 2.2.2. - -============================================================================== -!2007.11.07 - Andrea - -Upgrade software version to 2.2.2. - -============================================================================== -!2007.11.07 - Andrea - -Internal tag COOL_2_2_2-pre1 (using private CORAL192 build and SEAL193 copy). -All CMT tests successful (no pending Frontier failures). -Bash tests not updated (Wine failures are expected). - -============================================================================== -!2007.11.06 - Andrea - -Add tests for string and templated methods payloadValue (task #2859). -These methods were not tested anywhere in the C++ test suite before. -Test also FieldIsNull and FieldCppWrong from the templated method. - -============================================================================== -!2007.10.25 - Romain - -Performance improvement in IOV insertion by stabilizing the execution plan -for the 'select last IOV' query (in RalObjectMgr::fetchLastRowsWithNewData, -add hint "/*+ INDEX(C) INDEX_RS_ASC(O) LEADING(C O) USE_NL(C O) */", -replacing the previous "/*+INDEX(O)*/" hint that was not appropriate). - -============================================================================== -!2007.10.30 - Andrea - -Added a fake make target "examples" to please nmake (task #5414). - -============================================================================== -!2007.10.26 - Andrea - -Implement constraints on allowed characters in a node name (task #4371). - -Modified tests for bug #30751 and task #4371: -- test that creation of folder[set] with a trailing space in its name fails -- remove test of creation of two folder[set]s with almost the same name - -All tests are now successful (including MySQL). - -============================================================================== -!2007.10.26 - Andrea/Sven - -Added tests for bug #30751 and task #4371: -- test that creation of folder[set] with a trailing space in its name succeeds -- test creation of two folder[set]s with the same name but for a trailing space - -The second set of tests fails for MySQL because of an intrinsic limitation -of the MySQL 5.0 server ("x" and "x " are indistinguishable, for instance -in enforcing primary keys and in where clauses). - -============================================================================== -!2007.10.26 - Andrea - -Fix schema evolution tool so that UK/FK errors from CORAL are not printed -when the corresponding exception is caught in the normal program flow. - -============================================================================== -!2007.10.26 - Andrea - -Fix in enforcing "folders with schema version 2.0.0 are no longer supported". -Method listAllTables should not fail (we know all tables), else we may -get failures in schema evolution (MySQL was indeed failing... not Oracle?). - -Extend exceptions UnsupportedFolder[Set]Schema to accept any message. -Move UnsupportedFolder[Set]Schema exceptions to file RelationalException.h. - -Add a PanicException for all PANIC situations (asserts). - -Add tests for listAllTables with node schema versions 1.9.9, 2.0.9, 2.9.0 -(panic, success, fail) and with folder schema version 2.0.0 (success). - -============================================================================== -!2007.10.25 - Romain - -Performance improvement in IOV insertion (to be cross-checked) -by stabilizing the execution plan for the 'select last IOV' query -(add the "/*+INDEX(O)*/" hint in RalObjectMgr::fetchLastRowsWithNewData). - -============================================================================== -!2007.10.25 - Andrea - -Fix for performance and functional bug #30431 in MV folders: -in RelationalFolder.cpp, use the channels table for MV existsChannel. - -Fix for functional bug #30443 and performance bug #24448 in MV folders: -in RelationalFolder.cpp, use the channels table for MV listChannels. - -Remove all workarounds for bug #23755, including: -- in RelationalFolder.cpp, remove the old fixes for - bug #24445 (MV setChannelName fails without createChannel), - bug #24449 (MV existsChannel fails without createChannel), - bug #24461 (MV setChannelDesc fails without createChannel) and - bug #24463 (MV channelName fails without createChannel); -- in RalObjectMgr, make channel table manipulation private again; -- in RelationalObjectMgr, dropChannel continues to check also the IOV table - (because this is the semantics: throw if the channel has some IOVs); -- in RelationalObjectTable, remove listChannels (but keep existsChannel). - -These changes complete the fix for bug #23755. - -All RelationalCool and PyCoolUtilities tests are now successful. - -============================================================================== -!2007.10.25 - Andrea - -Folders with schema version 2.0.0 are no longer supported. -This ensures that folders have been evolved to 2.0.1 or higher (i.e. that FK -constraints exist between each IOV table and the corresponding channel table). - -Add tests that using or dropping a 2.0.0 folder fails. -Add tests that dropping a database containing a 2.0.0 folder also fails. - -Rename RelationalFolderNew as RelationalFolderUnsupported. -Rename RelationalFolderSetNew as RelationalFolderSetUnsupported. - -============================================================================== -!2007.10.24 - Andrea - -Add new tool coolValidateSchema to check internal consistency of databases. -Presently this only investigates possible data corruption due to bug #23755, -e.g. due to unenforced FK constraints in sqlite (checks that channels in all -IOV tables are listed in the corresponding channel tables, both MV and SV). - -============================================================================== -!2007.10.24 - Andrea - -Use RelationalQueryDefinition in RalObjectMgr::fetchLastRowsWithNewData -(task #5282 - also see task #5654, will rewrite this query to fix the plan). - -Add the option to define a hint in an IRelationalQueryDefinition -(thanks to Romain for the suggestion - e.g. can be useful for task #5654). - -Clean up result set specification handling for queries executed from an -IRelationalQueryDefinition: the spec is in the query definition, -no need to specify it as an argument to fetchOrderedRows. - -============================================================================== -!2007.10.23 - Andrea - -Add pure virtual methods to RelationalQueryMgr for selecting or counting rows -from a query defined using an IRelationalQueryDefinition (task #5282). - -============================================================================== -!2007.10.23 - Andrea - -Add a new test_SealPluginDump.sh test to the bash test suite (task #5678). -Running the test also makes sure that the COOL plugins are loaded for SCRAM. -The same machinery was implemented by Marco for CMT and QMTEST. - -============================================================================== -!2007.10.23 - Andrea - -Use the MySQL integration cluster itrac424 instead of Marco's pclhcb55 -for Andrea's private tests (task #5412). Not yet done for the nightlies. - -============================================================================== -!2007.10.23 - Andrea - -Fix bug #30500 (wrong exception thrown when attempting to update a database -that is open in read-only mode): add new exception DatabaseOpenInReadOnlyMode, -thrown by both transaction managers and also by RalObjectMgr::storeObjects. - -Add a test for bug #30500 (check that DatabaseOpenInReadOnlyMode is thrown -when attempting to update a database that is open in read-only mode). - -============================================================================== -!2007.10.20 - Sven - -Fix bug #30578 in the replication tool. - -============================================================================== -!2007.10.16 - Andrea - -Add tests for bug #30431 (MV existsChannel) and bug #30443 (MV listChannels). - -============================================================================== -!2007.10.16 - Andrea - -Fix bug #30361 in the schema evolution tool. - -============================================================================== -!2007.10.11 - Andrea - -Tag COOL_2_2_1. Production release (binary compatible with 2.2.0) with many -configuration improvements, feature enhancements and bug fixes. New versions -of CORAL (with important bug fixes for SQLite and Frontier), ROOT and SEAL. -This is the first COOL release with support for MacOSX/Intel platforms. - -============================================================================== -!2007.10.09 - Andrea - -Drop SEAL package granularity in SCRAM as there is no .SCRAM in SEAL_1_9_3. -CoolKernel depends on SEAL and adds link libraries SealBase, PluginManager -and SealKernel by default. SealUtil and SealServices are added where needed. - -============================================================================== -!2007.10.08 - Andrea - -Internal tag COOL_2_2_1-pre5. Last private tag before COOL_2_2_1. -All CMT/SCRAM tests successful on all platforms using a private CORAL191 -(except for the last pending failure RO_02b1 - bug #23368 in FrontierAccess), -including MacOSX/PPC (last build) and gcc41 (not built for official COOL221). -Non-debug osx104_ia32_gcc401 not built, test results copied from debug version. - -Changes in RelationalCool code, tests and test results (none in config): -- Allow back-insertion of non-overlapping IOVS in SV folders (task #3138). - > Add several tests for task #3138, all successful. -- Avoid a few warnings in Windows. -- Reenable tests for sqlite bug #22485, now fixed. -- Add a few timing reports for task #4672. -- Software version is now 2.2.1 -- Update test results for cygwin (.NT) again.. - -============================================================================== -!2007.09.29 - Sven - -Partial implementation of task #3138: allow back-insertion of IOVS -in SV folders as long as there are no IOV overlaps. - -Use case #3 is implemented: back-insertion is possible -if IOVs are inserted one at a time (no bulk insertion). - -Use case #2 is implemented: back-insertion is possible with bulk insertion, -if any back-inserted IOV is the only IOV inserted in its channel (while -many IOVs can be inserted at a time in channels with no back-insertion). - -Use case #3 is not yet implemented: back-insertion is not possible with -bulk insertion if several IOVs are inserted at a time in a channel where -at least one IOV is back-inserted. - -============================================================================== -!2007.09.18 - Marco - -Minor changes to avoid a few warnings on Windows -in RelationalQueryDefinition.cpp and RalQueryMgr.cpp. - -============================================================================== -!2007.09.02 - Andrea - -Add a few more timing reports for task #4672. - -============================================================================== -!2007.08.29 - Andrea (-D '2007/08/29 13:30:00') - -Internal tag COOL_2_2_1-pre4. -First version with successful tests of slc4_ia32_gcc41 on SCRAM/BASH, -including SQLite and Frontier support and complete private config for CMT. - -No changes in RelationalCool code or config. - -Changes in bash test results: -- All OK for slc4_ia32_gcc41 (after enabling SQLite/Frontier). -- Replace 'Skip test' by 'Skip' in existing logfiles for mergeTestOutput. - -============================================================================== -!2007.08.24 - Andrea (-D '2007/08/24 17:15:00') - -Internal tag COOL_2_2_1-pre3. -First version with successful tests of MacOSX Intel on both CMT/QMTEST -and SCRAM/BASH, including PyCool (but still no Oracle support). -First version with successful tests of slc4_ia32_gcc41 on SCRAM/BASH -(but CMT is badly configured, and still no SQLite or Frontier support). - -Implementation bug fixes: -- Fix bug #28189 (missing quotes around table alias in new Oracle queries) -- Fix bug #28787 (segfault if 'live' iterator is not closed) - > fixed by using RalSessionMgr instead of IDatabase to keep track of how many - iterators are open (now allow at most one open iterator per RalSessionMgr) - -Add a test for MySQL bug #24646 (storing 11 blobs with 1000 characters fails). -The test is disabled for MySQL, for the moment it only prints a warning. - -Changes in bash test results: -- New test_payloadSpecOver8000Bytes for bug #24646 is OK (disabled for MySQL). -- Added logfile for slc4_ia32_gcc41 (all tests OK using SCRAM). - -============================================================================== -!2007.08.07 - Andrea (-D '2007/08/07 16:02:00') - -Internal tag COOL_2_2_1-pre2. -First version with all QMTEST tests as successful as bash tests. - -Test config improvements: -- Fix bug #28553 (duplicate entry in dblookup.xml for tests). - -No changes in RelationalCool code or bash test results. - -============================================================================== -!2007.08.02 - Andrea (-D '2007/08/03 14:05:00') - -Internal tag COOL_2_2_1-pre1. - -Changes in bash test results: -- OSX PPC tests for SQLite succeed after adding workaround for bug #27650. -- Added results for OSX Intel (all ok except Oracle that is not supported). - -C++ bug fixes: -- RelationalFolderSetNew inheritance from IFolderSet must be virtual. - -Tool improvements: -- Port CoolQueryManager to Windows (task #5255). -- Improved usage messages from various scripts. - -CMT config improvements: -- Fixes for OSX link warnings. - -============================================================================== -!2007.07.13 - Andrea - -Tag COOL_2_2_0. Production release with many performance optimizations and bug -fixes, also including backward-compatible API extensions and schema changes. -New versions of CMT, CORAL, ROOT/Reflex, oracle, sqlite, frontier_client -and LFC using LCG_53 (with respect to COOL 2.1.1 using LCG_51). - -Main API changes in CoolKernel: -- Added support for Blob16M (task #2197). -- Added reverse order object iterator from browseObjects (task #3430). -- Added goToNext() and currentRef() methods to IObjectIterator to improve the - C++ client performance by avoiding copies of CORAL currentRow (task #4672). -- Removed unnecessary virtual class inheritance from final classes and - unnecessary virtual method inheritance from final methods (task #4879). -- Added IDatabase::databaseName() method (sr #101807). -- Added IFolder::dropChannel() method to delete/drop an existing channel. - -Main schema changes (all included in the coolEvolveSchema tool): -- Fill the channels table for MV folders (fix for bug #23755). -- Added a FK on the IOV table referencing channelId in the channels table: - this is part of the fix for bug #23755 (MV channels table was not filled). - > Note that FKs are parsed but not enforced on SQLite. -- Folder schema is now 2.0.1 (database schema remains 2.0.0). - > For the moment, the code is still able to read the older 2.0.0 schema - (i.e. it does not rely on the fact that the MV channels table is filled). - In other words, schema evolution is recommended but is not necessary. - > Eventually, a future COOL release will require schema evolution, so - that it can assume that the MV channels table is filled. - > Older releases 210 and 211 are able to read/write data in the new 2.0.1 - folders: however, on Oracle and MySQL, where FKs are enforced, IOVs cannot - be inserted into new channels unless these are first manually created using - createChannel (or they have been created using storeObjects on COOL_2_2_0). - > *** WARNING *** Even if COOL210/211 can be used to insert data into - the 2.0.1 folders created by COOL_2_2_0, this is discouraged on SQLite - files as it may lead to data corruption (a 2.0.1 sqlite folder has a - non-enforced FK, so an IOV may exist for a channel that is not registered - in the channels table). This may be solved in the future if FKs are - enforced using triggers in the CORAL SQLIteAccess (sr #102114). -- String255 columns on MySQL are VARCHAR(255) BINARY instead of VARCHAR(255) - > This change is due to the fix in CORAL190 for bug #26484, which was - responsible in COOL for bug #24393 (tag queries were case insensitive). - > Warning: strings longer than 255 characters are still TEXT instead of - BINARY TEXT, hence they are still queried/sorted in a case-insensitive way. -- Schema evolution database attribute is now called "SE_2_2_0". - -Additional implementation improvements over COOL 2_1_1: -- Performance improvements for SV queries (task #4402). - > The query time for all-channel queries is now flat across IOVs. - > SV queries are now handled through a join of the channels and IOV tables. - > New class IRelationalQueryDefinition to encapsulate a generic query - description that can be reused as part of a subquery, eg for COUNT(*). - > Adapt the RelationalQueryMgr to the new IRelationalQueryDefinition. - Table row count is now possible using SELECT COUNT(*) FROM (SELECT...) - where the subquery is the same as the query used to fetch individual rows. - > Add schemaName() and databaseTechnology() to RelationalQueryMgr to handle - backend-dependent SQL injection in subqueries not supported by CORAL. -- Performance improvement for multi-channel bulk insertion (task #2009). - > Also clean up a bit the storeMultiVersionObjects method. -- Performance improvement for SV listChannels (bug #24448): use channels table. -- Drop support for the old RalObjectIterator (use only RalObjectIterator2). -- Progress in cleanup of inheritance. - > Removed unnecessary virtual class inheritance from final classes and - unnecessary virtual method inheritance from final methods (task #4879). - > Renamed RelationalBulkOperation as IRelationalBulkOperation. - > Renamed RelationalTransactionMgr as IRelationalTransactionMgr. - > Remove RalNodeMgr and RalTagMgr (Relational versions are enough). - > Separate getSequence and instantiateSequence metods in sequence manager. - > Bug fix: remove '=0' qualifier from the RelationalObjectTable destructor. -- Fix bug in RalDatabaseSvc (variable redefined in internal {} block) -- Removed workaround for CORAL bug #22453 for BLOB handling - (this is part of the implementation for the Blob16M storage type). -- Fix bug in RelationalNodeTable::tableSpecification() for many COOL releases. - -Additional tool improvements over COOL 2.1.1: -- Support evolution from either 1.3.0 (required) or 2.0.0 schemas (optional). - > The evolution from 2.0.0 schemas always checks all folders, upgrading them - from 2.0.0 to 2.0.1, while leaving the database schema version as 2.0.0. - > The evolution from 2.0.0 schemas also adds the 5d index for user tags - (which was introduced to solve task #4381 in COOL_2_1_1), if not yet there. - > Use two separate tests for evolution from 130 and 200 (in PyCoolUtilities). -- Enable schema evolution from 1.3.0 databases on AMD64. - > On AMD64, use the 32bit mode to create a 1.3.0 schema for evolution tests. -- Fix bug #26509 (coolReplicateDB fails on large databases - out of memory). -- Fix bug in coolPrivileges (add channels table: frontier tests were failing). -- Fix bug #23438 in CoolDescribeTable (invert single/double quotes on Windows). -- Fix bug in CoolDescribeTable (COLLATE syntax was not parsed for MySQL). -- Adapt coolReplicateDB after fixing bug #23755 (MV channel table not filled). -- Adapt coolReplicateDB and coolEvolveSchema to the new channelId FK. -- Add support for LFC to the coolAuthentication, coolDBDiscovery, coolDropDB, - coolDumpSchema, coolEvolveSchema, coolMiniClient, coolPrivileges and - coolReplicateDB tools (task #4326). -- Disabled the CORAL automatic pool clean up thread in coolDropDB and - coolReplicateDB (fix bug #27844 - nightly tests were hanging). -- Add COOLREPLICATION_TIMEOUT environment variable for coolReplicateDB tests. -- Add documentation for the coolReplicateDB tool (task #4328). -- Add support for 'select *' queries in the coolExecuteSql.csh script. -- Add CoolQueryManager python package to issue arbitrary 'select' queries - against a COOL database: this is used in regression and schema evolution - tests to check at the database level that the MV channels table is filled. - -============================================================================== -!2007.07.06 - Marco - -Disabled the CORAL connection pool clean up thread in coolDropDB and -coolReplicateDB (fix for nightly test failures reported as bug #27844). - -============================================================================== -!2007.04.16 - Marco - -Tag COOL_2_1_1. Bug-fix production release (binary compatible with 2.1.0). -New versions of CORAL, ROOT and frontier_client using LCGCMT_51. - -Main bug fixes and improvements over COOL 2.1.0: -- Implement cross-check that only one 'live' iterator can be open at a time. - > This was always claimed in the past, but not yet enforced. - > Added exception TooManyIterators. - > Fix for bug #25151 (abort in concurrent use of iterators). - > Fix for bug #25817 (segfault introduced by new iterator checks). - > Fix for bug #25256 (MySQL test failure introduced by new iterator checks). - > Added tests for read concurrency with live iterators. -- Performance improvements in the C++ client. - > Copy data only once in browseObjects using new RalObjectIterator2 - (can be disabled using COOL_210ITERATOR env variable). - > Construct RelationalObject from coral AttributeList - (rather than from RelationalObjectTableRow). - > Private hacks for PDB stress tests in RalObjectIterator - (controlled by env variable COOL_PDBSTRESSTEST_NBYTES). -- Resurrect TimingReport for performance studies (disabled by default). - > Fix a memory leak (related to bug #9253). - > Can be enabled by COOL_TIMINGREPORT env variable. - > Keep track of time spent in CORAL alone. -- Start a single read-only transaction and preload the nodes table at the - start of read-only connections (task #2816). - > Can be disabled by COOL_READONLYSESSION_MANYTRANSACTIONS env variable. - > New bug (memory leak): the database is never deleted. - > Add methods to read all nodes from the nodes table. - > Use a bool flag always (no more strings) to indicate read-only sessions. - > Added new class DummyTransactionMgr for read-only connections. -- Added goToNext() and currentRef() methods to IObjectIterator API. - > These are presently disabled (#ifdef'ed out)and will be enabled in 2.2.0 - (improve C++ client performance by avoiding copies of CORAL currentRow). - > Added new classes ConstTimeAdapter and ConstRelationalObjectAdapter. -- Fix for bug #24999 in the replication tools. -- Fixes for gcc4.0 in RelationalObjectTableRow. -- Fixes for gcc4.1 in CppUnit tests. -- Fix in coolAuthentication for aliases in frontier (ignore missing password). -- Added test for case sensitivity of tag names in MySQL (bug #24393). - > Bug introduced in COOL2.0.0 by removing BINARY for strings in CORAL. - > Improved tests for special characters such as umlauts. - -============================================================================== -!2007.04.04 - Marco - -Fixed bug #25256. RalObjectIterator2 was registered even if the construction -fails with an exception in the initialization part (before the constructor -body), but in that case was never unregistered. Now it is registered in the -body of the constructor, so an exception in the initialization part will not -cause a mis-balance. Added the class ObjectIteratorCounterWatchDog to spot -when an iterator is not correctly unregistered. - -============================================================================== -!2007.03.26 - Andrea - -C++ performance improvement in RalObjectIterator and RelationalObject: -copy data only once in browseObjects, while previously it was copied twice. -A query time reduction from 0.31s to 0.27s was observed on slc3_ia32_gcc323 -for the benchmark Atlas prompt reconstruction query (retrieve in total -100MB and 100k rows from 100 folders with 1k channels each). - -============================================================================== -!2007.03.24 - Sven - -Fixed replication bug #24999. - -============================================================================== -!2007.03.24 - Andrea - -Tag COOL_2_1_0. Production release with backward-compatible API extensions -and schema changes. New versions of CORAL and ROOT using LCGCMT_50c. - -Summary of backward-compatible API changes in CoolKernel: -- Tag locking functionality (task #3709) - > add IHvsTag::setTagLockStatus and IHvs::tagLockStatus methods - > add TagIsLocked exception -- Fix for bug #23751 in the IFolder::folderSpecification() method. -- Fixes to allow compilation on MacOSX. -- Define int64 as long long also on AMD64, as in CORAL_1_7_2 (task #4357). - -Backward-compatible schema changes: -- Added a 5D index to IOV tables to improve user tag performance (task #4381). - -Configuration changes: -- Prepared infrastructure for private SCRAM builds in parallel to CMT. - -Other improvements and bug fixes in COOL: -- SQL performance improvement for SV SC browseObjects (task #3675). -- Forward compatibility with 2.0.x folder and folder set schemas. -- Added replication test to the PyCoolUtilities test suite (task #4348). -- Completed integration with LFCReplicaSvc and added an example (task #4326). -- Fix for bug #23597 in PyCoolCopy with sqlite files. -- Fix for bug #23610 in RelationalTagMgr::fetchGlobalTagTableRowForInnerNode. -- Fixes for coolReplicateDB bug #23662 (drop/recreate FKs when needed). -- Partial fix for bug #23716 in PyCoolCopy handling of BLOBs. -- Fix for bug #23754 (IFolder::setChannelName should accept current name). -- Fix for bug #24248 in schema evolution test infrastructure for sqlite. -- Partial fix for bug #24392 (missing try/catch in an example). -- Fixes for bug #24445, bug #24449, bug #24461 and bug #24463 in MV channel - management: actually, these are all workarounds for bug #23755 (channels - table is not filled for MV folders). -- Fix for bug #24464 (storeObject should accept payload with fewer fields - than those defined in the folder payload specification). -- Fix for a bug in IFolder::existsUserTag(): the transaction was started twice. -- Fixes in the authentication and statistics tools (moved from C++ to python). -- Fixes for bug #24480, bug #24481 and bug #24555 in C++ test infrastructure. -- Start internal preparation for 3.0.0 schema (task #4307 and task #4396). -- Improvements in PyCool (some of which related to the LFCReplicaSvc). -- Added tool PyCoolDiff to extract the difference between two DBs. - -Improvements from the upgrade to CORAL_1_7_2 (from CORAL_1_7_0): -- Fix for bug #23412 in MySQLAccess SQL syntax for PK creation. -- Fix for bug #24103 in SQLiteAccess handling of unsigned int on AMD64. -- Fix for bug #24642 in MySQLAccess SQL syntax for FK creation. - -Improvements from the upgrade to ROOT 5.14.00d (from 5.14.00b): -- Fix for bug #23807 (abort in boost::shared_ptr). -- Fix for bug #24100 in unsigned long long handling in python for AMD64. - -Improvements from the upgrade to LCGCMT_50c (from LCGCMT_50): -- Fix for bug #24052 (missing oracle/mysql binaries in PATH). - -============================================================================== -!2007.03.22 - Marco - -Fixed a bug observed by Richard: the transaction was started twice when -calling RelationalFolder::existsUserTag(). - -============================================================================== -!2007.02.21 - Andrea - -Added TestListener.h replacing the corresponding cppunit header file. -This seemed to be the only way to get rid of compilation warnings with -O2. - -============================================================================== -!2007.02.20 - Andrea - -Apply the performance patch for SV SC browseObjects(key,key+10,chId) that -had been developed by Kristoffer Dahl in 2006. This completes task #3675. - -============================================================================== -!2007.02.19 - Andrea - -Fixes for the tools to gather table and schema statistics. -Move them from csh to py scripts (with associated python packages). - -Minor fix in the CoolAuthentication python package. - -============================================================================== -!2007.02.16 - Andrea - -Add 5d index to IOV tables to improve user tag performance (task #4381). - -Change s/w release version to 2.0.1 (keep db schema version at 2.0.0). - -Change folder schema version to 2.0.1 (mark the existence of the new index). -The 2.0.1 RelationalFolder class can still read (with lower performance) -any 2.0.0 folder where this index is not defined. The 2.0.0 software -release is now forbidden from reading the new 2.0.1 folders to encourage -users to move to 2.0.1 (even if the 2.0.0 code could actually read data -from the new folder with the extra index - even with better performance!). - -Cleanup assigning and checking of folder and folder set schema versions. - -============================================================================== -!2007.02.16 - Andrea - -Added infrastructure to create new tables in 3.0.0 database schema: -- IOVTABLES and CHANNELTABLES tables (task #4307) -- USERTAGS and HEADTAGS tables (tag #4396) -The code has been committed, but must be kept commented out until 3.0.0. - -In order to complete the 3.0.0 db schema, CHECK constraints are needed. -Filed CORAL sr#101506 asking support for this feature. - -Removed schema manipulation methods from RelationalDatabase -(they were already delegated to the schema manager anyway). - -============================================================================== -!2007.02.16 - Andrea - -Adopt for SCRAM the same naming convention used by CMT: -- rename unitTest as test -- rename exampleCool as example_Cool - -============================================================================== -!2007.02.14 - Andrea - -Added a C++ test for CORAL bug #22485 (empty blobs in sqlite). -We now have a failing test in the RelationalCool test suite. - -============================================================================== -!2007.02.14 - Marco - -Fixed bug #23751: "IFolder::folderSpecification() does not work". - -The fix required a fix in IFolder.h (return const IRecordSpecification instead -of const RecordSpecification). It is "semantically" compatible, and should not -break compilation, but it is not strictly the same API. Also added a test. - -============================================================================== -!2007.02.12 - Sven - -Various fixes for the dynamic replication tool. Still not fully functional. - -============================================================================== -!2007.02.08 - Marco - -Fixed bug #23610: rename RelationalTagMgr::fetchGlobalTagTableRowForInnerNode -as fetchGlobalTagTableRowForNode and change all comments accordingly. - -============================================================================== -!2007.02.08 - Andrea - -Minor changes in RelationalTagMgr to remove a warning on MacOSX -(control reaches end of non-void function) - see task #2062. - -============================================================================== -!2007.01.31 - Andrea - -Tag COOL_2_0_0. Major production release with backward-incompatible -API and schema changes. New versions of SEAL, CORAL and frontier_client. - -Summary of main API changes in CoolKernel and CoolApplication: -- Changes in folder specification, payload specification and payload data API - > new StorageType::TypeId enum with associated new typedefs (eg Int64) - > new RecordSpecification class - > new Record and Field classes with validation of storage constraints - > temporary extensions use coral AttributeList for backward compatibility - > new FolderSpecification class accepted by createFolder - > treat empty string "" as NULL -- Stripped API of all SEAL classes - > integer type definitions not based on seal::IntBits - > new class cool::Time replaces seal::Time. - > new SEAL-free API for class cool::Application -- Changes in the support for user-defined payload fields - > added support for BLOB and signed int64 payload data - > constraints on numbers and names of user-defined payload fields - > added cool::IFolder::renamePayload (to change unsupported payload names) - > string payload cannot contain character "\0" (only BLOBs can contain it) -- Renamed methods and removed default channel arguments in IFolder: -- Removed obsolete IDatabaseSvc::dropDatabase(dbId,throwIfDoesNotExist) -- Added the possibility of specifying a CORAL role in the connection string -- Changed default mode for openDatabase from read/write to read/only - -============================================================================== -!2006.01.18 - Marco - -Added the possibility of specifying a CORAL role in the connection string. -The format is now one of: - - alias/DBNAME - - alias(role)/DBNAME - -============================================================================== -!2007.01.17 - Marco - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_4. Production release (backward-compatible bug-fix, -functionality enhancement and LCG_50 configuration upgrade release). -Important fixes in SEAL (component model and multithreading), CORAL and ROOT. - -============================================================================== -!2006.12.12 - Marco - -Removed explicit (hardcoded) reference to XMLAuthenticationService -(let CORAL decide which authentication service should be used). - -Added a warning message if explicit credentials are used (deprecated). - -Small fix in database Id parsing: the separator between coral ID -and cool db name has to be the last '/', not the first. - -[Changes included by Marco in COOL_1_3-branch on 2006.12.12] - -============================================================================== -!2006.12.08 - Andrea - -Remove all default channel=0 or channels=all arguments -from all methods to store, find, browse or count objects. - -Rename browseObjects(time,channelsel) as findObjects, -as otherwise the old browseObjects(5,10) would change -semantics (t=5,ch=10 instead of s=5,u=10,ch=0)! - -Keep the implicit ChannelSelection(id) constructor. -Note that ChannelSelection(id) must be given explicitly in PyCool -(the implicit constructor from an integer does not seem to work). - -These changes represent a fix for bug #14759. - -============================================================================== -!2006.12.07 - Andrea - -Completed internal port to new IRecord and IField API. - -Eased backward compatibility for users by keeping the old -storeObject(..AttributeList&..) method signature in parallel -to the new storeObject(..IRecord&..), for writing, -and via the IRecord::attributeList()method, for reading. - -PyCool still uses only the AttributeList interface -(Marco will port it to the new Record interface). - -All C++ and python tests pass. - -============================================================================== -!2006.11.26 - Andrea - -Moved ReferenceDb tool from RelationalCool tests to PyCoolUtilities as -new package PyCoolReferenceDb (this is a python package based on PyCool). -This ensures that the python package is compiled in the platform-dependent -area, avoiding interference between 32 and 64bit Linux (fix for bug #21391). - -Moved execution of the regression tests based on ReferenceDb tool from -PyCool to PyCoolUtilities. This includes the Frontier regression test. - -[Changes included by Andrea in COOL_1_3-branch on 2006.11.26] - -============================================================================== -!2006.11.24 - Andrea - -Added two python packages CoolAuthentication and CoolDescribeTable -to dump the list of column names and SQL types of any table. -This will be needed for regression tests of column SQL types. - -Added two corresponding tests in RelationalCool/tests/python. - -[Changes included by Andrea in COOL_1_3-branch on 2006.11.26] - -============================================================================== -!2006.11.13 - Marco - -Clean up in RelationalCool test source code (prepare to QMTest). - -============================================================================== -!2006.11.06 - Marco - -Add a check for active transactions in RalSessionMgr::disconnect (bug #21344). - -============================================================================== -!2006.10.30 - Andrea - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_3c. Rebuild of the 1.3.3 release for the LCG_48 configuration. -Important fixes in SEAL (component model and multithreading), CORAL and ROOT. -No change in the source code. Software version remains "1.3.3". - -============================================================================== -!2006.10.16 - Marco - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_3b. Rebuild of the 1.3.3 release for the LCG_47b configuration. -New version of ROOT. Pending bugs in SEAL and ROOT. -Partial support for MySQL on Windows (pending PyCoolUtilities bug #20780). -No change in the source code. Software version remains "1.3.3". - -=============================================================================== -!2006.10.09 - Marco - -Added support (and tests) for coral::Blob. - -============================================================================== -!2006.09.29 - Andrea - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_3a. Rebuild release (bug fixes in CORAL and frontier_client). -Pending bugs in SEAL, new bugs in ROOT. Same source code as COOL_1_3_3. -Only added two Frontier regression tests. Software version remains "1.3.3". - -Upgrade to CORAL_1_6_0 (from CORAL_1_5_4), including the following bug -fixes and enhancements relevant to COOL. -- CORAL bug #19758 (segfault in Frontier QueryDefinition::process) -- CORAL bug #19777 (COOL bug #19753) in Frontier lowercase table aliases -- CORAL sr #101135 (authentication credentials for different roles) - -Upgrade to frontier_client 2.6.0_cms (from 2.5.1_cms): -- Fix frontier_client bug #18359 (COOL bug #18390) in AMD64 data compression - -Upgrade to ROOT 5.13.02 (from ROOT 5.12.00c). This has triggered -the appearance of a new bug that prevents PyCool support on Windows: -- ROOT bug #20133 (COOL bug #20216) for python ROOT on Windows - -No upgrade from SEAL_1_8_1 yet. Pending bugs and thread unsafety -in SEAL component model causing segfaults, assertions and aborts. - -============================================================================== -!2006.09.26 - Andrea - -Fix for bug #20073 - no need to select payload columns for inserting IOVS. -Bug observed in COOL133 but fixed only for COOL200 (as the code has changed). -Bug fixed by adding the option to select only metadata columns in method -RelationalObjectTable::fetchRowForId, which is called by fetchLastRowForTagId -(this was also called by fetchLastRow in COOL133). Also related to task #2266 -(allow users to specify which payload columns should be retrieved). -The problem is not present in RalObjectMgr::fetchLastRowsWithNewData. - -Comment out RelationalObjectTable::fetchLastRow and its RalObjectTable test: -this is not used in the internal implementation as it has been replaced by -fetchLastRowsWithNewData (instead of querying the IOV table for the last -objectid, this is now read off the channels table). Note that fetchLastRow -is still used in COOL133 instead. - -============================================================================== -!2006.09.14 - Andrea - -Added MV retrieval tests to the Regression test suite. -Reproduces FrontierAccess bug #19753 for COOL_1_3_3. - -[Changes included by Andrea in COOL_1_3-branch on 2006.09.13] - -============================================================================== -!2006.08.29 - Andrea - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_3. Production release (backward-compatible bug-fix, -functionality enhancement and configuration upgrade release). -Many important fixes in CORAL and Frontier; pending critical bugs in SEAL. - -Eight supported platforms: win32_vc71_dbg_wine, slc4_ia32_gcc345(_dbg), -slc3_ia32_gcc323(_dbg/_gcov) and slc3_ia32_gcc344(_dbg). -No MySQL support on Windows (no support in CORAL). -No Frontier support on Windows (no client library from FNAL). - -Two AMD64 test platforms: slc4_amd64_gcc345(_dbg). The only pending problem -with AMD64 is the 'long' type ambiguity on 32/64 bit platforms (task #2227); -this is fixed in the new COOL HEAD API, which will be released as COOL140. - -Release built using LCG_46e_2 (upgrade from LCG_46_2). -May become available as LCG_46f_3 (the only difference -with LCG_46e_3 being COOL133 instead of COOL132c). - -Upgrade to ROOT 5.12.00c (from ROOT 5.12.00). - -Upgrade to CORAL_1_5_3 (from CORAL_1_5_1), including the following bug -fixes and enhancements relevant to COOL. In CORAL_1_5_3: -- CORAL bug #19000 (disable OCI_THREADED to prevent OracleAccess hanging) -- CORAL bug #19003 (fix for Oracle 'select from SYS.DUAL') -- CORAL sr #101074 (fix for value returned by updateRows on MySQL) -Already in CORAL_1_5_2: -- CORAL bug #18275 (mismatch between output buffer and result set metadata in - FrontierAccess) - patch contributed by the COOL team (this was responsible - for both COOL bug #18270 and COOL bug #16995) -- CORAL bug #18292 (added plugin checks in case of misconfiguration) -- Added ConnectionService property "PoolCleanUpPeriod" -- Bug fixes in OracleAccess multi-threading (prevent deadlock) -- CORAL sr #100958 (print out the values of SQLite bind variables) -- CORAL bug #18316 (missing double quotes in some SQLite operations) -- Improvements in SQLite file and directory handling - -Upgrade to frontier_client 2.5.1_cms (from 2.4.5_cms): -- Fix frontier_client bug #18359 (COOL bug #18390) in AMD64 data compression - -Upgrade to Frontier server version 3.2 and additional bug fixes: -- Data compression in Frontier server 3.1 (required in 2.4.5_cms client) -- Fix for Frontier server bug #18191 (not yet released) - -No upgrade from SEAL_1_8_1 yet. Pending bugs and thread unsafety -in SEAL component model (workarounds developed by the COOL team exist -for some but not all of these issues): -- SEAL bugs #19019 and #18908): segmentation fault in MessageStream -- SEAL bug #19005 (COOL bug #18910): assertion 'pos != m_children.end ()' -- SEAL bug #18909 (COOL bug #18440): abort (pure virtual method called) -- SEAL bug #18914: segmentation fault in seal::intrusive_ptr_release -- SEAL bug #19360: ConfigurationService is never deleted -- SEAL bug #19004 (COOL bug #18396): assertion 's_trampolines[sig]' -- COOL bug #18225: unhandled/unknown exceptions on Windows - -Enhancements in COOL_1_3_3 with respect to COOL_1_3_2c: -- Change the message level verbosity in PyCool/CoolApplication interactively -- Implement forward compatibility with future releases (task #3426) -- PyCoolUtilities enhancements for HVS -- Warning messages in CoolApplication in case of problems loading plugins. - -Bug fixes in COOL_1_3_3 with respect to COOL_1_3_2c: -- Bug #18116 in RalSequence test (segfault when the password is invalid) -- Bug #18284 in privilege manager (open database in update mode, add tag2tag) -- Bug #18145 in PyCool on AMD64 (no attribute 'data'). -- Bugs in four RelationalCool tests: check connection service in tearDown() -- Bugs in PyCoolCopy tool (preserve payload data type precision in the copy) -- Possible segfault in the use of SEAL components in CoolApplication - -============================================================================== -!2006.08.28 - Andrea - -*** BRANCH RELEASE NOTES *** - -Preparing for COOL_1_3_3. - -Aborted present attempts to fix or workaround bugs in SEAL_1_8_1 -causing random assertions, segmentation faults and aborts. - -Developed fixes and workarounds for several independent bugs in the -SEAL component model, but could not workaround the intrinsic thread -unsafety of SEAL handles based on boost intrusive pointers. - -============================================================================== -!2006.08.23 - Andrea - -Added test for CORAL sr#101074 in RalDatabase test. -Verified that the fix works (will be released in CORAL_1_5_3). - -Remove workaround for CORAL sr#101074 (return value of updateRows -on MySQL is different from Oracle/SQLite) in RalDatabase test. - -[Changes included by Andrea in COOL_1_3-branch on 2006.08.23] - -============================================================================== -!2006.08.22 - Andrea - -Minor bug fix in the RalDatabase_extendedSpec, RalObjectIterator, -RalObjectTable and RelationalFolder tests: check that the connection -service is still alive in tearDown() before using it to purge the pool. - -This prevents a boost shared pointer assertion if RalSessionMgr is changed -to load the ConnectionService in the local database service context. - -[Changes included by Andrea in COOL_1_3-branch on 2006.08.13] - -============================================================================== -!2006.08.15 - Andrea - -Added script wineWrap.sh for running individual commands on Wine (task #3495). - -[Changes included by Andrea in COOL_1_3-branch on 2006.08.15] - -============================================================================== -!2006.07.27 - Andrea - -Implement forward compatibility with future releases using the same schema: -compare data and software schema versions if data release number is newer -than software release number (task #3426). Added the relevant tests. - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.27] - -============================================================================== -!2006.07.27 - Andrea - -Bug fix in common CoolDBUnitTest (check availability of CORAL -connection service in forceDisconnect to prevent program abort). - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.27] - -============================================================================== -!2006.07.24 - Andrea - -*** BRANCH RELEASE NOTES *** - -Prepare for tag COOL_1_3_3 (non-HEAD branch off COOL_1_3_2). -Backward-compatible production release. -A few bug fixes and enhancements with respect to 1.3.2 -for CoolApplication, RelationalCool and PyCool. -Commit PyCoolUtilities logfiles to the new branch too. -Same code as 1.3.2 for CoolKernel, Examples and Utilities. - -Created branch COOL_1_3-branch off COOL_1_3_2. -Initially (2006.05.18) branched all of config, CoolKernel and RelationalCool: - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/config - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/CoolKernel - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/RelationalCool -Later on (2006.05.18) realised it was not necessary to modify CoolKernel: - cvs rtag -d -B COOL_1_3-branch cool/CoolKernel - -Later on still (2006.07.24) realised it was not necessary to modify config, -while it was necessary to branch off also CoolApplication and PyCool. -Eventually branched off also PyCoolUtilities for simpler logfile commits. - cvs rtag -d -B COOL_1_3-branch cool/config - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/CoolApplication - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/PyCool - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/PyCoolUtilities -Note that cool/config COOL_1_3-branch contained a single file -doc/release.notes different from COOL_1_3_2. Untagging cool/config -detached the COOL_1_3-branch from this file but did not delete it. - -============================================================================== -!2006.07.21 - Andrea - -Added handler of SEAL PluginManager feedback to cool::Application. -This will print out warning messages if there are problems loading plugins. - -If environment variable COOL_PLUGINMANAGER_DEBUG is set, -debug information will be printed about the modules being loaded -(otherwise only warnings will be displayed). - -This must be done in package CoolApplication and not in RelationalCool -(so that problems loading the RelationalCool plugin can be disaplayed). - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.07.20 - Andrea - -Set the CORAL connection service pool cleanup period to 1 second -in the seal.opts files. These files should be in config! - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.25] - -============================================================================== -!2006.07.19 - Andrea - -Use Marco's MySQL server instead of Radovan's for Andrea's tests. -This file should be in config! - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.07.18 - Andrea - -Fix for bug #18284: add HVS tag2tag table to privilege manager. - -[Changes included by Andrea in COOL_1_3-branch on 2006.08.29] - -============================================================================== -!2006.07.18 - Andrea - -Added listChannels tests to the Regression test suite -(needed to reproduce FrontierAccess bug #16995). - -[Changes included by Andrea in COOL_1_3-branch on 2006.09.14] - -============================================================================== -!2006.07.14 - Marco - -Enable the usage of dblookup.xml for tests for all users. -Enable frontier tests for Marco. This file should be in config! - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.07.14 - Marco - -Added function cool::IFolder::renamePayloadColumn and tests (task #3609). - -============================================================================== -!2006.07.12 - Marco - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_2c. Rebuild of COOL_1_3_2 for the LCG_46 configuration. -No change in the source code. Software version remains "1.3.2". - -Upgrade to ROOT 5.12.00 (from ROOT 5.11.06a), -including the following fixes for bugs relevant to COOL: -- ROOT bug #17255 (COOL bug #17254) for exception handling on AMD64 -- ROOT bug #17592 for enums in PyCintex -- ROOT bug #18062 for namespaces in PyCintex - -Upgrade to CORAL_1_5_1 (from CORAL_1_5_0), -including the following bug fixes (the first three contributed by the -COOL team) and connection service improvements relevant to COOL: -- CORAL bug #17651 (COOL bug #17624) for missing quotes in SQL on MySQL -- CORAL bugs #14688 and #17787 for SQLite data types on AMD64 -- CORAL bugs #14688 and #17761 for MySQL data types on AMD64 -- CORAL bug #17757 (COOL bug #17755) for Oracle bulk operations on >65k rows -- CORAL bug #17791 for Oracle SELECT FROM DUAL -- CORAL bug #15933 for SQLite named binding -- implementation of automatic purging of the connection pool -- switch to Oracle multi-threaded OCI mode with no mutex locks - -Upgrade to frontier_client 2.4.5_cms (from frontier_client 2.4.4_cms). -COOL_1_3_2b had been tagged and installed before LCG_45 -was redefined to use frontier_client 2.4.5_cms. - -Six supported platforms: win32_vc71_dbg_wine, -slc4_ia32_gcc345(_dbg) and slc3_ia32_gcc323(_dbg/_gcov). -No MySQL support on Windows (no support in CORAL). -No Frontier support on Windows (no client library from FNAL). - -Two test platforms: slc4_amd64_gcc345(_dbg). -A few problems in COOL are still pending on AMD64 -after the ROOT and CORAL bug fixes for this platform. - -Dropped support for slc3_ia32_gcc344(_dbg) -and test builds on slc3_amd64_gcc344(_dbg). - -============================================================================== -!2006.07.11 - Marco - -Add check to prevent segmentation fault in RalSequence test when the -connection fails, e.g. because of wrong username/password (bug #18116). - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.07.11 - Marco - -Added check on the payload column names: -only alphanumeric chars and '_' are allowed. -Throw cool::BadPayloadColumnName if the case of a name like "is-a". -The test in RelationalFolderTest has been updated accordingly. -Still need to add a method to allow users to rename payload columns. - -============================================================================== -!2006.06.29 - Andrea - -Fix for bug in coolPrivileges: open the database in update mode. - -[Changes included by Andrea in COOL_1_3-branch on 2006.08.29] - -============================================================================== -!2006.06.26 - Sven - -Brought back double query strategy using maxIovAtTime() for findObject -in the SV case as it was in COOL 1.3.0 (maxIovAtTime was only used in -SV even then). This required the following minor changes. -- RelationalObjectTable::whereClauseSV now takes since, until parameters -to determine if a 'point in time' (since == until) query is issued. -- RelationalObjectTable::whereDataSV is now non-static, because it needs -to access the non-static methods objectTableName() and maxIovAtTime(). -It was not used in any static contexts anyway. -- In general, the 'old', optimized SV query will be used if since == until -and channels.firstChannel() == channels.lastChannel(). -- Bug fix #16179 is still in place, because it concerns user tags (and -therefore MV code). - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.06.19 - Andrea - -Added a call to purgeConnectionPool inside RalSessionMgr::disconnect(). -This should ensure that closeDatabase() physically drops the connection -if the connection service timeout has been pre-set to 0. To be tested. -This is related to task #3546. [NB NOT committed to COOL_1_3-branch]. - -============================================================================== -!2006.06.19 - Marco - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_3_2b. Rebuild of COOL_1_3_2 for the LCG_45 configuration. -Upgrade to ROOT/Reflex 5.11.06a and CORAL_1_5_0 using LCG_45 -(from ROOT/Reflex 5.11.02 and CORAL_1_4_3 using LCG_44). -Also implies upgrade to oracle 10.2.0.2 (from 10.2.0.1), -sqlite 3.3.5 (from 3.2.8) and cppunit 1.10.2_p2 (from 1.10.2_p1). - -Upgrade to frontier_client 2.4.4_cms (from frontier_client 2.4.1_cms_p1). -Note that COOL_1_3_2b was tagged and installed before LCG_45 -was redefined to use frontier_client 2.4.5_cms. - -No change in the source code. Software version remains "1.3.2". - -Support for slc4_ia32_gcc323 and slc4_ia32_gcc323_dbg. - -Eight supported platforms: win32_vc71_dbg_wine, slc4_ia32_gcc345(_dbg), -slc3_ia32_gcc323(_dbg/_gcov) and slc3_ia32_gcc344(_dbg). -No MySQL support on Windows (no support in CORAL). -No Frontier support on Windows (no client library from FNAL). - -Four test platforms: slc3_amd64_gcc344(_dbg) and slc4_amd64_gcc345(_dbg). -Pending problems with AMD64 mainly due to 32bit/64bit integer types. - -============================================================================== -!2006.06.16 - Marco - -Added tests for Int64 in RalDatabase_extendedSpec -(UInt64 is ready, but commented out). - -============================================================================== -!2006.06.13 - Sven - -Added LASTMOD_DATE to RelationalObjectTable. Field is updated for SV and MV -storage in RalObjectMgr and accessible through RelationalObjectTableRow. -Added the corresponding tests as well. - -============================================================================== -!2006.06.13 - Marco - -Removed extra transaction in RalObjectMgr.cpp (bug #17376). - -[Changes included by Andrea in COOL_1_3-branch on 2006.07.24] - -============================================================================== -!2006.05.28 - Sven - -API changes. First prototype of channel metadata (channel name and number). - -============================================================================== -!2006.05.19 - Marco (comments by Andrea) - -API changes. First prototype of PayloadSpecification API. No AMD64 port yet. - -TO DO (amongst other things): -- check/validate the changes in the Oracle schema -- in particular, check what happens with Oracle version numbers 8, 9, 10? -- can we really let CORAL choose the SQL types? (else renable the tests!) -- add an enum value for some unsupported types to be supported later? - -Implies changes in the test structure: -[*Note: since a few releases, obsolete tests have been removed using -an "#ifdef NOPORT". A better solution would be to cvs delete the tests.] -- added PayloadSpecification tests -- removed(*) all RelationalDatabase tests, moved to PayloadSpecification tests - > encode/decode spec description - > decode bad specifications (empty spec, no colon, trailing comma) - > decodeOnlyOneColon test removed - new spec expects one colon instead of two -- removed(*) all RelationalTypeConverter tests, obsoleted - > remove all tests to control SQL types (the new implementation lets CORAL - choose SQL types, instead of choosing 9i/10g-dependent SQL types in COOL) - > oracleMajorVersionNumber test removed - use CORAL SQL types - > sqlTypeForCppType_oracle/mysql/sqlite tests removed - use CORAL SQL types - > checkStorageHintCompliance tests removed - no type/hint pairs - (this test was NOT testing that actual attribute values were compliant to - a hint, it was only testing that a given hint was valid for a given type) -- removed some RalDatabase_extended tests, obsoleted - > test_unsupportedTypesXXX - obsolete, it is not possible to specify - an unsupported type, simply because there is no enum value for it - -============================================================================== -!2006.05.19 - Andrea - -Fixed bug #16903 in maxIovAtTime: this was not strictly necessary, as this -is only called by fetchRowAtTimeSV, which is never used by the public API. -Later on, removed both unused methods fetchRowAtTimeSV and maxIovAtTime. - -[Changes included by Andrea in COOL_1_3-branch on 2006.05.19] - -============================================================================== -!2006.05.18 - Andrea - -Created branch COOL_1_3-branch to fix pending bugs in COOL_1_3_2 if required. - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/config - cvs rtag -r COOL_1_3_2 -b COOL_1_3-branch cool/RelationalCool - -============================================================================== -!2006.05.17 - Sven - -First prototype of channel table to implement multi channel bulk insertion. -No channel metadata yet. - -No API changes. - -============================================================================== -!2006.05.14 - Andrea - -Tag COOL_1_3_2a. Rebuild of the 1.3.2 release for the LCG_44 configuration. -Upgrade to ROOT 5.11.02 using LCG_44 (from ROOT 5.10.00d using LCG_43b_2). - -No change in the source code. Software version remains "1.3.2". - -Six supported platforms: win32_vc71_dbg_wine, -slc3_ia32_gcc323(_dbg/_gcov) and slc3_ia32_gcc344(_dbg). -No MySQL support on Windows (no support in CORAL). -No Frontier support on Windows (no client library from FNAL). - -Six test platforms: slc3_amd64_gcc344(_dbg), -slc4_ia32_gcc345(_dbg) and slc4_amd64_gcc345(_dbg). -Pending problems with slc4_ia32_gcc345(_dbg) only for SQLite. -Pending problems with four AMD64 platforms mainly due to intrinsic -COOL problems with 32bit/64bit integer types (to be solved in COOL_1_4_0). - -============================================================================== -!2006.05.10 - Andrea - -Tag COOL_1_3_2. Production release (backward-compatible -bug-fix and Frontier support release in the 1.3 series). - -Six supported platforms: win32_vc71_dbg_wine, -slc3_ia32_gcc323(_dbg/_gcov) and slc3_ia32_gcc344(_dbg). - -Six test platforms: slc3_amd64_gcc344(_dbg), -slc4_ia32_gcc345(_dbg) and slc4_amd64_gcc345(_dbg). -Pending problems with AMD64 mainly due to 32bit/64bit integer types. -Pending problems with SLC4 mainly due to wrong OracleAccess configuration. - -Upgrade to ROOT 5.10.00d and CORAL_1_4_3 using LCG_43b_2. -Upgrade to ROOT 5.11.02 postponed to LCG44 because not yet requested -(Atlas will build its release 12 using the LCG43 configuration). - -Add David Front's VerificationClient to the COOL release installation. -Keep VerificationClient in its original CVS repository in the contrib area -and install it as a subdirectory of the Utilities package at boostrap time. -The only executable installed in the public PATH is coolVerificationClient. - -============================================================================== -!2006.05.03 - Andrea, Marco, Sven - -Bug fixes in COOL: -- #16566 - IHvsNode::resolveTag() does not work for "local" tags -- #16567 - IHvsNode::listTags() does not work for inner nodes -- bugs in transaction handling (split findTagRecord from __findTagRecord) - -Added basic Frontier support: -- Added frontier_client tool to the SCRAM configuration -- Filed CORAL bug #16617 - authentication.xml user used as Oracle schema owner -- Filed CORAL bug #16621 - success with "COUNT(*)" but failure with "count(*) -- Implemented workarounds in COOL for both CORAL bugs -- SimpleRead example works successfully! -[NB: remember to grant read privileges to PUBLIC from the Oracle account!] - -Prepare for API changes in COOL_1_4_0: -- Prepared tests and examples to switch to read-only default in openDatabase. - Keep read-write as default in API until COOL_1_4_0 (backward compatibility). - -Internal cleanup: -- Move many object-related methods from RalDatabase to RelationalObjectMgr. - -============================================================================== -!2006.04.25 - Andrea, Marco, Sven - -Tag COOL_1_3_1. Production release (backward-compatible -COOL and CORAL bug-fix release in the 1.3 series). - -Bug fixes in COOL_1_3_1: -- #16337 - PyCool assertions on Win (workaround for ROOT bug fixed in 5.11.02) -- #16315 - exceptions not caught in coolDropDb (resulting in Win runtime error) -- #16257 - folderset tag sequence table not created for createParents=true -- #16179 - findObject does not find user tagged objects -- fixed a feature in PyCoolTool that was preventing the use of aliases - -Bug fixes in CORAL_1_4_2 (binary compatible with CORAL_1_4_0): -- #16189 - missing quotes around "order" column name in SQLite table creation - -Minor modifications to transaction handling (split createFolderSet with -transactions from __createFolderSet without transactions). - -Maintained dependency on ROOT 5.10.00c (no upgrade to 5.11.02 yet). -Added configuration infrastructure for SLC4. - -============================================================================== -!2006.04.06 - Andrea - -Tag COOL_1_3_0. Functionality enhancement production release (first -release in the 1.3 series: backward incompatible API and schema changes). - -Main features with respect to COOL_1_2_8 and COOL_1_2_9: -- upgrade to CORAL_1_4_0 using LCG_43_2 -- CORAL-based API, drop all POOL dependencies -- user tags functionality according to spec #1 -- HVS functionality (limitation: the same tag cannot be used for >1 folders) -- schema evolution tool for user tag and HVS schema modifications -- CORAL connection service (including use of connection aliases) -- internal code cleanup (profound changes to the internal class structure) -- performance improvements for SV folders (remove non-uniformity) -- cool::Exception derived from std::exception instead of seal::Exception -- PyCool rewritten from scratch - -Summary of API changes: -- HVS functionality - > new IHvsNode methods: create/delete/findTagRelation and resolveTag - > new HVS exceptions Node/Tag[Relation]NotFound and NodeIsSingleVersion - > split IHvsNodeRecord from IHvsNode - > limitation: the same tag name still cannot be used for more than one folder -- prepare for further HVS features (reuse same tag name for several folders) - > changed std::string tagScope() to IHvsNode::Type tagNameScope() - > added std::vector taggedNodes() -- CORAL connection service (URLs can be specified using aliases) -- user tags (storeObject accepts an optional tag name argument) - > added existsUserTag() -- drop all POOL dependencies (API now based on coral::AttributeList) -- cool::Exception derived from std::exception instead of seal::Exception -- const qualifyers added to many methods (not yet complete) - -Summary of schema changes: -- new userTagId column added to all IOV tables (both SV and MV) -- new tag sequence table added for all folder sets -- new global tag2tag table and sequence -- schema evolution rows may exist in the main database table - -Summary of internal changes: -- changes affected well over 50% of the total number of lines of code -- new session manager class for session management -- new query manager class for query and update management -- new schema manager class for schema manipulations -- new sequence manager class for sequence management -- new transaction manager class for sequence management -- new tag and node manager classes for HVS node and tag management -- 50% of RalDatabase code and functionality moved elsewhere -- significantly reduced ratio of CORAL specific Ral to generic Relational code -- progress in clean separation of generic HVS to specific CondDB code -- progress in adding const qualifyers wherever possible -- progress in simplifying forward/backward pointers/references between mgrs -- progress in separating record information (table rows) from active managers -- tool-specific authentication and privilege managers moved to utilities - -============================================================================== -!2006.04.06 - Andrea - -Summary of problems for Windows: -- unknown exception thrown (workaround by Andrea) -- MySQL still not supported by CORAL (COOL script workaround by Andrea) -- os.sysconf not defined in Python (fixed by Marco) -- ROOT window still pops up for Python (pending) - -============================================================================== -!2006.03.22 - Andrea - -Internal tag COOL_1_3_0-pre1 (stable state before COOL_1_3_0). -All C++, PyCool and PyCoolUtilities tests pass for slc3_ia32_gcc323_dbg. - -Main features with respect to COOL_1_2_8 and COOL_1_2_9: -- tests executed using (private version of) CORAL_1_3_1 -- user tags functionality according to spec #1 -- schema evolution tool for user tag schema modifications -- CORAL connection service -- cleanup well advanced: profound changes to the internal class structure -- performance improvements for SV folders (remove non-uniformity) -- std exception -- new PyCool -- CORAL-based API, drop all POOL dependencies -More complete details will follow in the COOL_1_3_0 release notes. - -Still missing on the way to COOL_1_3_0: -- waiting for CORAL_1_4_0 release with ISessionProxy::serverFlavor() -- use CORAL cross-backend connection aliases (dynamically retrieve flavor) -- HVS -- schema evolution tool for HVS - -============================================================================== -!2006.03.03 - Andrea - -Backward-incompatible API change (start adding HVS functionality). - -Change the semantics of the tagScope method in IDatabase: it now returns -whether a tag can be used for inner nodes (folder sets) or leaf nodes -(folders), rather than returning the node name it is used for. In HVS -(following a request from LHCb), the same tag name can be used for only -one folder set or for several folders. There is not anymore a unique node -each tag can be attached to. Also, a tag can be reserved for inner nodes -or leaf nodes without being actually attached to any specific nodes yet. - -No change in relational schema yet. -The schema still forces tags to be assigned to only one folder or folder -set, even if the API assumes that a tag can be assigned to several folders. - -============================================================================== -!2006.03.02 - Uli - -Removed non-uniformity in IOV retrieval for SV folders by implementing -Andrea's proposal for a two-step query strategy - query max(since) -followed by query for since=max(since). - -============================================================================== -!2006.03.01 - Andrea - -Completed internal formal cleanup of IOV table queries. -All IOV table queries have now been moved from RalObjectTable to -RelationalObjectTable and proceed through generic (non-CORAL specific) -methods in RelationalQueryMgr (implemented via CORAL in RalQueryMgr). - -============================================================================== -!2006.03.08 - Marco - -*** BRANCH RELEASE NOTES *** - -Tag COOL_1_2_9 (non-HEAD branch after COOL_1_2_8). -Backward-compatible production release. -Same code as 1.2.8, but compiled against LCG_42_4. - -============================================================================== -!2006.01.27 - Andrea - -Tag COOL_1_2_8. Backward-compatible production release (internal migration -from SEAL Reflex to ROOT Reflex; port to gcc344; attempted port to AMD64). - -Minor API changes ("long" -> "int") to attempt AMD64 port, should be -backward compatible for users on 32bit machines. No added functionalities. - -============================================================================== -!2006.01.27 - Andrea - -Note about the port from Reflection to Reflex: workarounds have been added -because SEAL exceptions are not caught from Cintex. This was already an -issue in COOL_1_2_7 (SEAL Cintex) and remains in COOL_1_2_8 (ROOT Cintex). -This was possible in PyLCGDict2/Reflection but was removed from Cintex/Reflex. -- Bug report (bug #14685): cintex does not catch seal exceptions -- Could be solved by deriving seal::Exception from std::exception (sr #100955) - -============================================================================== -!2006.01.27 - Sven - -Changes in handling of count(*) return type to ensure compatibility with MySQL -server 5.0 : essentially use the default CORAL return type (thanks to Ioannis). - -============================================================================== -!2006.01.27 - Andrea - -Many changes towards completing the AMD64 port (Uli, Sven, Marco, Andrea). -Got rid of "long" wherever possible, replaced by "int". - -Used many #ifdef to disable parts of the code on AMD64 -(essentially the storage of "long", keeping only "int" and "long long"), -but this is not a valid solution: all three types must be analysed, -the solution should be to throw an exception when storing "long". -This should be for 32bit platforms too for portability and will break the -current API for 32bit platforms (users should only store "int", not "long"). - -AMD64 port not completed because of pending bugs in CORAL and POOL: -- AttributeList in CORAL and POOL must analyse all three integers - (segmentation fault for missing integer type - bug #14684) -- MySQLAccess and SQLiteAccess return 4294967295 when 9223372036854775807 - was stored (bug #14688) - -Before completing the AMD64 port, a SEAL feature may also be changed: -- IntBits<64> is long long on 32bit, long on 64bit platforms (bug #14671) - -After solving all problems in SEAL, CORAL and POOL for AMD64, -a few pending issues in COOL also need to be addressed: -- Bug in COOL, at first incorrectly identified as a bug in ROOT (bug #14681) - -============================================================================== -!2006.01.16 - Andrea - -Tag COOL_1_2_7. Backward-compatible production release -(internal migration from RAL to CORAL and from Reflection to seal Reflex). - -All tests successful against Oracle, MySQL and SQLite using CORAL_1_2_1 -(including many CORAL bug fixes contributed by the COOL team). - -Workarounds for problems in PyCool and PyCoolUtilities after Reflex migration: -- disabled tests with mutex lock in boost/PyROOT (all platforms and backends) -- hacked config to have SEAL before ROOT (different/incompatible PyCintex.py) -- manually minimize windows during Windows test execution (ROOT window popup) - -Workaround in Examples for minor MySQLAccess bug (insertion of "'" character). - -First release with MySQL support on Windows (thanks to CORAL migration). - -============================================================================== -!2006.01.11 - Marco - -Complete migration of PyCool from seal Reflection to seal Reflex. -New mutex lock problem observed from boost/PyROOT/Reflex interaction. - -============================================================================== -!2005.12.16 - Marco - -First release candidate for COOL_1_2_7 based on CORAL_1_2_0. -MySQL and SQLite tests still fail. - -============================================================================== -!2005.12.09 - Marco - -Added thin layer to make the public API backward compatible. -Methods returning new CORAL AttributeList -kept as temporary extension, with suffix _new. - -Fixed gcc 3.4.4 compilation (bug #13395) - -============================================================================== -!2005.12.08 - Sven - -Internal reimplementation based on CORAL. -Oracle tests successful. MySQL and SQLite tests fail. - -API not backward compatible: POOL AttributeList -replaced by CORAL AttributeLists in the API. - -============================================================================== -!2005.11.15 - Andrea, Sven - -Internal tag COOL_1_2_7-pre1 (prepare for the CORAL migration). -All C++, PyCool and PyCoolUtilities tests pass for slc3_ia32_gcc323_dbg. - -Fix eight bugs in transaction handling (read-write transactions instead of -read-only transactions were started in RalDatabase). - -New IteratorIsClosed exception. Rename IteratorHasStarted as IteratorIsActive. - -Added IObjectIterator::close() API and implementation. - -============================================================================== -!2005.11.15 - Marco - -Tag COOL_1_2_6. Production release (backward-compatible -SEAL_1_7_6 and POOL_2_2_4 upgrade release in the 1.2 series). - -============================================================================== -!2005.11.09 - Marco - -Change the definition of int64 min/max value constants in types.h. -After upgrading to SEAL_1_7_6, seal::IntTraits<>::Min/Max fail at link time -on Windows. Temporary (?) workaround: use in COOL the same values that are -used in the SEAL IntTraits.cpp implementation (taken from SealBase/LongLong.h). - -============================================================================== -!2005.11.02 - Sven, Andrea - -Added IDatabase::openDatabase() and closeDatabase() API and implemntation. - -Added ObjectNotFound exception to the API. - -Added implicit ChannelSelection constructor from a ChannelId to the API. -Removed IFolder::browseObjects for a single channel (user code is not -broken as it can now use the implicit conversion to ChannelSelection). - -Added IFolder::countObjects API and implementation. - -Added live browsing functionalities for object iteration. -Added IFolder::setPrefetchAll() API and implementation (to choose -whether the browse methods should return a vector or live iterator). - -Added IObjectVector and IObjectVectorPtr type definitions to the API. -Added IObjectIterator::fetchAllAsVector API and implementation -(to retrieve all objects in the iterator as an STL vector). - -First prototype of STL-like iterator interface for object browsing. -Removed from public API, may be reintroduced later on. - -Clean up RalDatabase implementation using session() instead of m_session. - -Start internal reimplementation using new classes Ral/RelationalQueryMgr -and RelationalTableRow to remove some responsibilities from RalDatabase. - -============================================================================== -!2005.10.24 - Andrea, Marco - -Tag COOL_1_2_5. Production release (backward-compatible -SEAL_1_7_5 and POOL_2_2_3 upgrade release in the 1.2 series). - -Retag COOL_1_2_4 code as COOL_1_2_5. -Do not include changes other than those in VersionInfo and related tests. - -============================================================================== -!2005.10.05 - Andrea - -Add scripts for gathering Oracle table/schema statistics. - -============================================================================== -!2005.09.29 - Andrea, Sven, Marco, David, Uli - -Tag COOL_1_2_4. Production release (backward-compatible -bug-fix and POOL_2_2_1 upgrade release in the 1.2 series). - -VersionInfo: -- Release number = 1.2.4 -- Schema version = 1.2.0 -Backward compatibility with data written -using previous releases 1.2.3, 1.2.2, 1.2.1 and 1.2.0. - -All tests pass on all four supported platforms: slc3_ia32_gcc323, -slc3_ia32_gcc323_dbg slc3_ia32_gcc323_gcov and win32_vc71_dbg. - -- Upgrade to POOL_2_2_1 and SEAL_1_7_3 using LCG_37_2a - -- Identified and fixed outstanding memory leaks in COOL and POOL - (in close collaboration between the COOL and POOL teams for POOL) - > memory leak in all three flavours of RAL queries fixed in POOL_2_2_1 - (destructor for Oracle/MySQL/SQLite cursor was not called - note that - protected virtual destructor for IRelationalCursor is still missing) - > memory leak in AttributeList (only observed for osx103) fixed in - POOL_2_2_1 (missing destructors for Attribute[List][Specification]) - > memory leak in COOL fixed by disabling cool::TimingReport - (workaround: the real leak still needs to be identified and removed) - > ported ProcMemory utility class to osx103 and Windows for memory leak - analysis on Mac and Windows - -- Internal implementation changes - > move large fraction of RalDatabase.cpp to new class RelationalObjectTable - -============================================================================== -!2005.08.29 - Andrea, Sven and Marco - -Tag COOL_1_2_3. Production release (backward-compatible -API enhancement and bug-fix release in the 1.2 series). - -VersionInfo: -- Release number = 1.2.3 -- Schema version = 1.2.0 -Backward compatibility with data written -using previous releases 1.2.2, 1.2.1 and 1.2.0. - -All tests pass on all four supported platforms: slc3_ia32_gcc323, -slc3_ia32_gcc323_dbg slc3_ia32_gcc323_gcov and win32_vc71_dbg. - -============================================================================== -!2005.08.26 - Andrea and Sven - -- Move current mechanism for CLOB support from private to TEMPORARY public API - > document it as a TEMPORARY API extension that may be removed in COOL_1_3_0 - -============================================================================== -!2005.08.18 - Andrea and Sven - -- Added IDatabase::tagScope( tagName ) to get the scope of a tag (Andrea) - > returns the name of the node where the tag is defined - > throws TagNotFound if not found and ReservedHeadTag for HEAD tags - -- Added IDatabaseSvc::serviceVersion() to get library release tag (Andrea) - -============================================================================== -!2005.08.10 - Andrea and Sven - -- Added IFolder::folderAttributes() to get backend-specific properties (Andrea) - > for MV folders (3): the names of the IOV, tag and IOV2tag tables - > for SV folders (1): the name of the IOV table - -- Progress in understanding of problems with MyODBC bulk insertion (Marco) - > introduced workaround in COOL to disable MyODBC bulk insertions for all - tables with over 8kb data volume in each row (summed over all columns): - the problem does not affect only CLOBs, for instance bulk insertion into - three characters of 3000 characters would also generate a runtime error - > also understood that "bulk insertion" in MyODBC does not use bind - variables: this may imply a potentially large performance penalty - (which may be enough to motivate a switch from MyODBC to native MySQL API) - -- Internal support for CLOBs - not yet exposed in the public API (Marco) - > enable 'storage hints' for 64K and 16M CLOBs - > add tests of CLOB storage and retrieval using orivate API - -- Bug fixes in tag handling (Andrea) - > deleteGlobalTagTableRow was taking only one tagId argument, but the - PK for the global tag table also includes nodeId - > also correct error message printed out by deleteGlobalTagTableRow - -- API extensions for multi-channel bulk retrieval (Sven) - -- First prototype of infrastructure to create doxygen-based user guide (Andrea) - -============================================================================== -!2005.07.27 - Andrea and Sven - -Tag COOL_1_2_2. Production release (upgrade to SEAL_1_7_1 bug fix release). - -VersionInfo: -- Release number = 1.2.2 -- Schema version = 1.2.0 -Backward compatibility with data written -using previous releases 1.2.1 and 1.2.0. - -All tests pass on all four supported platforms: slc3_ia32_gcc323, -slc3_ia32_gcc323_dbg slc3_ia32_gcc323_gcov and win32_vc71_dbg. - -- Upgrade to POOL_2_1_2 and SEAL_1_7_1 using LCG_36_2a. - No change in the COOL code. - -- Upgrade to POOL_2_1_2 includes bug fix proposed by Marco for CLOBs - in OracleAccess (with extra improvements by Ioannis). - -============================================================================== -!2005.07.20 - Andrea and Sven - -Tag COOL_1_2_1. Production release (backward-compatible -API enhancement and bug-fix release in the 1.2 series). - -VersionInfo: -- Release number = 1.2.1 -- Schema version = 1.2.0 -Backward compatibility with data written using previous release 1.2.0. - -All tests pass on all four supported platforms: slc3_ia32_gcc323, -slc3_ia32_gcc323_dbg slc3_ia32_gcc323_gcov and win32_vc71_dbg. - -- Privilege management - > completed API and tools to grant reader, writer and tagger privileges: - added coolPrivilege command line utility to implemente them; - completed test suite in tests/Privileges (only tested on Oracle!) - > added private relational exceptions TableNotDropped, RowNotUpdated, - RowNotDeleted, RowNotInserted to test exceptions thrown because - of missing database privileges - > still missing for a future release (if needed): test on MySQL - -- Bug fixes in POOL - [available in POOL_HEAD two weeks ago but not included in COOL_1_2_1-pre1] - > "max# of open cursors exceeded" reported by David in Oracle, - identified by Sven in bulk insertion and fixed by Ioannis - [unfortunately this does not help much with memory leak reported by David] - > "pthread_mutex_lock" fixed by Ioannis using Andrea's suggestion to - disable Oracle multithreading (replace OCI_THREADED by OCI_DEFAULT) - [pthread_mutex_lock is indeed solved by removing OCI_THREADED: - cross-checked by running the same test with the ONLY difference - of enabling/disabling OCI_THREADED in a custom private version of POOL] - -- First production release with support for SQLite. - All unit tests pass for SQLite (after upgrade to POOL_2_1_1). - -- Extensive API cleanup for tag handling for HEAD and single-version folders - > add FolderIsSingleVersion exception: this is thrown for SV folders - by IFolder::tag() and internally by RelationalFolder::tagTableName() - and RelationalFolder::object2TagTableName() - > add ReservedHeadTag exception: this is thrown when trying to tag a node - using the "" or "HEAD" tags or trying to delete the "" or "HEAD" tags - > treat "" and "HEAD" (or any case insensitive variant such as "head" or - "Head") as equivalent in all methods: add method IHvsNode::isHeadTag() - method to test if a tag name is a reserved HEAD tag - > except for "HEAD", all other tag names are case sensitive - > IDatabase::existsTag() now returns true for both "" and "HEAD" - > IFolder::findObject() and IFolder::browseObjects() now accept both "" - and "HEAD" to indicate the HEAD tag; for all other tag names, throws - TagNotFound if tag does not exist or folder is a single version folder - > IFolder::tag() throws ReservedHeadTag for "" and "HEAD"; for all other - tag names, throws FolderIsSingleVersion for single version folders - and TagExists if the tag already exists for multi-version folders - > IFolder::deleteTag() throws ReservedHeadTag for "" and "HEAD"; for all - other tag names, throws TagNotFound if tag does not exist or folder is - a single version folder - > IHvsNode::listTags() does NOT list "" or "HEAD"; - it returns an empty list for folder sets and SV folders - > IHvsNode::tagDescription() returns default "HEAD tag" for "" and "HEAD"; - it throws TagNotFound for all other tags in folder sets and SV folders - > IHvsNode::tagInsertionTime() returns node insertion time for "" and "HEAD"; - it throws TagNotFound for all other tags in folder sets and SV folders - -- Further improvements in API for tagging methods - > declare the two tag() methods obsolete (to be removed in COOL_1_3_0) - in IFolder, rename them as tagCurrentHead and tagAsOfDate - [very dangerous in RalDatabase: tag() method with asOfDate argument was - called instead of tag() method with asOfObjectId argument if the latter - was commented out - implicit conversion of unsigned long to seal::Time!] - > add IFolder::tagLastObjectTime method - > use a string reference argument instead of a string argument - in IHvsNode::tagDescription and IHvsNode::tagInsertionTime - -- Internal cleanup of HvsNode, RelationalFolder and RelationalFolderSet - > renamed HvsNode as RelationalHvsNode - > RelationalFolder[Set] derived class inheriting from RelationalHvsNode - (modified listTags, tagDescription and tagInsertionTime accordingly): - this implied some debugging of 'inheritance by dominance' on Windows - and forced the use of inlined constructors for RelationalFolder[Set] - -- Bug fixes - > deleteTag() throws an exception if the number of rows deleted from the - object2tag table is different from the selected COUNT(*) for such rows - (computed using new method countObject2TagTableRows) - > IDatabase::dropNode also deletes any tags associated to the node - (and throws a RelationalException if such tags cannot be deleted) - -- Unit test coverage reports - > added support for slc3_ia32_gcc323_gcov: unit test coverage reports - will be built by the SPI team (thanks to Johanne!) - -============================================================================== -!2005.07.07 - Andrea and Sven - -Tag COOL_1_2_1-pre1. Internal tag. - -- Bug fixes in COOL: - > bug in dropping MV tables (reported by Federico, fixed by Sven) - > uninitialized variable in RelationalTypeConverter (Sven/Andrea) - -- API improvements - > added method IFolder::deleteTag (Sven) - > clarified exceptions thrown by dropDatabase and dropFolder methods, - throwIfDoesNotExist flag in dropDatabase and dropNode declared obsolete: - kept for backward compatibility, will be removed in COOL_1_3_0 (Andrea) - > add isFolderSet/isFolder flag to Folder/FolderSetNotFound exceptions - -- Internal refactoring - > new implementation of fetchObjectTableRows (Sven) - > gmtime tests moved to test_utilities, now included in test suite (Sven) - > add private NodeTableRowNotFound exception to fix inconsistencies (Andrea) - > extensive cleanup of dropDatabase and dropNode (Andrea) - -- Started work on privilege management (Andrea) - > added private class RalPrivilegeManager - > added tests to access database as owner/reader/writer/tagger/nopriv role - -- Bug fixes in POOL (see COOL_1_2_1) available in POOL_HEAD but not yet - included (tests for COOL_1_2_1-pre1 executed using POOL_2_1_0) - -============================================================================== -!2005.06.28 - Andrea and Sven - -Tag COOL_1_2_0. Production release (first release in the 1.2 series). - -VersionInfo: -- Release number = 1.2.0 -- Schema version = 1.2.0 -Backward compatibility with data written using NO previous release. - -All tests pass on all three supported platforms: -slc3_ia32_gcc323, slc3_ia32_gcc323_dbg and win32_vc71_dbg. - -All tests executed also on all RH73 platforms using private POOL_2_1_0 -(this was actually done using the code as of June 20, before some last fixes). -Last release with unit tests run on RH73 (not supported anymore by POOL/AF). -All tests pass on rh73_gcc323, rh73_gcc32 and rh73_gcc32_dbg, but the -RalDatabase unit test HANGS (__pthread_mutex_lock) on rh73_gcc323_dbg. -Commit the log file with failure (after Ctrl-C) fo reference. -Do not attempt to debug the problem, as RH73 is not supported anymore. - -PS: A __pthread_mutex_lock was also observed on SLC (in the same method -as RH73, the first time the unit tests were executed. The problem -disappeared when the unit tests were rerun on another SLC host. -It is likely that the source of the problem has been identified as the use -of multi-threaded OCI in RAL and will be removed in the next release of POOL. - -============================================================================== -!2005.06.28 - Andrea and Sven - -- Workaround for a bug in the seal::Time constructor. - > The bug affected unit tests on Windows (which may or may not fail - depending on local environment such as the summer time clock setting). - -- API enhancements - > Add the setDescription() method to change folder/folderset descriptions - -- Bug fix - > Fix bug reported by Federico: when inserting [20,+inf) over [30,+inf) - in single version mode, the latter was modified to [30,20] - -============================================================================== -!2005.06.17 - Andrea and Sven - -- Payload type handling improvements - > restrict uInt64 user payload to same 63-bit range as IOVs [0, 2^63-1] - -- Internal code cleanup - > tidy up (a bit, not complete!) the fetching of rows from the IOV table - -============================================================================== -!2005.06.13 - Andrea and Sven (with useful contributions from MANY people!) - -Tag COOL_1_2_0-pre1. Internal tag. - -- API changes (backward-incompatible) - > add IFolderSet interface and related methods in IDatabase - > changed IDatabase::dropFolder to dropNode - > removed IDatabase::listFolders - > implementation code has been changed accordingly - -- Performance improvements (pbs reported by DirkD) - > SV insertion: better scalability of query for last IOV by querying max(Id) - > findObject(): factor 2 improvement by removing useless node table lookup - -- Schema improvements (schema changed to 1.1.1) - > store insertion times as GMT with " GMT" appended (pb reported by Torre) - > change name of unique constraint on tag name - > changed index on node full path to unique (pb reported by DavidF) - > prepared simple utility to dump the COOL Oracle schema - -- DatabaseId and authentication improvements - > support POOL XMLAuthenticationService (also support COOL URL syntax) - > hide passwords from all printouts in the implementation code - > support the "host:port[/service]" syntax for Oracle and MySQL - -- Payload type improvements (thanks to Rado and Ioannis for RAL fixes) - > reenabled bool and unsigned char user payload (fixed in POOL HEAD) - > internally replaced maxSizeForCpp by checkStorageHintCompliance - -- Work on SQLite support (thanks to MarcoC and Zhen for many patches) - -All tests pass on rh73_gcc323 (using privately built POOL libraries -from POOL HEAD at -D "2005/06/15 12:00:00", later than POOL_2_1_0-zeta). - -============================================================================== -!2005.05.25 - Andrea and Sven - -Tag COOL_1_1_0. Production release (first release in the 1.1 series). - -VersionInfo: -- Release number = 1.1.0 -- Schema version = 1.0.1 -Backward compatibility with data written using releases 1.0.2 and 1.0.1. - -All tests pass on all seven supported platforms. - -============================================================================== -!2005.05.23 - Andrea and Sven - -Tag COOL_1_1_0-pre1. Internal tag. - -Major code repackaging and API changes -- RelationalCool is a plugin with no public header file -- move technology-independent exceptions from RelationalCool to CoolKernel -- move database service factory (and dependency on SealServices) from - RelationalCool to new package CoolApplication: there are now four tagged - packages in src (CoolKernel, RelationalCool, CoolApplication, Utilities) - -Functionality and performance improvements -- simultaneous bulk insertion into many channels does not throw an exception - any more (but more complete performance optimization will come in later tags) -- internally refactor store[Single/Multi]VersionObjects to use common code - -All tests pass on rh73_gcc323. - -============================================================================== -!2005.05.09 - Andrea and Sven - -Tag COOL_1_0_2. Production release (backward-compatible -API enhancement and bug-fix release in the 1.0 series). - -API enhancements: -- IFolder::listChannels -- IHvsNode::listTags and two related methods - -Bug fixes: -- prevent creation of two folders with the same name from two concurrent jobs - -VersionInfo: -- Release number = 1.0.2 -- Schema version = 1.0.1 -Backward compatibility with data written using release 1.0.1. - -All tests pass on all seven supported platforms. - -First production release using the new COOL CVS repository. - -============================================================================== -!2005.05.02 - Andrea and Sven - -Tag COOL_1_0_2-pre1. - -Internal tag: same code as COOL_1_0_1, using the new COOL CVS repository. - -============================================================================== -!2005.04.25 - Andrea and Sven - -Tag COOL_1_0_1. Production release (bug fix release in the 1.0 series). - -Bug fix: ValidityKey range checks added for MultiVersion folders. - -VersionInfo: -- Release number = 1.0.1 -- Schema version = 1.0.1 -Backward compatibility with data written using NO previous release. - -All tests pass on all seven supported platforms. - -ValidityKey type definition and allowed range unchanged: unsigned int64 -in [0, +9223372036854775807]. Schema version number changed to 1.0.1 -just to enforce that ValidityKey's > +9223372036854775807 are excluded. - -Support for unsigned int64 in user defined folder payload is unchanged. -Users can store also values in [+9223372036854775808, +18446744073709551615], -as long as they are aware how MySQL would interpret any queries on them. -In any case, it is not the responsibility of COOL to implement such queries. - -============================================================================== -!2005.04.22 - Andrea and Sven - -Tag COOL_1_0_0. FIRST PRODUCTION RELEASE! - -Minor change in SQL types: hack to change "RAL default" to NUMBER(10) -for long and unsigned long, and to NUMBER(20) for unsigned long long. - -Small bug fix in the unit tests (check on ValidityKeyMin hardcoded value). - -VersionInfo: -- Release number = 1.0.0 -- Schema version = 1.0.0 - -All tests pass on all seven supported platforms -(rh73_gcc323, rh73_gcc323_dbg, rh73_gcc32, rh73_gcc32_dbg, -slc3_ia32_gcc323, slc3_ia32_gcc323_dbg, win32_vc71_dbg). - -Dropped the idea of reviewing PK, UK and FK constraints and indexes as -it might take too much time. This can still be done in the next release. -Scripts can be provided to upgrade the schema, to add a few missing columns -(e.g. node_id with a fixed value in all folder-specific tables, usertag_id -in the IOV table...) and to drop and recreate indexes and constraints. - -Dropped the idea of providing Mac support and/or of providing scripts -for standalone local installations. These issues will be addressed later. - -============================================================================== -!2005.04.21 - Andrea and Sven - -Tag COOL_1_0_0-pre3 (production release 1.0.0 third internal prerelease). - -Extensive checks of SQL types. -Forced to introduce many workarounds for bugs and features in RAL and Oracle. - -- Problem with signed long long - (OCI-22053 when retrieving LLONG_MIN = -9223372036854775808). - This could be cured by limiting long long to >= -9223372036854775807. - TEMPORARY? More radical approach: get rid of signed long long for now. - Declare that long long in user payload is not supported. - *** Change ValidityKey to unsigned long long, but use only 63 bits *** - *** Change ValidityKeyMin to 0, keep ValidityKeyMax=9223372036854775807 *** - Eventually: rediscuss with the users if they want a signed or unsigned key. - Eventually: implement C++ check that user payload long long >= sInt64Min+1. - -- Problem with bool - (bug in RAL bulk insertion for both Oracle/MySQL, false=0 stored as true=1). - TEMPORARY! Declare that bool is not supported in user payload. - Eventually: bug fixed in OracleAccess-1-5-4 and ODBCAccess-1-1-14. - -- Problem with unsigned char - (no default SQL type in RAL OracleAccess). - TEMPORARY! Declare that unsigned char is not supported in user payload. - Eventually: bug fixed in OracleAccess-1-5-5. - -- Problem with long double - (no default SQL type in RAL MyODBCAccess). - TEMPORARY! Declare that long double is not supported in user payload. - Eventually: bug should be fixed in new MyODBCAccess. - -- Problems with char - (MySql error "String data, right truncated" in reading back 'a' or 'Z') - (Oracle stores and retrieves different values for binary data CHAR_MIN/MAX) - TEMPORARY! Declare that char is not supported in user payload. - Eventually: investigate and fix/workaround the two bugs - (should there be also a check that char is used only for character data?). - -============================================================================== -!2005.04.20 - Andrea and Sven - -Tag COOL_1_0_0-pre2 (production release 1.0.0 second internal prerelease). - -Final bug fixes. All tests pass on all seven supported platforms. - -============================================================================== -!2005.04.16 - Andrea and Sven - -Tag COOL_1_0_0-pre1 (production release 1.0.0 first internal prerelease). - -Code tested on rh73_gcc323 using the current configuration (one failure). -To do before the production release: -- fix the test that failed -- update to latest SEAL/POOL releases -- run tests on all four platforms - -Latest features added: -- Added ExtendedAttributeListSpecification adding one "hint" for each - attribute. This is used to create tables with non-default SQL types - (such as 4000-characters string instead of 255-character). Size - compliance checks are implemented everywhere. Hints (strings) replace the - previous implementation based on unsigned long sizes. - -Updated TODO list of functionalities to add in backward compatible way -(AFTER THE PRODUCTION RELEASE AND ITS DOCUMENTATION!): -- Add tests that folder description and tag description are limited in size -- Expose non-default hint functionality in public API to allow - storage of 4000 character strings -- The same functionality may be extended to store NUMBERS instead - of native BINARY_FLOAT in Oracle if requested for PVSS -- Once the problems with CLOB in Oracle are solved, add CLOB support -- Add methods to browse through the folder set hierarchy -- Add methods to add references to external tables -- Add user tags (this will require adding some columns) -- Review indexes, UK, FK in the relational schemas (this will require - creating methods and/or scripts to drop all indexes and FKs and - recreate new ones) - -============================================================================== -!2005.04.09 - Andrea and Sven - -Intermediate changes towards the production release: -- Renumber object_id encoding schema from 3N+0,1,2 to 6N+0,1,2,3,4,5 - to foresee the future implementation of user tags -- Implement string size checks in some of the tables -- Implement non-default string SQL types for some columns of some tables - -============================================================================== -!2005.04.05 - Andrea and Sven - -Intermediate changes towards production release (up to and including April 5): -- Renumber object_id to keep objects ordered with respect to version 'layers' - (also introduce internal tagAsOfObjectId functionality and unit tests for it) -- Introduce release number comparison (start addressing schema evolution) -- Internal name changes XXX_FOLDERS to XXX_NODES, folderId to nodeId, - FolderTable to NodeTable, FolderExistsException to NodeExistsException etc... -- Various bug fixes (browsing, MV-processing...) - -============================================================================== -!2005.03.20 - Andrea and Sven - -Intermediate tags towards the production release. - -Tag COOL_0_2_0-pre4: -- Final step in int64 IOV implementation: change ValidityKeyMin/Max - to LONG_LONG_MIN/MAX [-9223372036854775808, +9223372036854775807]. - -Tag COOL_0_2_0-pre3: -- Implemented since/until IOV storage type as signed int64. All tests pass. - No change in the accepted min/max boundaries for IOVs yet. -- Bug fix in RelationalFolder: clear storage buffer when storing fails -- This tag requires RelationalAccess-1-5-0 and OracleAccess-1-5-1 or later - (POOL tag does not exist yet, COOL config will be modified and retagged) - -Tag COOL_0_2_0-pre2: -- Name change: rename IValidityKey as ValidityKey and IChannelId as ChannelId - and check that all tests still pass. No change in stored type yet. - -Tag COOL_0_2_0-pre1: -- Minimal change: replace seal::LongLong by seal::IntBits<64>::SLeast - and check that all tests still pass. No change in stored type yet. - -============================================================================== -!2005.03.19 - Andrea and Sven - -Intermediate tags towards the production release. - -Tag COOL_0_1_1-pre2: -- Bypassed segmentation fault and mutex lock by using debug libraries - also on non-debug platforms -- Reenabled all test in RalDatabase_versioning test -- All tests from execUnitTests pass for both Oracle and MySQL on all of - rh73_gcc323, rh73_gcc323_dbg, rh73_gcc32, slc3_ia32_gcc323 -- Last stable tag before starting the implementation of int64 and CLOBs - -Tag COOL_0_1_1-pre1: -- Fixed the problem with tagging in MySQL - (change COOL usage of bind variables to bypass RAL problem) -- Changed online/offline to single/multi version -- Changed till to until consistently -- Changed getters consistently -- Consistently removed NULL values from all database tables - (copying AttributeList's will not work with NULL result sets from RAL) -- Fixed bugs in COOL with MySQL date (%i format and second granularity) and - MySQL bind variables (they need to be in the same order in the AttrList) - and fixed bugs in RAL (as of POOL_2_0_2) with MyODBC '\0' strings -- Move description() method for folders to IHvsNode and return - a string reference consistently to other IHvsNode string methods. -- Add a method to declare that some payload columns reference external payload. - Dummy implementation for the moment. -- Identified a workaround for the segmentation faults and mutex locks found - in RalDatabase_versioning test. Will become default as of next tag. - -============================================================================== -!2005.03.03 - Andrea and Sven - -First complete prototype with the versioning and tagging functionalities. -Tagged as prerelease COOL_0_1_0-pre1. -Tagged as prerelease COOL_0_1_0-pre2 (only configuration changes). - -This pre-release suffers from a known problem with MySQL in RAL -("since < :a and :a < until" will not work): use it only for Oracle. - -============================================================================== -!2005.02.02 - Andrea and Sven - -First version made publicly available for feedback. -Tagged as prerelease COOL_0_0_3-pre1. -Tagged as prerelease COOL_0_0_3-pre2 with Windows support added. - -============================================================================== -!2004.11.21 - Andrea and Sven - -New package. - -This package contains the implementation of the Cool kernel component -using the POOL RelationalAccess layer (RAL). - -============================================================================== diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolExecuteSql.csh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolExecuteSql.csh deleted file mode 100755 index c684080209116..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolExecuteSql.csh +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/tcsh -f -# 2013.06.05 Use /bin/tcsh instead of /bin/csh for better sqlplus return code! -# You should really get rid of this script or move it to bash... - -if ( "$1" != "-html" ) then - set theHtml = OFF - set theArg1 = "$1" - set theArg2 = "$2" - set theArg3 = "$3" -else - set theHtml = ON - set theArg1 = "$2" - set theArg2 = "$3" - set theArg3 = "$4" -endif - -if ( "$theArg2" == "-e" || "$theArg2" == "-eb" ) then - if ( "$theArg2" == "-e" ) then - set theCmd = ON - else - set theCmd = BATCH - endif - set theConnStr = "$theArg1" - set theSqlFile = "$theArg3" -else - set theCmd = OFF - set theConnStr = "$theArg1" - set theSqlFile = "$theArg2" -endif - -#echo "theHtml = $theHtml" -#echo "theCmd = $theCmd" -#echo "theConnStr = $theConnStr" -#echo "theSqlFile = $theSqlFile" - -if ( "$theConnStr" == "" || "$theSqlFile" == "" ) then - echo "Usage: $0 '[-html]' dbId { file.sql | -e 'command' | -eb 'command' }" - echo Example: $0 '"oracle://SERVER;schema=SCHEMA;dbname=DB"' file.sql - echo Example: $0 -html '"oracle://SERVER;schema=SCHEMA;dbname=DB"' file.sql - echo Example: $0 '"mysql://SERVER;schema=SCHEMA;dbname=DB"' -e 'cmd' - echo Example: $0 '"mysql://SERVER;schema=SCHEMA;dbname=DB"' -eb 'cmd' - echo Example: $0 -html '"mysql://SERVER;schema=SCHEMA;dbname=DB"' -eb 'cmd' - exit 1 -endif - -set theAuth = `coolAuthentication "$theConnStr" | & grep '==>'` -set theAuth = `echo "$theAuth ==>"` -#echo "theAuth = $theAuth" - -set theUrl = `echo "$theAuth" | awk '{str=$0; sep="==> urlHidePswd = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -#echo "theUrl = $theUrl" - -if ( "$theUrl" == "" ) then - echo "ERROR! Could not execute SQL script $theSqlFile against COOL database "\""$theConnStr"\" - echo "ERROR! Invalid COOL databaseId or missing authentication credentials" - exit 1 -endif - -if ( "${theHtml}" != ON && "${theCmd}" != BATCH ) then - echo Execute SQL script \""$theSqlFile"\" against COOL database \""$theUrl"\" -endif - -set theTech = `echo "$theAuth" | awk '{str=$0; sep="==> technology = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -set theHost = `echo "$theAuth" | awk '{str=$0; sep="==> server = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -set theSchema = `echo "$theAuth" | awk '{str=$0; sep="==> schema = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -set theUser = `echo "$theAuth" | awk '{str=$0; sep="==> user = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -set thePswd = `echo "$theAuth" | awk '{str=$0; sep="==> password = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -set theDbName = `echo "$theAuth" | awk '{str=$0; sep="==> dbName = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; str=substr(str,1,ind); l=length(str); cr=substr(str,l); if (cr=="\r") print substr(str,1,l-1); else print str;}'` -#echo "theTech = $theTech" -#echo "theHost = $theHost" -#echo "theSchema = $theSchema" -#echo "theUser = $theUser" -#echo "thePswd = $thePswd" -#echo "theDbName = $theDbName" -#exit 1 - -# 2013.06.05 - support for Kerberos proxy authentication -if ( "$thePswd" == "" ) then - set theProxy="[${theSchema}]" -else - set theProxy="${theUser}" -endif - -# 2005.06.22 -# Here was a CHARMING bug (introduced by upgrading version of cygwin?). -# For theTech="oracle", on Windows this was actually equal to "oracle\r". -# All of the following returned (7,7) on Windows and (6,0) on SLC. -# echo a | awk -v s=$theTech '{print length(s), index(s,"\15")}' -# echo a | awk -v s=$theTech '{print length(s), index(s,"\015")}' -# echo a | awk -v s=$theTech '{print length(s), index(s,"\r")}' -# As a consequence ( "$theTech" == "oracle" ) was false on Windows. -# Now fixed by explicitly removing "\r" in awk above. -# For Oracle both Windows and SLC return (6,0). - -if ( "$theCmd" == "OFF" ) then - if ( ! -e "$theSqlFile" ) then - echo "ERROR! File not found: '$theSqlFile'" - exit 1 - endif - set theSqlScript = `basename $theSqlFile` - set theSqlDir = `dirname $theSqlFile` - #echo "theSqlScript = $theSqlScript" - #echo "theSqlDir = $theSqlDir" -else - set theSqlDir = . -endif - -# HACK on Windows (limit to the size of file names) -pushd $theSqlDir > /dev/null -set theSqlDir = . -#echo "theSqlDir = $theSqlDir" - -# Return code -set theStatus=0 - -#-------- -# Oracle -#-------- -if ( "$theTech" == "oracle" ) then - - set theSilent="-S" - ###set theSilent="" - - if ( "${theHtml}" == ON ) then - - if ( "$theCmd" == "OFF" ) then - # This format requires "quit;" at the end of the script... - #sqlplus ${theSilent} -L -M "HTML ON" "${theProxy}/${thePswd}@${theHost}" @${theSqlDir}/${theSqlScript} - # This format does NOT require "quit;" at the end of the script! - cat ${theSqlDir}/${theSqlScript} | sqlplus ${theSilent} -L -M "HTML ON" "${theProxy}/${thePswd}@${theHost}" - set theStatus=${status} - else - # This format does NOT require "quit;" at the end of the script! - # Enclose it in quotes to be able to 'select * from table'...! - echo "whenever sqlerror exit 1\n${theSqlFile}" | sqlplus ${theSilent} -L -M "HTML ON" "${theProxy}/${thePswd}@${theHost}" - set theStatus=${status} - endif - - else - - if ( "$theCmd" == "OFF" ) then - # This format requires "quit;" at the end of the script... - #sqlplus ${theSilent} -L "${theProxy}/${thePswd}@${theHost}" @${theSqlDir}/${theSqlScript} - # This format does NOT requires "quit;" at the end of the script! - cat ${theSqlDir}/${theSqlScript} | sqlplus ${theSilent} -L "${theProxy}/${thePswd}@${theHost}" - set theStatus=${status} - else - # This format does NOT require "quit;" at the end of the script! - # Enclose it in quotes to be able to 'select * from table'...! - echo "whenever sqlerror exit 1\n${theSqlFile}" | sqlplus ${theSilent} -L "${theProxy}/${thePswd}@${theHost}" - set theStatus=${status} - endif - - endif - -#------- -# MySQL -#------- -else if ( "$theTech" == "mysql" ) then - - if ( "${theHtml}" == ON ) then - set theHtml = "--html" - else - set theHtml = "" - endif - - # A special treatment is needed for the host:port syntax: - # the port number must be parsed out and passed explicitly - set thePort = `echo "$theHost" | awk '{str=$0; sep=":"; ind=index(str,sep); if (ind>0) print "-P" substr(str,ind+length(sep)); else print "";};'` - set theHost = `echo "$theHost" | awk '{str=$0; sep=":"; ind=index(str,sep); if (ind>0) print substr(str,0,ind-length(sep)); else print str;};'` - #echo "theHost = $theHost" - #echo "thePort = $thePort" - - if ( "$theCmd" == "OFF" ) then - mysql ${theHtml} -u${theUser} -p${thePswd} -h${theHost} ${thePort} ${theSchema} < ${theSqlDir}/${theSqlScript} - else - if ( "$theCmd" == "BATCH" ) then - mysql ${theHtml} -u${theUser} -p${thePswd} -h${theHost} ${thePort} ${theSchema} -B -N -e "${theSqlFile}" - else - mysql ${theHtml} -u${theUser} -p${thePswd} -h${theHost} ${thePort} ${theSchema} -e "${theSqlFile}" - endif - endif - -#-------- -# SQLite -#-------- -else if ( "$theTech" == "sqlite" ) then - - if ( "${theHtml}" == ON ) then - set theHtml = "-html" - else - set theHtml = "" - endif - - if ( "$theCmd" == "OFF" ) then - sqlite3 ${theHtml} ${theSchema} ".read ${theSqlDir}/${theSqlScript}" - else - sqlite3 ${theHtml} ${theSchema} "${theSqlFile}" - endif - -endif - -# HACK on Windows -popd > /dev/null - -exit ${theStatus} diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolSqlplus.sh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolSqlplus.sh deleted file mode 100755 index c2c3af6a91d8e..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/coolSqlplus.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -# See https://twiki.cern.ch/twiki/bin/view/PSSGroup/RlWrap -if [ "${SCRAM_ARCH:0:5}" = "win32" ]; then - cmd=`basename $0` - echo "ERROR! $cmd is not supported for $SCRAM_ARCH: use sqlplus instead" - exit 1 -elif [ "${CMTCONFIG:0:5}" = "win32" ]; then - cmd=`basename $0` - echo "ERROR! $cmd is not supported for $CMTCONFIG: use sqlplus instead" - exit 1 -else - rlwrap -h > /dev/null 2&>1 - if [ $? == 0 ]; then - rlwrap \sqlplus $@ - else - \sqlplus $@ - fi -fi - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.awk b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.awk deleted file mode 100644 index 61e04e8e07bd9..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.awk +++ /dev/null @@ -1,450 +0,0 @@ -#---------------------------------------------------------------------------- -# -# Title: "scramShowUses.awk" -# Author: Andrea Valassi (Andrea.Valassi@cern.ch) -# Date: 26-MAR-2004 -# -# Purpose: This AWK script is a 'CMT show uses' emulator for SCRAM. -# -# Usage: 'scram -debug b echo_INCLUDE | awk -f scramShowUses.awk' -# -# This command should be issued from a directory where one and only package -# would be built, i.e. a single package BuildFile is parsed by SCRAM. -# Error messages are printed if no package would be built, or if scram -# would process many packages recursively ('About to process:'...). -# The dependency analysis is based from a (almost) dry run of scram -# in debug mode, letting scram parse BuildFiles recursively and feeding -# the resulting output to AWK. Write access to the local release top is -# needed as 'scram b' will rebuild .mk file fragments in tmp. -# -#---------------------------------------------------------------------------- -BEGIN { - status = 0; - # Local top level project and package - thisProjName = ""; - thisLocalRTop = ""; - thisReleaseTop = ""; - thisPkg = ""; - # External tools on which this package depends - nExtTools = 0; - delete extToolVersMap; #vers[name] for all selected tools (even not ref'ed) - delete extToolNameVec; #name[1..n] - extToolRef = "ext" #my alternatives: 'ref' or 'ext' (keep 'use' for pkgs) - # External projects on which this package depends - nExtProjs = 0; - delete extProjPathVec; #path[1..n] - delete extProjNameMap; #name[path] - # External packages on which this package depends - nExtPkgs = 0; - delete extPkgNameVec; #name[1..n] - delete extPkgProjMap; #proj[name] - # Current nesting level of dependencies - currLevel = 0; - currPkg = ""; - delete bfHashVec; #hash[level] - delete bfHashMap; #level[hash] - bfHashVec[0] = ""; - ###print "BEGIN: LEVEL=" currLevel; -} -#---------------------------------------------------------------------------- -{ - if ( $1 == "About" && $2 == "to" && $3 == "process" ) { - print $0; - print "****************************************************************"; - print "* ERROR! *"; - print "* 1. Do not feed 'scram -debug b' to this script: *"; - print "* feed the output of 'scram -debug b echo_INCLUDE' instead! *"; - print "* 2. You cannot process multiple packages using this script: *"; - print "* change directory so that 'scram b' sees a single BuildFile! *"; - print "****************************************************************"; - status=1; exit status; - } -} -#---------------------------------------------------------------------------- -{ - if ( $1 == "Parse" && $2 == "Error" ) { - print $0; - getline; - print $0; - status=1; exit status; - } -} -#---------------------------------------------------------------------------- -{ - # Analysis of nesting level of dependencies proceeds via buildfile hash - # Initially I thought of parsing the BuildFiles but that is error prone! - if (index($1,">BuildSystem::BuildFile(BuildSystem::BuildFile=HASH(")==1) { - if ( bfHashVec[currLevel] != $1 ) { - hash = $1; - # First time a hash value is found - level 0 - if ( currLevel == 0 && bfHashVec[0] == "" ) { - bfHashVec[0] = hash; - bfHashMap[hash] = 0; - } - # Hash value of a previous build file - decrease level accordingly - else if ( hash in bfHashMap ) { - # Decrease until currLevel = bfHashMap[hash] - while ( currLevel != bfHashMap[hash] ) { - delete bfHashMap[bfHashVec[currLevel]]; - delete bfHashVec[currLevel]; - currLevel--; - } - } - # Hash value of a new build file - increase level by 1 - else { - currLevel++; - bfHashVec[currLevel] = hash; - bfHashMap[hash] = currLevel; - # Print the package names as dependencies for levels>=1 - # Leave two extra spaces for all levels>1 - space = ""; - for ( i=1; iFound" && $2 == "top" ) { - if ( $3 == "" ) { print "ERROR! Null `top`!"; status=1; exit status; } - # Read the project name from its Environment - projEnv = $3 "/.SCRAM/Environment"; - projName = ""; - while ( projName == "" ) { - get = getline record < projEnv; - if ( get == -1 ) { - print "ERROR! Environment not found for project " $3 - status = 1; exit status; - } - else if ( get == 0 ) { - break; #EOF - } - key = "SCRAM_PROJECTNAME"; - i = index( record, key ); - if ( i != 0 ) { projName = substr( record, i+length(key) ); } - while( index(projName," ") == 1 || index(projName,"=") ) { - projName = substr( projName, 2 ); - } - } - # Is this the local or remote release top? - if ( thisLocalRTop == "" ) { - thisLocalRTop = $3; - thisProjName = projName; - print "###############################################################"; - print "# *** PROJECT_NAME: " projName; - print "# *** PROJECT_RTOP_LOCAL: " thisLocalRTop; - extProjNameMap[thisLocalRTop] = thisProjName; - } - else if ( thisReleaseTop == "" ) { - if ( projName != thisProjName ) { - print "ERROR! Project name mismatch!"; - status = 1; exit status; - } - thisReleaseTop = $3; - print "# *** PROJECT_RTOP: " thisReleaseTop; - extProjNameMap[thisReleaseTop] = thisProjName; - } - else { - print "ERROR! Too many release tops!"; - status = 1; exit status; - } - } -} -#---------------------------------------------------------------------------- -{ - # Top level package - if ( $2 == "ParseBuildFile:" ) { - pkg = substr( $4, 1, index($4,"/BuildFile")-1 ); - # Project and release area for this package - if ( index(pkg,thisLocalRTop) == 1 ) { - pkg = substr( pkg, length(thisLocalRTop)+1 ); - } - else { - print "PANIC! ParseBuildFile invoked outside local release top? " $4; - status = 1; exit status; - } - # Package name - while ( index(pkg,"/") == 1 ) { pkg = substr( pkg, 2 ); } - while ( index(pkg,"./") == 1 ) { pkg = substr( pkg, 3 ); } - while ( index(pkg,"/") == 1 ) { pkg = substr( pkg, 2 ); } - while ( index(pkg,"./") == 1 ) { pkg = substr( pkg, 3 ); } - if ( index(pkg,"src/") == 1 ) { pkg = substr( pkg, 5 ); } - while ( index(pkg,"/") == 1 ) { pkg = substr( pkg, 2 ); } - if ( pkg == "" ) { - print "ERROR! Null package! BuildFile: " $4; - status = 1; exit status; - } - # Two BuildFile's are expected here: from config and from the top level pkg - # (AV March 2007: $LOCALRT/config can now be in $LOCALRT/src/config/scram) - # NB The same HASH value defines the environment for both BuildFile's - if ( thisPkg == "" ) { - if ( pkg != "config" && pkg != "config/scram" ) { - print "PANIC! Unknown package (expecting config or config/scram): " $4; - status = 1; exit status; - } - thisPkg = pkg; - print "###############################################################"; - print "# *** PROJECT_CONFIG: " thisPkg; - #print "#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"; - currPkg = pkg; - } - else if ( thisPkg == "config" ) { - thisPkg = pkg; - print "###############################################################"; - print "# *** PACKAGE_NAME: " thisProjName"::"thisPkg; - #print "#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"; - currPkg = pkg; - } - else { - ###print "PANIC! Unknown package (expecting external ref): " $4; - ###print "PANIC! thisPkg = " thisPkg; - ###status = 1; exit status; - thisPkg = pkg; - print "###############################################################"; - print "# *** SUBPACKAGE_NAME: " thisProjName"::"thisPkg; - #print "#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"; - currPkg = pkg; - } - } -} -#---------------------------------------------------------------------------- -{ - # Dependency on an external tool (project-wide) - if ( $3 == "being" && $4 == "Initialised" ) { - toolName = substr($1,3); - toolVers = $2; - print "# select " toolName " " toolVers; - if ( ! ( toolName in extToolVersMap ) ) { - extToolVersMap[toolName] = toolVers; - } - else { - if ( extToolVersMap[toolName] != toolVers ) { - print "ERROR! Tool " toolName " " \ - extToolVersMap[toolName] " already selected!"; - status=1; exit status; - } - print "WARNING! Tool " toolName " " toolVers " already selected!"; - } - } -} -#---------------------------------------------------------------------------- -{ - # Dependency on an external tool (package-specific) - # !!! This requires a modified version of scram !!! - if ( $2 == "External_StartTag:" && $3 == "select" && $4 == "Tool" ) { - toolName = $5; - # Print the tool names as dependencies for levels>=1 - # Leave two extra spaces for all levels>1 - space = ""; - for ( i=1; i=1 ) space = space ". "; - print "# " space extToolRef " " toolName; - ###print "# " space extToolRef " " toolName " (LEVEL=" currLevel+1 ")"; - # Update tool dependency vector - found = 0; - for ( i=1; i<=nExtTools; i++ ) { - if ( toolName == extToolNameVec[i] ) found = 1; - } - if ( found == 0 ) { - nExtTools++; - extToolNameVec[nExtTools] = toolName; - } - } -} -#---------------------------------------------------------------------------- -{ - # Dependency on an external SCRAM project - if ( $2 == "_pushremoteproject:" ) { - # Handle verbose output from my enhanced test version of SCRAM - # (where an external project can have both a localtop and a releasetop) - # Expect a colon-separated list of paths from _pushremoteproject: this is - # 'backward'-compatible to SCRAM V0_20_0 as it can handle a single path too - npaths = split ( $4, paths, ":" ); - delete projs; - proj = ""; - projEnv = ""; - for ( i=1; i<=npaths; i++ ) { - if ( paths[i] == "" ) { - projs[i] = ""; - } - else { - aProj = paths[i]; - while ( substr(aProj,length(aProj)) == "/" ) { - aProj = substr(aProj,1,length(aProj)-1); - } - if ( substr(aProj,length(aProj)-3) == "/src" ) { - aProj = substr(aProj,1,length(aProj)-4); - } - while ( substr(aProj,length(aProj)) == "/" ) { - aProj = substr(aProj,1,length(aProj)-1); - } - projs[i] = aProj; - aProjEnv = aProj "/.SCRAM/Environment"; - if ( system("ls " aProjEnv " >& /dev/null") == 0 ) { - ###print "FOUND " aProjEnv; - if ( projEnv == "" ) { - projEnv = aProjEnv; - proj = aProj; - } - } - else { - ###print "NOT FOUND " aProjEnv; - if ( projEnv == "" ) { - proj = aProj; - } - }; - } - } - # Read the project name from its Environment - projName = ""; - while ( projName == "" ) { - if ( projEnv == "" ) { - print "ERROR! Environment not found for project " proj; - status = 1; exit status; - } - getStatus = getline record < projEnv; - if ( getStatus == -1 ) { - print "ERROR! Environment not found for project " proj; - status = 1; exit status; - } - else if ( getStatus == 0 ) { - break; #EOF - } - key = "SCRAM_PROJECTNAME"; - i = index( record, key ); - if ( i != 0 ) { projName = substr( record, i+length(key) ); } - while( index(projName," ") == 1 || index(projName,"=") ) { - projName = substr( projName, 2 ); - } - } - # Is this a new project? - for ( i=1; i<=npaths; i++ ) { - aProj = projs[i]; - if ( aProj != "" && ( ! ( aProj in extProjNameMap ) ) ) { - if ( aProj == thisLocalRTop ) { - print "ERROR! Circular dependency on this project (localRT)?"; - status = 1; exit status; - } - if ( aProj == thisReleaseTop ) { - print "ERROR! Circular dependency on this project (releaseTop)?"; - status = 1; exit status; - } - # Add the project to the list - nExtProjs++; - extProjPathVec[nExtProjs] = aProj; - extProjNameMap[aProj] = projName; - ###print "# *** EXTERNAL_PROJECT("nExtProjs"): "projName" (" aProj ")"; - } - } - } -} -#---------------------------------------------------------------------------- -{ - # Dependency on an external SCRAM package - if ( $2 == "ParseBuildFile_Export:" ) { - pkg = substr( $4, 1, index($4,"/BuildFile")-1 ); - # Project and release area for this package - pkgProj = ""; - if ( index(pkg,thisLocalRTop) == 1 ) { - pkg = substr( pkg, length(thisLocalRTop)+1 ); - pkgProj = thisLocalRTop; - } - else if ( thisReleaseTop != "" && index(pkg,thisReleaseTop) == 1 ) { - pkg = substr( pkg, length(thisReleaseTop)+1 ); - pkgProj = thisReleaseTop; - } - else { - for ( proj in extProjNameMap ) { - if ( index(pkg,proj) == 1 ) { - pkg = substr( pkg, length(proj)+1 ); - pkgProj = proj; - } - } - } - if ( pkgProj == "" ) { - print "ERROR! No project associated to package: " $4; - status = 1; exit status; - } - # Package name - while ( index(pkg,"/") == 1 ) { pkg = substr( pkg, 2 ); } - if ( index(pkg,"src/") == 1 ) { pkg = substr( pkg, 5 ); } - while ( index(pkg,"/") == 1 ) { pkg = substr( pkg, 2 ); } - if ( pkg == "" ) { - print "ERROR! Null package! BuildFile: " $4; - status = 1; exit status; - } - ####### Analyse the dependencies of this package - ######system( "cat " $4 "| grep -i use" ); print ""; - # Add the package to the list if this is a new package - if ( ! ( pkg in extPkgProjMap ) ) { - nExtPkgs ++; - extPkgNameVec[nExtPkgs] = pkg; - extPkgProjMap[pkg] = pkgProj; - } - # Pass the package name to be printed out with its level of nesting - currPkg = pkg; - ###print "# " pkg; #THIS LINE IS USEFUL FOR DEBUGGING - } -} -#---------------------------------------------------------------------------- -END { - if ( status == 0 ) { - if ( thisPkg != "" && thisPkg != "config" ) { - #print "#"; - print "###############################################################"; - print "#"; - print "#--------------------"; - print "# TOOL DEPENDENCIES:"; - print "#--------------------"; - if ( nExtTools > 0 ) { - for ( i=1; i<=nExtTools; i++ ) { - toolName = extToolNameVec[i]; - toolVers = extToolVersMap[toolName]; - print extToolRef " " toolName " " toolVers; - } - } - else { - print "*** NONE ***"; - } - print "#"; - print "#-----------------------"; - print "# PACKAGE DEPENDENCIES:"; - print "#-----------------------"; - if ( nExtPkgs > 0 ) { - for ( i=1; i<=nExtPkgs; i++ ) { - pkg = extPkgNameVec[i]; - pkgProj = extPkgProjMap[pkg]; - pkgProjName = extProjNameMap[pkgProj]; - ###print "use " pkgProjName "::" pkg " (" pkgProj ")"; #CMT-like - print "use " pkgProjName "::" pkg; - print " (" pkgProj ")"; - } - } - else { - print "*** NONE ***"; - } - ###print "END: LEVEL=" currLevel; - } - else { - print "****************************************************************"; - print "* ERROR! *"; - print "* 1. You cannot process multiple packages using this script: *"; - print "* change directory so that 'scram b' sees a single BuildFile! *"; - print "* 2. Or maybe, 'scram b' does not see ANY BuildFile from here? *"; - print "****************************************************************"; - } - } -} -#---------------------------------------------------------------------------- -{ - # Print out debug messages from my modifcations to SCRAM - if ( $1 == "__scramShowUses" ) print $0; -} -#---------------------------------------------------------------------------- - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.sh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.sh deleted file mode 100755 index b872ed03ee5a2..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/scramShowUses.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -scram -debug b echo_INCLUDE | awk -f `dirname $0`/scramShowUses.awk diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/wineWrap.sh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/wineWrap.sh deleted file mode 100755 index 1e2f2bfd3b2b7..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/scripts/wineWrap.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -# Check command line arguments -if [ "$1" = "" ]; then - cmd=`basename $0` - echo "Usage: $cmd command [arguments]" - exit 1 -fi - -# Print out the environment? -if [ "$WINE_WRAP_PRINTENV" != "on" ]; then - export WINE_WRAP_PRINTENV=off -fi - -# Check O/S -if [ "$OS" = "Windows_NT" ]; then - if [ "${SCRAM_ARCH:0:5}" != "win32" ]; then - echo "ERROR! Invalid SCRAM_ARCH $SCRAM_ARCH on $OS for $0" - exit 1 - fi - if [ "$WINE_WRAP_DEBUG" != "" ]; then - debug=1 - else - debug=0 - fi -else - debug=0 -fi - -# Make sure LOCALRT is defined -export LOCALRT= -export PATH=/afs/cern.ch/sw/lcg/app/spi/scram:"${PATH}" -eval `scram runtime -sh` -if [ "$LOCALRT" = "" ] ; then - echo "ERROR! Cannot define LOCALRT - are you in a valid SCRAM directory?" - exit 1 -fi - -# Keep the current SEAL options file if already defined -export SEAL_CONFIGURATION_FILE_OLD=${SEAL_CONFIGURATION_FILE} - -# Load common functions -###echo "DEBUG: load common test functions..." -if [ -r $LOCALRT/config/test_functions.sh ] ; then - . $LOCALRT/config/test_functions.sh -elif [ -r $LOCALRT/src/config/scram/test_functions.sh ] ; then - . $LOCALRT/src/config/scram/test_functions.sh -else - echo "ERROR! Cannot find common test functions" - exit 1 -fi -###echo "DEBUG: load common test functions... DONE" - -## NB: Make sure $HOME/private/authentication.xml contains YOUR credentials! -check_authfile -set_preliminar_env - -## By default ORACLE_HOME is unset -# keepORACLE_HOME=yes -prepare_env - -# Fix the PATHs for specific systems (only if needed) -fix_win_paths - -# Disable POOL trace files -#unset POOL_ORA_SQL_TRACE_ON -#unset POOL_ORA_CERNTRACE_ON - -# Keep the current SEAL options file if already defined -if [ "$SEAL_CONFIGURATION_FILE_OLD" != "" ] ; then - export SEAL_CONFIGURATION_FILE=$SEAL_CONFIGURATION_FILE_OLD -fi - -#---------------------------------------------------------------------------- -# Analyse SCRAM_ARCH and CMTCONFIG to determine if we should use WIN32 -#---------------------------------------------------------------------------- -echo "SCRAM_ARCH: $SCRAM_ARCH" -echo "CMTCONFIG: $CMTCONFIG" -useWin32=0 -if [ "${SCRAM_ARCH:0:5}" = "win32" ]; then - useWin32=1 -elif [ "$SCRAM_ARCH" = "" ] && [ "${CMTCONFIG:0:5}" = "win32" ]; then - useWin32=1 -fi - -#---------------------------------------------------------------------------- -# Unix platform -#---------------------------------------------------------------------------- -if [ "$useWin32" = "0" ]; then - - ###echo "__UNIX Current environment variables: "; env - echo "__UNIX Execute command: " $@ - $@ - -#---------------------------------------------------------------------------- -# Win32 platform -#---------------------------------------------------------------------------- -else - - # Debugging information - ###echo "__WINE Current environment variables: "; env - if [ "$OS" = "Windows_NT" ]; then - echo "__WINE.NT Execute command: " $@ - else - echo "__WINE.WINE Execute command: " $@ - fi - - # Execute the command under Wine - if [ "$debug" = "0" ]; then - cmd_wrapper $@ - status=${?} - else - debug $@ - status=${?} - fi - ###echo status=$status - exit $status - -#---------------------------------------------------------------------------- -# End check on platform -#---------------------------------------------------------------------------- -fi - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/CoolDBUnitTest.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/CoolDBUnitTest.h deleted file mode 100644 index 8e5bd0cb6b2d4..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/CoolDBUnitTest.h +++ /dev/null @@ -1,324 +0,0 @@ -// $Id: CoolDBUnitTest.h,v 1.39 2013-03-08 10:53:24 avalassi Exp $ -#ifndef COMMON_COOLDBUNITTEST_H -#define COMMON_COOLDBUNITTEST_H 1 - -// Include files -#include -#include "RelationalAccess/IConnectionService.h" -#include "RelationalAccess/IConnectionServiceConfiguration.h" - -// Local include files -#include "CoolKernel/../tests/Common/CoolUnitTest.h" -#include "src/CoralApplication.h" -#include "src/CoralConnectionServiceProxy.h" -#include "src/RalDatabase.h" -#include "src/RalDatabaseSvc.h" -#include "src/RelationalDatabaseId.h" -#include "src/RelationalException.h" -#include "src/RelationalTransaction.h" -#include "src/sleep.h" -#include "src/TransRalDatabase.h" - -// Debug -#ifdef COOLDBUNITTESTDEBUG -static const bool _COOLDBUNITTEST_DEBUG_ = true; -#else -static const bool _COOLDBUNITTEST_DEBUG_ = false; -#endif -/* COOLCPPCLEAN-NOINDENT-START */ -#define DEBUGSTART \ - std::string prefix = source + ( source == "" ? "" : " -> " ); \ - if ( _COOLDBUNITTEST_DEBUG_ ) \ - std::cout << ( prefix == "" ? "\n" : "" ) << prefix << tag \ - << " START - s_db=" << s_db << std::endl -#define DEBUGOK \ - if ( _COOLDBUNITTEST_DEBUG_ ) \ - std::cout << prefix << tag \ - << " DONE! - s_db=" << s_db << std::endl -#define DEBUGFAIL \ - if ( _COOLDBUNITTEST_DEBUG_ ) \ - std::cout << prefix << tag \ - << " FAILED - s_db=" << s_db << std::endl -/* COOLCPPCLEAN-NOINDENT-END */ - -namespace cool -{ - - const char* COOLTESTDB = "COOLTESTDB"; - - /** @class CoolDBUnitTest CoolDBUnitTest.h - * - * @author Marco Clemencic and Andrea Valassi - * @date 2006-03-13 - */ - class CoolDBUnitTest : public CoolUnitTest { - - public: - - /// Standard constructor - CoolDBUnitTest( bool getSvc = true ) - { - // Initialise all static data members - if ( s_app == 0 ) - { - - // Application - s_app = new CoralApplication(); - - // Connection string - if ( getenv( COOLTESTDB ) ) - { - s_connectionString = getenv( COOLTESTDB ); - } - else - { - std::cout - << "Please provide a connect string by " - << "specifying one in the environment variable COOLTESTDB, e.g." - << std::endl; - std::cout - << "setenv COOLTESTDB " - << "\"oracle://devdb10;schema=lcg_cool;dbname=COOLTEST\"" - << std::endl; - std::cout << "Aborting test" << std::endl; - exit(-1); - } - - // Decode the COOL database name - try - { - RelationalDatabaseId id( s_connectionString ); - s_coolDBName = id.dbName(); - // Workaround for ORA-01466 (bug #87935) - START - static std::string sleepFor01466Prefix = ""; - if ( sleepFor01466Prefix == "" ) - { - sleepFor01466Prefix = s_coolDBName; - if ( ::getenv( "CORAL_TESTSUITE_SLEEPFOR01466" ) ) - ::setenv( "CORAL_TESTSUITE_SLEEPFOR01466_PREFIX", sleepFor01466Prefix.c_str(), 1 ); - } - // Workaround for ORA-01466 (bug #87935) - END - } - catch ( std::exception& e ) - { - std::cout << "ERROR! Exception caught: " << e.what() << std::endl; - std::cout << "Aborting test" << std::endl; - exit(-1); - } - - // Load the service if required. - // Avoid mixture between unavoidable messages and test progress output. - if ( getSvc ) dbs(); - - // Do nothing about s_db. - - } - - } - - /// Destructor - virtual ~CoolDBUnitTest() - { - if ( s_db ) s_db.reset(); // needed for sqlite else it hangs - if ( s_app ) delete s_app; - s_app = 0; - } - - protected: - - /// Sleep n seconds (ORA-01466 workaround). - inline void sleep( int n ) - { - cool::sleep(n); - } - - /// Retrieve the database service in the application. - inline IApplication& application() - { - return *s_app; - } - - /// Return a reference to the coral::ConnectionService. - coral::IConnectionService& connectionSvc() - { - return application().connectionSvc(); - } - - /// Return THE shared pointer to the coral::ConnectionService pointer. - CoralConnectionServiceProxyPtr ppConnectionSvc() - { - RalDatabaseSvc* ralDbs = dynamic_cast( &dbs() ); - if ( !ralDbs ) - throw RelationalException( "PANIC! Not a RalDatabaseSvc in CoolDBUnitTest?", "" ); - return ralDbs->ppConnectionSvc(); - } - - /// Retrieve the database service in the application. - inline IDatabaseSvc& dbs() - { - return application().databaseService(); - } - - /// Create an empty database and disconnect. - void createDB( const std::string& source = "" ) - { - std::string tag = "CreateDB"; - DEBUGSTART; - dropDB( prefix + tag ); - dbs().createDatabase( s_connectionString ); - forceDisconnect( prefix + tag ); - DEBUGOK; - } - - /// Refresh an empty database and disconnect. - void refreshDB( bool keepNodes = false, const std::string& source = "" ) - { - std::string tag = "RefreshDB"; - if ( keepNodes ) tag += "_keepNodes"; - DEBUGSTART; - RalDatabaseSvc& ralDbSvc = dynamic_cast( dbs() ); - ralDbSvc.refreshDatabase( s_connectionString, keepNodes ); - forceDisconnect( prefix + tag ); - DEBUGOK; - } - - /// Open the database (set the pointer "s_db"). - void openDB( bool readOnly = false, const std::string& source = "" ) - { - std::string tag = "OpenDB"; - DEBUGSTART; - try - { - s_db = dbs().openDatabase( s_connectionString, readOnly ); - } - catch (...) - { - DEBUGFAIL; - throw; - } - DEBUGOK; - } - - /// Close the database (reset the pointer "s_db"). - void closeDB( const std::string& source = "" ) - { - std::string tag = "CloseDB"; - DEBUGSTART; - if ( s_db ) s_db.reset(); - DEBUGOK; - } - - /// Drop the DB. - void dropDB( const std::string& source = "" ) - { - std::string tag = "DropDB"; - DEBUGSTART; - closeDB( prefix + tag ); - dbs().dropDatabase( s_connectionString ); - forceDisconnect( prefix + tag ); - DEBUGOK; - } - - /// Purge coral ConnectionPool. - void forceDisconnect( const std::string& source = "" ) - { - std::string tag = "DisconnectDB"; - DEBUGSTART; - closeDB( prefix + tag ); - static bool first = true; - if ( first ) { - application().connectionSvc().configuration().setConnectionTimeOut(-1); - first = false; - } - application().connectionSvc().purgeConnectionPool(); - DEBUGOK; - } - - // Drop and recreate all folders - void recreateFolders( const std::string source0 = "" ) - { - std::string tag0 = "RecreateFolders"; - std::string prefix0; - { - std::string source = source0; - std::string tag = tag0; - DEBUGSTART; - prefix0 = prefix; - openDB( false, prefix + tag ); // reopen in RW mode (important!!!) - } - { - std::string source = prefix0 + tag0; // mimic external call - std::string tag = "DropAllNodes"; - DEBUGSTART; - TransRalDatabase* traldb = dynamic_cast( s_db.get() ); - if ( !traldb ) throw RelationalException( "PANIC! Not a RalDatabase in CoolDBUnitTest?", "" ); // Fix Coverity FORWARD_NULL - RalDatabase* ralDb = traldb->getRalDb(); - RelationalTransaction trans( ralDb->transactionMgr(), false ); // r/w - bool keepRoot = true; - if ( !ralDb->dropAllNodes( keepRoot ) ) - { - DEBUGFAIL; - throw RelationalException - ( "Test cleanup failed (" + prefix + tag + ")" ); - } - else - { - DEBUGOK; - } - trans.commit(); - } - { - std::string source = prefix0 + tag0; // mimic external call - std::string tag = "CreateFolders"; - DEBUGSTART; - createFolders(); - DEBUGOK; - } - { - std::string prefix = prefix0; - std::string tag = tag0; - DEBUGOK; - } - } - - // Drop and recreate all folders when this object goes out of scope - class ScopedRecreateFolders - { - public: - // Constructor - ScopedRecreateFolders( CoolDBUnitTest* test ) : m_test( test ) - { - } - // Destructor - ~ScopedRecreateFolders() - { - m_test->recreateFolders( "ScopedRecreateFolders" ); - } - private: - CoolDBUnitTest* m_test; - }; - - // Create all folders - // (virtual so that ScopedRecreateFolders can be created only once here!) - virtual void createFolders() - { - } - - protected: - - static CoralApplication* s_app; - static std::string s_connectionString; - static std::string s_coolDBName; - static IDatabasePtr s_db; - - }; - - // Instantiate the static data members (shared by all tests) - CoralApplication* CoolDBUnitTest::s_app = 0; - std::string CoolDBUnitTest::s_connectionString = ""; - std::string CoolDBUnitTest::s_coolDBName = ""; - IDatabasePtr CoolDBUnitTest::s_db; - -} - -#endif // COMMON_COOLDBUNITTEST_H diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/releaser.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/releaser.h deleted file mode 100644 index 4ee2b101f751a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/Common/releaser.h +++ /dev/null @@ -1,18 +0,0 @@ -// $Id: releaser.h,v 1.2 2009-12-16 17:27:41 avalassi Exp $ -#ifndef RELATIONALCOOL_RELEASER_H -#define RELATIONALCOOL_RELEASER_H 1 - -// Include files -#include "CoralBase/AttributeListSpecification.h" - -namespace cool -{ - - class releaser { - public: - void operator()( coral::AttributeListSpecification* p ) { p->release(); } - }; - -} - -#endif // RELEASER_H diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/README.threads b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/README.threads deleted file mode 100644 index 3b5c8ece6db75..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/README.threads +++ /dev/null @@ -1,51 +0,0 @@ -2005.07.14 - -Problem with pthread_mutex_lock is solved! - -It was indeed enough to remove OCI_THREADED in OracleSession.cpp. - -This was tested using a private version of POOL. -With respect to POOL_2_1_1-beta, the following changes were made: - - // AV 2005.07.13 - start - // Test if OCI_THREADED __alone__ is responsible for COOL pthread_mutex_lock - //sword status = OCIEnvCreate( &m_environmentHandle, - // OCI_OBJECT, - // 0,0,0,0,0,0 ); - sword status; - if ( getenv ( "COOL_OCI_THREADED" ) ) - status = OCIEnvCreate( &m_environmentHandle, - OCI_THREADED | OCI_OBJECT, - 0,0,0,0,0,0 ); - else - status = OCIEnvCreate( &m_environmentHandle, - OCI_OBJECT, - 0,0,0,0,0,0 ); - // AV 2005.07.13 - end - -The test RalDatabaseTest::dropDatabase was executed alone -(all tests but dropDatabase were disabled in RalDatabaseTest), -with and without COOL_OCI_THREADED set: - -coolDropDatabase.csh $COOLTESTDB -unsetenv COOL_OCI_THREADED -date ; unitTest_RelationalCool_RalDatabase > & dropDatabaseTest.out.OCI_DEFAULT ; date -setenv COOL_OCI_THREADED on -date ; unitTest_RelationalCool_RalDatabase > & dropDatabaseTest.out.OCI_THREADED ; date -[Interrupted by Ctrl-C] -date -unsetenv COOL_OCI_THREADED -date ; unitTest_RelationalCool_RalDatabase > & dropDatabaseTest.out.OCI_DEFAULT.2 ; date - -The first and third job, with OCI_THREADED disabled, completed successfully -in around 30 seconds. The second job, with OCI_THREADED enabled, got stuck -and was killed with Ctrl-C after 2 minutes. The stack dump shows indeed -the problem with pthread_mutex_lock. - -The outputs from the first and second jobs are included in CVS -(not the output from the third job, which is similar to that -of the first one and was only meant as an additional cross-check). - -Problem solved!! :-) - - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_DEFAULT b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_DEFAULT deleted file mode 100644 index 3c79ac646371e..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_DEFAULT +++ /dev/null @@ -1,229 +0,0 @@ -(Start: Thu Jul 14 10:32:06 CEST 2005) -Property Catalogue: level[Info] Adding property: OutputLevel = 2 in scope "SEAL/Services/MessageService" -Property Catalogue: level[Info] Adding property: Format = "%-36s %-8s %s" in scope "SEAL/Services/MessageService" -Property Catalogue: level[Info] Adding property: AuthenticationFile = "/afs/cern.ch/user/a/avalassi/private/authentication.xml" in scope "POOL/Services/XMLAuthenticationService" -MessageService callback Debug MessageService output level changed to Debug -ConfigurationService Debug Setting property: "Format" to value " "%-36s %-8s %s"" in scope "SEAL/Services/MessageService" -Application Info Instantiate a COOL Application -Application Info Load the COOL database service -RalDatabaseSvc Info Instantiate the RalDatabaseSvc -RalDatabaseSvc Info Load the POOL relational service -POOL/Services/RelationalService Info Found plugin for RDBMS technology "mysql" with implementation "odbc" -POOL/Services/RelationalService Info Found plugin for RDBMS technology "oracle" with native implementation -POOL/Services/RelationalService Info Found plugin for RDBMS technology "sqlite" with native implementation -POOL/Services/RelationalService Info Default implementation for RDBMS technology "mysql" is "odbc" -POOL/Services/RelationalService Info Default implementation for RDBMS technology "oracle" is native -POOL/Services/RelationalService Info Default implementation for RDBMS technology "sqlite" is native -RalDatabaseSvc Info Load the POOL XML authentication service -ConfigurationService Debug Setting property: "AuthenticationFile" to value " "/afs/cern.ch/user/a/avalassi/private/authentication.xml"" in scope "POOL/Services/XMLAuthenticationService" -RelationalDatabase Debug Instantiate a RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Info Instantiate a RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials using an authentication service -RalAuthenticationManager Debug Credentials found for 'oracle://devdb10;schema=lcg_cool' -RalAuthenticationManager Debug COOL authentication credentials successfully retrieved -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 10.1.0.4.0 -RelationalDatabase Info Delete the RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -POOL/RelationalPlugins/oracle Warning No active transaction to roll back -RelationalDatabase Debug Delete the RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Debug Instantiate a RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Info Instantiate a RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials using an authentication service -RalAuthenticationManager Debug Credentials found for 'oracle://devdb10;schema=lcg_cool' -RalAuthenticationManager Debug COOL authentication credentials successfully retrieved -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 10.1.0.4.0 -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ( "DB_ATTRIBUTE_NAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ADD (CONSTRAINT "COOLTEST_DB_ATTRIBUTES_PK" PRIMARY KEY ("DB_ATTRIBUTE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_DB_ATTRIBUTES' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ADD ( "DB_ATTRIBUTE_VALUE" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_NODES" ( "NODE_ID" NUMBER(10), "NODE_PARENTID" NUMBER(10), "NODE_NAME" VARCHAR2(255), "NODE_FULLPATH" VARCHAR2(255), "NODE_DESCRIPTION" VARCHAR2(255), "NODE_ISLEAF" NUMBER(1), "NODE_INSTIME" VARCHAR2(255), "FOLDER_PAYLOADSPEC" VARCHAR2(255), "FOLDER_VERSIONING" NUMBER(10), "FOLDER_IOVTABLENAME" VARCHAR2(255), "FOLDER_TAGTABLENAME" VARCHAR2(255), "FOLDER_IOV2TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD (CONSTRAINT "COOLTEST_NODES_PK" PRIMARY KEY ("NODE_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD (CONSTRAINT "COOLTEST_NODES_PARENT_FK" FOREIGN KEY ("NODE_PARENTID") REFERENCES "COOLTEST_NODES" ("NODE_ID"))" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE UNIQUE INDEX "LCG_COOL"."COOLTEST_NODES_PATH_UK" ON "LCG_COOL"."COOLTEST_NODES"("NODE_FULLPATH")" -RelationalDatabase Debug Altering table COOLTEST_NODES: modify the SQL type of column FOLDER_PAYLOADSPEC to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_NODES' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_NODES' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_NODES' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_NODES' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_NODES' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_PAYLOADSPEC"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_PAYLOADSPEC" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_VERSIONING"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_VERSIONING" NUMBER(10) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_IOVTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_IOVTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_TAGTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_IOV2TAGTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_IOV2TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_NODES_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES_SEQ" ADD (CONSTRAINT "COOLTEST_NODES_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME") VALUES (:"NODE_ID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_TAGS" ( "TAG_ID" NUMBER(10), "NODE_ID" NUMBER(10), "TAG_NAME" VARCHAR2(255), "TAG_DESCRIPTION" VARCHAR2(255), "SYS_INSTIME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_TAGS" ADD (CONSTRAINT "COOLTEST_TAGS_PK" PRIMARY KEY ("TAG_ID","NODE_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD (CONSTRAINT "COOLTEST_F0001_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0001_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0001_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0001_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0001_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0001_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0001_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0001_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0001_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f1' -RelationalFolder Debug Delete the RelationalFolder for '/f1' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD (CONSTRAINT "COOLTEST_F0002_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0002_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0002_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0002_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0002_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0002_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0002_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0002_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0002_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f2' -RelationalFolder Debug Delete the RelationalFolder for '/f2' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD (CONSTRAINT "COOLTEST_F0003_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0003_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0003_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0003_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0003_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0003_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0003_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0003_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0003_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f3' -RelationalFolder Debug Delete the RelationalFolder for '/f3' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD (CONSTRAINT "COOLTEST_F0004_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0004_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0004_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0004_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0004_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0004_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0004_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0004_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0004_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f4' -RelationalFolder Debug Delete the RelationalFolder for '/f4' -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_TAGS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" ORDER BY "NODE_FULLPATH" DESC" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0004_IOVS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DELETE FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0003_IOVS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DELETE FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0002_IOVS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DELETE FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0001_IOVS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DELETE FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_PARENTID"= :"parentId" and "NODE_ISLEAF"= :"isLeaf" ORDER BY "NODE_FULLPATH" ASC" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_PARENTID"= :"parentId" and "NODE_ISLEAF"= :"isLeaf" ORDER BY "NODE_FULLPATH" ASC" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DELETE FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_NODES_SEQ"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_NODES"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES"" - -OK (1) -[OVAL] Cppunit-result =0 -RelationalDatabase Info Delete the RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -POOL/RelationalPlugins/oracle Warning No active transaction to roll back -RelationalDatabase Debug Delete the RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -Application Info Delete the COOL Application -RalDatabaseSvc Info Delete the RalDatabaseSvc -(Start: Thu Jul 14 10:32:06 CEST 2005) -(End: Thu Jul 14 10:32:34 CEST 2005) - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_THREADED b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_THREADED deleted file mode 100644 index 8a48f00028cfd..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RalDatabase/dropDatabaseTest.out.OCI_THREADED +++ /dev/null @@ -1,306 +0,0 @@ -(Start: Thu Jul 14 10:32:53 CEST 2005) -Property Catalogue: level[Info] Adding property: OutputLevel = 2 in scope "SEAL/Services/MessageService" -Property Catalogue: level[Info] Adding property: Format = "%-36s %-8s %s" in scope "SEAL/Services/MessageService" -Property Catalogue: level[Info] Adding property: AuthenticationFile = "/afs/cern.ch/user/a/avalassi/private/authentication.xml" in scope "POOL/Services/XMLAuthenticationService" -MessageService callback Debug MessageService output level changed to Debug -ConfigurationService Debug Setting property: "Format" to value " "%-36s %-8s %s"" in scope "SEAL/Services/MessageService" -Application Info Instantiate a COOL Application -Application Info Load the COOL database service -RalDatabaseSvc Info Instantiate the RalDatabaseSvc -RalDatabaseSvc Info Load the POOL relational service -POOL/Services/RelationalService Info Found plugin for RDBMS technology "mysql" with implementation "odbc" -POOL/Services/RelationalService Info Found plugin for RDBMS technology "oracle" with native implementation -POOL/Services/RelationalService Info Found plugin for RDBMS technology "sqlite" with native implementation -POOL/Services/RelationalService Info Default implementation for RDBMS technology "mysql" is "odbc" -POOL/Services/RelationalService Info Default implementation for RDBMS technology "oracle" is native -POOL/Services/RelationalService Info Default implementation for RDBMS technology "sqlite" is native -RalDatabaseSvc Info Load the POOL XML authentication service -ConfigurationService Debug Setting property: "AuthenticationFile" to value " "/afs/cern.ch/user/a/avalassi/private/authentication.xml"" in scope "POOL/Services/XMLAuthenticationService" -RelationalDatabase Debug Instantiate a RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Info Instantiate a RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials using an authentication service -RalAuthenticationManager Debug Credentials found for 'oracle://devdb10;schema=lcg_cool' -RalAuthenticationManager Debug COOL authentication credentials successfully retrieved -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 10.1.0.4.0 -RelationalDatabase Info Delete the RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -POOL/RelationalPlugins/oracle Warning No active transaction to roll back -RelationalDatabase Debug Delete the RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Debug Instantiate a RelationalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RelationalDatabase Info Instantiate a RalDatabase for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials for 'oracle://devdb10;schema=lcg_cool;dbname=COOLTEST' -RalAuthenticationManager Debug Retrieve COOL authentication credentials using an authentication service -RalAuthenticationManager Debug Credentials found for 'oracle://devdb10;schema=lcg_cool' -RalAuthenticationManager Debug COOL authentication credentials successfully retrieved -POOL/RelationalPlugins/oracle Info Connected to a server running Oracle version 10.1.0.4.0 -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ( "DB_ATTRIBUTE_NAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ADD (CONSTRAINT "COOLTEST_DB_ATTRIBUTES_PK" PRIMARY KEY ("DB_ATTRIBUTE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_DB_ATTRIBUTES' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_DB_ATTRIBUTES' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ADD ( "DB_ATTRIBUTE_VALUE" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_DB_ATTRIBUTES" ("DB_ATTRIBUTE_NAME","DB_ATTRIBUTE_VALUE") VALUES (:"DB_ATTRIBUTE_NAME",:"DB_ATTRIBUTE_VALUE")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_NODES" ( "NODE_ID" NUMBER(10), "NODE_PARENTID" NUMBER(10), "NODE_NAME" VARCHAR2(255), "NODE_FULLPATH" VARCHAR2(255), "NODE_DESCRIPTION" VARCHAR2(255), "NODE_ISLEAF" NUMBER(1), "NODE_INSTIME" VARCHAR2(255), "FOLDER_PAYLOADSPEC" VARCHAR2(255), "FOLDER_VERSIONING" NUMBER(10), "FOLDER_IOVTABLENAME" VARCHAR2(255), "FOLDER_TAGTABLENAME" VARCHAR2(255), "FOLDER_IOV2TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD (CONSTRAINT "COOLTEST_NODES_PK" PRIMARY KEY ("NODE_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD (CONSTRAINT "COOLTEST_NODES_PARENT_FK" FOREIGN KEY ("NODE_PARENTID") REFERENCES "COOLTEST_NODES" ("NODE_ID"))" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE UNIQUE INDEX "LCG_COOL"."COOLTEST_NODES_PATH_UK" ON "LCG_COOL"."COOLTEST_NODES"("NODE_FULLPATH")" -RelationalDatabase Debug Altering table COOLTEST_NODES: modify the SQL type of column FOLDER_PAYLOADSPEC to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_NODES' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_NODES' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_NODES' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_NODES' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_NODES' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_PAYLOADSPEC"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_PAYLOADSPEC" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_VERSIONING"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_VERSIONING" NUMBER(10) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_IOVTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_IOVTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_TAGTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" DROP COLUMN "FOLDER_IOV2TAGTABLENAME"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES" ADD ( "FOLDER_IOV2TAGTABLENAME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_NODES_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_NODES_SEQ" ADD (CONSTRAINT "COOLTEST_NODES_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME") VALUES (:"NODE_ID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_TAGS" ( "TAG_ID" NUMBER(10), "NODE_ID" NUMBER(10), "TAG_NAME" VARCHAR2(255), "TAG_DESCRIPTION" VARCHAR2(255), "SYS_INSTIME" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_TAGS" ADD (CONSTRAINT "COOLTEST_TAGS_PK" PRIMARY KEY ("TAG_ID","NODE_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD (CONSTRAINT "COOLTEST_F0001_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0001_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0001_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0001_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0001_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0001_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0001_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0001_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0001_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0001_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0001_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f1' -RelationalFolder Debug Delete the RelationalFolder for '/f1' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD (CONSTRAINT "COOLTEST_F0002_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0002_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0002_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0002_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0002_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0002_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0002_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0002_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0002_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0002_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0002_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f2' -RelationalFolder Debug Delete the RelationalFolder for '/f2' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD (CONSTRAINT "COOLTEST_F0003_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0003_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0003_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0003_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0003_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0003_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0003_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0003_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0003_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0003_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0003_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f3' -RelationalFolder Debug Delete the RelationalFolder for '/f3' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/' -RelationalFolder Debug Delete the RelationalFolder for '/' -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_NODES_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_NODES_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_NODES" ("NODE_ID","NODE_PARENTID","NODE_NAME","NODE_FULLPATH","NODE_DESCRIPTION","NODE_ISLEAF","NODE_INSTIME","FOLDER_PAYLOADSPEC","FOLDER_VERSIONING","FOLDER_IOVTABLENAME","FOLDER_TAGTABLENAME","FOLDER_IOV2TAGTABLENAME") VALUES (:"NODE_ID",:"NODE_PARENTID",:"NODE_NAME",:"NODE_FULLPATH",:"NODE_DESCRIPTION",:"NODE_ISLEAF",:"NODE_INSTIME",:"FOLDER_PAYLOADSPEC",:"FOLDER_VERSIONING",:"FOLDER_IOVTABLENAME",:"FOLDER_TAGTABLENAME",:"FOLDER_IOV2TAGTABLENAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ( "OBJECT_ID" NUMBER(10), "CHANNEL_ID" NUMBER(10), "IOV_SINCE" NUMBER(20), "IOV_UNTIL" NUMBER(20), "SYS_INSTIME" VARCHAR2(255), "ORIGINAL_ID" NUMBER(10), "NEW_HEAD_ID" NUMBER(10), "I" NUMBER(10), "S" VARCHAR2(255), "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD (CONSTRAINT "COOLTEST_F0004_IOVS_PK" PRIMARY KEY ("OBJECT_ID") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0004_IOVS_CO_2INDX" ON "LCG_COOL"."COOLTEST_F0004_IOVS"("CHANNEL_ID","OBJECT_ID")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE INDEX "LCG_COOL"."COOLTEST_F0004_IOVS_CSU_3INDX" ON "LCG_COOL"."COOLTEST_F0004_IOVS"("CHANNEL_ID","IOV_SINCE","IOV_UNTIL")" -RelationalDatabase Debug Altering table COOLTEST_F0004_IOVS: modify the SQL type of column S to VARCHAR2(4000) -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT ALL_CONS_COLUMNS.COLUMN_NAME FROM ALL_CONSTRAINTS, ALL_CONS_COLUMNS WHERE ALL_CONSTRAINTS.OWNER = 'LCG_COOL' AND ALL_CONSTRAINTS.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND ALL_CONSTRAINTS.CONSTRAINT_TYPE = 'U' AND ALL_CONS_COLUMNS.CONSTRAINT_NAME = ALL_CONSTRAINTS.CONSTRAINT_NAME AND ALL_CONS_COLUMNS.OWNER = ALL_CONSTRAINTS.OWNER AND ALL_CONS_COLUMNS.TABLE_NAME = ALL_CONSTRAINTS.TABLE_NAME" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME, B.COLUMN_NAME FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND A.CONSTRAINT_TYPE = 'P' AND B.OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND B.CONSTRAINT_NAME = A.CONSTRAINT_NAME ORDER BY B.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.CONSTRAINT_NAME AS FK_NAME, B.TABLE_NAME AS REF_TABLE, C.COLUMN_NAME AS FK_COL, D.COLUMN_NAME AS REF_COL FROM (SELECT CONSTRAINT_NAME, R_CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL' AND TABLE_NAME = 'COOLTEST_F0004_IOVS' AND CONSTRAINT_TYPE='R') A, (SELECT TABLE_NAME, CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER='LCG_COOL') B, (SELECT COLUMN_NAME, CONSTRAINT_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL' AND TABLE_NAME='COOLTEST_F0004_IOVS' ORDER BY POSITION) C, (SELECT COLUMN_NAME, CONSTRAINT_NAME, TABLE_NAME, POSITION FROM ALL_CONS_COLUMNS WHERE OWNER='LCG_COOL') D WHERE A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME AND A.CONSTRAINT_NAME = C.CONSTRAINT_NAME AND B.CONSTRAINT_NAME = D.CONSTRAINT_NAME AND C.POSITION = D.POSITION ORDER BY FK_NAME, D.POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT A.INDEX_NAME, A.UNIQUENESS, B.COLUMN_NAME FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.OWNER = 'LCG_COOL' AND A.TABLE_NAME = 'COOLTEST_F0004_IOVS' AND A.GENERATED = 'N' AND A.INDEX_NAME = B.INDEX_NAME AND B.INDEX_OWNER = A.OWNER AND B.TABLE_NAME = A.TABLE_NAME AND A.INDEX_NAME NOT IN (SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE OWNER = A.OWNER AND TABLE_NAME = A.TABLE_NAME AND CONSTRAINT_TYPE = 'P') ORDER BY A.INDEX_NAME, B.COLUMN_POSITION" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" DROP COLUMN "S"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD ( "S" VARCHAR2(4000) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" DROP COLUMN "X"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS" ADD ( "X" BINARY_FLOAT )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "CREATE TABLE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ( "SEQUENCE_NAME" VARCHAR2(255), "CURRENT_VALUE" NUMBER(10), "LASTMOD_DATE" VARCHAR2(255) )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "ALTER TABLE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ADD (CONSTRAINT "COOLTEST_F0004_IOVS_SEQ_PK" PRIMARY KEY ("SEQUENCE_NAME") )" -POOL/RelationalPlugins/oracle Debug Prepared statement : "INSERT INTO "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" ("SEQUENCE_NAME") VALUES (:"SEQUENCE_NAME")" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "CURRENT_VALUE", "LASTMOD_DATE" FROM "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" FOR UPDATE" -POOL/RelationalPlugins/oracle Debug Prepared statement : "UPDATE "LCG_COOL"."COOLTEST_F0004_IOVS_SEQ" SET "CURRENT_VALUE"=:"newvalue", "LASTMOD_DATE"=TO_CHAR(SYSTIMESTAMP AT TIME ZONE 'GMT','yyyy-mm-dd_hh24:mi:ss.ff6')||'000 GMT'" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" WHERE "NODE_FULLPATH"= :"fullName"" -RelationalFolder Debug Instantiate a RelationalFolder for '/f4' -RelationalFolder Debug Delete the RelationalFolder for '/f4' -POOL/RelationalPlugins/oracle Debug Prepared statement : "DROP TABLE "LCG_COOL"."COOLTEST_TAGS"" -POOL/RelationalPlugins/oracle Debug Prepared statement : "SELECT "NODE_ID", "NODE_PARENTID", "NODE_NAME", "NODE_FULLPATH", "NODE_DESCRIPTION", "NODE_ISLEAF", "NODE_INSTIME", "FOLDER_PAYLOADSPEC", "FOLDER_VERSIONING", "FOLDER_IOVTABLENAME", "FOLDER_TAGTABLENAME", "FOLDER_IOV2TAGTABLENAME" FROM "LCG_COOL"."COOLTEST_NODES" ORDER BY "NODE_FULLPATH" DESC" - -unitTest_RelationalCool_RalDatabase (pid=5443 ppid=9055) received fatal signal 2 (Interrupt) -signal context: - signo = 2, errno = 0, code = 128 (kernel) - pid = 0, uid = 0 - value = (6114303, 0x5d4bff) - stack = (2, 0, (nil)) - - eip: 0023:00e167f9 eflags: 00200202 - eax: fffffffc ebx: 0988d020 ecx: 00000000 edx: 00000002 - esi: 00000000 edi: 09889a20 ebp: bfff730c esp: bfff72f4 - ds: 002b es: 002b fs: 0000 ss: 002b - - signal esp: bfff72f4 trap: 0/0 oldmask: 00000000 cr2: 00000000 - - FPU: control = ffff027f - status = ffff0100 - tag = ffffffff - ip = 0023:01995604 - data = 002b:01db72a4 - state = 00000100 - %fp0 = [0000:0000000000000000] - %fp1 = [0000:0000000000000000] - %fp2 = [0000:0000000000000000] - %fp3 = [0000:0000000000000000] - %fp4 = [0000:0000000000000000] - %fp5 = [400d:000000000000a182] - %fp6 = [4009:0000000000008000] - %fp7 = [400b:0000000000008000] - -stack trace: - 0x003d75ac _ZN4seal9DebugAids10stacktraceEi + 0x60 [/afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealBase.so] - 0x00401ede _ZN4seal6Signal9fatalDumpEiP7siginfoPv + 0xde [/afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealBase.so] - 0x00401909 _ZN4seal6Signal5fatalEiP7siginfoPv + 0xd5 [/afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealBase.so] - 0x00512eb0 ? + 0x512eb0 [/lib/tls/libc.so.6] - 0x005d4bbf pthread_mutex_lock + 0x2f [/lib/tls/libc.so.6] - 0x01b9c4a6 sltsmna + 0x1e [/afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libclntsh.so.10.1] - 0x013f5cee kpustmtrelease + 0x8ba [/afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libclntsh.so.10.1] - 0x01470a55 OCIStmtRelease + 0xa9 [/afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libclntsh.so.10.1] - 0x0098deff _ZN4pool12OracleAccess15OracleStatement5resetEv + 0x31b [/afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_OracleAccess.so] - 0x00983589 _ZN4pool12OracleAccess15OracleStatementD1Ev + 0x1d [/afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_OracleAccess.so] - 0x0096ab23 _ZN4pool12OracleAccess18OracleQueryInTable5resetEv + 0x317 [/afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_OracleAccess.so] - 0x00966fb5 _ZN4pool12OracleAccess18OracleQueryInTableD0Ev + 0x29 [/afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_OracleAccess.so] - 0x00ad9ba0 _ZN4cool11RalDatabase12listAllNodesEb + 0x4b0 [/afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/lib/liblcg_RelationalCool.so] - 0x00ad5983 _ZN4cool11RalDatabase12dropAllNodesEv + 0x37 [/afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/lib/liblcg_RelationalCool.so] - 0x00aa9548 _ZN4cool11RalDatabase12dropDatabaseEv + 0xf4 [/afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/lib/liblcg_RelationalCool.so] - 0x0804ea1a _ZN4cool15RalDatabaseTest17test_dropDatabaseEv + 0x39e [unitTest_RelationalCool_RalDatabase] - 0x080506f8 _ZN7CppUnit10TestCallerIN4cool15RalDatabaseTestENS_19NoExceptionExpectedEE7runTestEv + 0x38 [unitTest_RelationalCool_RalDatabase] - 0x0091411c _ZN7CppUnit8TestCase3runEPNS_10TestResultE + 0x40 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091cf10 _ZN7CppUnit9TestSuite3runEPNS_10TestResultE + 0x38 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091cf10 _ZN7CppUnit9TestSuite3runEPNS_10TestResultE + 0x38 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091cf10 _ZN7CppUnit9TestSuite3runEPNS_10TestResultE + 0x38 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091c643 _ZN7CppUnit6TextUi10TestRunner7runTestEPNS_4TestEb + 0x3f [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091c33d _ZN7CppUnit6TextUi10TestRunner13runTestByNameESsb + 0x39 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0091c255 _ZN7CppUnit6TextUi10TestRunner3runESsbbb + 0x49 [/afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0] - 0x0804b830 main + 0xb0 [unitTest_RelationalCool_RalDatabase] - 0x0050078a __libc_start_main + 0xda [/lib/tls/libc.so.6] - 0x0804b6f5 _ZN7CppUnit14TypeInfoHelper12getClassNameERKSt9type_info + 0x31 [unitTest_RelationalCool_RalDatabase] - -shared libraries present: - 0x00000000 /afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/tests/bin/unitTest_RelationalCool_RalDatabase - 0x003ae000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealBase.so - 0x00c86000 /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_AttributeList.so - 0x0072e000 /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_POOLCore.so - 0x00111000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_PluginManager.so - 0x00172000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealKernel.so - 0x00de7000 /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_RelationalAccess.so - 0x00131000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealUtil.so - 0x00a6d000 /afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/lib/liblcg_RelationalCool.so - 0x0076c000 /afs/cern.ch/user/a/avalassi/myLCG/COOL_HEAD/slc3_ia32_gcc323/lib/liblcg_CoolApplication.so - 0x0026d000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_Reflection.so - 0x004b0000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealServices.so - 0x00898000 /afs/cern.ch/sw/lcg/external/uuid/1.32/slc3_ia32_gcc323/lib/libuuid.so.1 - 0x00902000 /afs/cern.ch/sw/lcg/external/CppUnit/1.8.0/slc3_ia32_gcc323/lib/libcppunit-1.8.so.0 - 0x0069a000 /afs/cern.ch/sw/lcg/external/pcre/4.4/slc3_ia32_gcc323/lib/libpcre.so.0 - 0x00446000 /lib/libnsl.so.1 - 0x00e4f000 /lib/libcrypt.so.1 - 0x0013e000 /lib/libdl.so.2 - 0x0018c000 /usr/lib/libstdc++.so.5 - 0x00832000 /lib/tls/libm.so.6 - 0x00b5a000 /lib/libgcc_s.so.1 - 0x004eb000 /lib/tls/libc.so.6 - 0x00e0d000 /lib/tls/libpthread.so.0 - 0x00bc1000 /lib/ld-linux.so.2 - 0x00141000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_MyComponent.so - 0x0065a000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_MyBaseComponent.so - 0x00147000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_MyComponent1.so - 0x0014d000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_ExampleComponents.so - 0x00c41000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealStorage.so - 0x0023f000 /afs/cern.ch/sw/lcg/external/Boost/1.32.0/slc3_ia32_gcc323/lib/libboost_thread-gcc-mt.so - 0x00bf7000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealZip.so - 0x00299000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_SealIOTools.so - 0x0015d000 /usr/lib/libz.so.1 - 0x00f86000 /lib/tls/librt.so.1 - 0x00b7e000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/libCMSExamplesDict.so - 0x002bf000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_ReflectionBuilder.so - 0x008cf000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/libCMSExamplesRflx.so - 0x002cf000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/liblcg_Reflex.so - 0x0032c000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/libSealDictDict.so - 0x00772000 /afs/cern.ch/sw/lcg/external/../app/releases/SEAL/SEAL_1_7_0/slc3_ia32_gcc323/lib/libSealDictRflx.so - 0x00430000 /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_AuthenticationService.so - 0x00f9a000 /afs/cern.ch/sw/lcg/external/XercesC/2.3.0/slc3_ia32_gcc323/lib/libxerces-c.so.23 - 0x0092b000 /afs/cern.ch/user/a/avalassi/myLCG/POOL_2_1_1/slc3_ia32_gcc323/lib/liblcg_OracleAccess.so - 0x0127f000 /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libclntsh.so.10.1 - 0x079e5000 /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libnnz10.so - 0x028fa000 /afs/cern.ch/sw/lcg/external/oracle/10.1.0.3-1/slc3_ia32_gcc323/lib/libociei.so - 0x003a1000 /lib/libnss_files.so.2 - 0x0016b000 /lib/libnss_dns.so.2 - 0x0045b000 /lib/libresolv.so.2 -(Start: Thu Jul 14 10:32:53 CEST 2005) -(End: Thu Jul 14 10:35:13 CEST 2005) diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/README.tests b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/README.tests deleted file mode 100755 index 011a1e0bbad98..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/README.tests +++ /dev/null @@ -1,40 +0,0 @@ -The four log files contain the results of the tests executed by building -a stripped down version of test_RelationalFolder.cpp, i.e. essentially -test_RelationalFolder.cpp.gmtime (only test_gmtime_timegm enabled, with -verbose output, empty setup, and tests enabled for isdst=0, -1 and +1). - -- out.Windows.p1.adjustTimeZone - -From test_RelationalFolder.cpp.gmtime (both +1 and -1 tests enabled). -It fails on isdst=+1 in January. -Executed with PC clock set to "automatically adjust summer time". - -- out.Windows.m1.adjustTimeZone - -From test_RelationalFolder.cpp.gmtime modified so that the isdst=+1 -test is disabled. It fails on isdst=-1 in April. -Executed with PC clock set to "automatically adjust summer time". - -- out.Windows.noTest.adjustTimeZone - -From test_RelationalFolder.cpp.gmtime modified so that the isdst=+1 -and isdst=-1 tests are both disabled. It succeeds but prints out all. -Executed with PC clock set to "automatically adjust summer time". - -- out.Windows.doNotAdjustTimeZone - -From test_RelationalFolder.cpp.gmtime (both +1 and -1 tests enabled), -i.e. the same setup as for out.Windows.p1.adjustTimeZone. It succeeds. -Executed with PC clock set to "DO NOT automatically adjust summer time". - -------------------------------------------------------------------------------- - -For reference, the executable is rebuilt using the following two commands: - -cl.exe /nologo /c /I\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\RelationalCool /I\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\CoolKernel /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Foundation\SealBase /IL:\cygwin\win32_vc71_dbg\include /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Foundation\SealPlatform /I\\afs\all\cern.ch\sw\lcg\app\releases\POOL\POOL_2_1_0\src\AttributeList /I\\afs\all\cern.ch\sw\lcg\app\releases\POOL\POOL_2_1_0\src\POOLCore /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Framework\SealKernel /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Foundation\PluginManager /I\\afs\all\cern.ch\sw\lcg\app\releases\POOL\POOL_2_1_0\src\RelationalAccess /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Foundation\SealUtil /I\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\CoolApplication /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Dictionary\Reflection /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src\Framework\SealServices /I\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\RelationalCool\tests\Common /I\\afs\all\cern.ch\sw\lcg\external\uuid\1.32\win32_vc71\include /I\\afs\all\cern.ch\sw\lcg\external\Boost\1.31.0\win32_vc71\include\boost-1_31 /I\\afs\all\cern.ch\sw\lcg\external\CppUnit\1.8.0\win32_vc71\include /I\\afs\all\cern.ch\sw\lcg\external\pcre\4.4\win32_vc71\include /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\src /I\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\win32_vc71_dbg\include /I\\afs\all\cern.ch\sw\lcg\app\releases\POOL\POOL_2_1_0\src /Ic:\Program\ Files\Microsoft\ Visual\ Studio\ .NET\ 2003\VC7\include /Ic:\Program\ Files\Microsoft\ Visual\ Studio\ .NET\ 2003\VC7\PlatformSDK\Include /D_GNU_SOURCE /DGNU_SOURCE /DWIN32 /D_MBCS /D_WINDOWS /DSEAL_KERNEL_BUILD_ARCHIVE /D_DEBUG /W3 /WL /GR /GX /GF /GS /MD /Zm500 /Od /Z7 /Fo\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\tmp\win32_vc71_dbg\src\RelationalCool\tests\RelationalFolder\test_RelationalFolder.obj \\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\RelationalCool\tests\RelationalFolder\test_RelationalFolder.cpp - -link.exe /NOLOGO /OUT:\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\win32_vc71_dbg\tests\bin\unitTest_RelationalCool_RelationalFolder.exe /EXETYPE:DYNAMIC /DEBUG /INCREMENTAL:NO /LIBPATH:\\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\win32_vc71_dbg\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\external\uuid\1.32\win32_vc71\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\external\Boost\1.31.0\win32_vc71\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\external\CppUnit\1.8.0\win32_vc71\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\external\pcre\4.4\win32_vc71\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\app\releases\SEAL\SEAL_1_6_3\win32_vc71_dbg\lib /LIBPATH:\\afs\all\cern.ch\sw\lcg\app\releases\POOL\POOL_2_1_0\win32_vc71_dbg\lib /LIBPATH:c:\Program\ Files\Microsoft\ Visual\ Studio\ .NET\ 2003\VC7\lib /LIBPATH:c:\Program\ Files\Microsoft\ Visual\ Studio\ .NET\ 2003\VC7\PlatformSDK\Lib lcg_SealBase.lib lcg_AttributeList.lib lcg_POOLCore.lib lcg_PluginManager.lib lcg_SealKernel.lib lcg_RelationalAccess.lib lcg_SealUtil.lib lcg_RelationalCool.lib lcg_CoolApplication.lib lcg_Reflection.lib lcg_SealServices.lib uuid.lib cppunit_dll.lib libpcre.lib /nodefaultlib kernel32.lib user32.lib msvcprt.lib msvcrt.lib oldnames.lib \\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\tmp\win32_vc71_dbg\src\RelationalCool\tests\RelationalFolder\test_RelationalFolder.obj - - - - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.doNotAdjustTimeZone b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.doNotAdjustTimeZone deleted file mode 100755 index 3847dab88f384..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.doNotAdjustTimeZone +++ /dev/null @@ -1,183 +0,0 @@ -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-1-3 12:1:2 -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -aTm = 1970-1-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 216062 -aTmM1 = 1970-1-3 12:1:2 (DST=0) -aTimet0 = 216062 -aTm0 = 1970-1-3 12:1:2 (DST=0) -aTimetP1 = 216062 -aTmP1 = 1970-1-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-2-3 12:1:2 -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -aTm = 1970-2-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 2894462 -aTmM1 = 1970-2-3 12:1:2 (DST=0) -aTimet0 = 2894462 -aTm0 = 1970-2-3 12:1:2 (DST=0) -aTimetP1 = 2894462 -aTmP1 = 1970-2-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-3-3 12:1:2 -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -aTm = 1970-3-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 5313662 -aTmM1 = 1970-3-3 12:1:2 (DST=0) -aTimet0 = 5313662 -aTm0 = 1970-3-3 12:1:2 (DST=0) -aTimetP1 = 5313662 -aTmP1 = 1970-3-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-4-3 12:1:2 -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -aTm = 1970-4-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 7992062 -aTmM1 = 1970-4-3 12:1:2 (DST=0) -aTimet0 = 7992062 -aTm0 = 1970-4-3 12:1:2 (DST=0) -aTimetP1 = 7992062 -aTmP1 = 1970-4-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-5-3 12:1:2 -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-5-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-5-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-5-3 12:1:2 (DST=0) -aTm = 1970-5-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 10584062 -aTmM1 = 1970-5-3 12:1:2 (DST=0) -aTimet0 = 10584062 -aTm0 = 1970-5-3 12:1:2 (DST=0) -aTimetP1 = 10584062 -aTmP1 = 1970-5-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-6-3 12:1:2 -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-6-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-6-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-6-3 12:1:2 (DST=0) -aTm = 1970-6-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 13262462 -aTmM1 = 1970-6-3 12:1:2 (DST=0) -aTimet0 = 13262462 -aTm0 = 1970-6-3 12:1:2 (DST=0) -aTimetP1 = 13262462 -aTmP1 = 1970-6-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-7-3 12:1:2 -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-7-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-7-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-7-3 12:1:2 (DST=0) -aTm = 1970-7-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 15854462 -aTmM1 = 1970-7-3 12:1:2 (DST=0) -aTimet0 = 15854462 -aTm0 = 1970-7-3 12:1:2 (DST=0) -aTimetP1 = 15854462 -aTmP1 = 1970-7-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-8-3 12:1:2 -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-8-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-8-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-8-3 12:1:2 (DST=0) -aTm = 1970-8-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 18532862 -aTmM1 = 1970-8-3 12:1:2 (DST=0) -aTimet0 = 18532862 -aTm0 = 1970-8-3 12:1:2 (DST=0) -aTimetP1 = 18532862 -aTmP1 = 1970-8-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-9-3 12:1:2 -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-9-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-9-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-9-3 12:1:2 (DST=0) -aTm = 1970-9-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 21211262 -aTmM1 = 1970-9-3 12:1:2 (DST=0) -aTimet0 = 21211262 -aTm0 = 1970-9-3 12:1:2 (DST=0) -aTimetP1 = 21211262 -aTmP1 = 1970-9-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-10-3 12:1:2 -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-10-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-10-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-10-3 12:1:2 (DST=0) -aTm = 1970-10-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 23803262 -aTmM1 = 1970-10-3 12:1:2 (DST=0) -aTimet0 = 23803262 -aTm0 = 1970-10-3 12:1:2 (DST=0) -aTimetP1 = 23803262 -aTmP1 = 1970-10-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-11-3 12:1:2 -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -aTm = 1970-11-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 26481662 -aTmM1 = 1970-11-3 12:1:2 (DST=0) -aTimet0 = 26481662 -aTm0 = 1970-11-3 12:1:2 (DST=0) -aTimetP1 = 26481662 -aTmP1 = 1970-11-3 12:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-12-3 12:1:2 -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -aTm = 1970-12-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 29073662 -aTmM1 = 1970-12-3 12:1:2 (DST=0) -aTimet0 = 29073662 -aTm0 = 1970-12-3 12:1:2 (DST=0) -aTimetP1 = 29073662 -aTmP1 = 1970-12-3 12:1:2 (DST=0) - -OK (1) -[OVAL] Cppunit-result =0 diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.m1.adjustTimeZone b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.m1.adjustTimeZone deleted file mode 100755 index 33cc7477d4833..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.m1.adjustTimeZone +++ /dev/null @@ -1,74 +0,0 @@ -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-1-3 12:1:2 -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-1-3 11:1:2 (DST=0) -aTm = 1970-1-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 216062 -aTmM1 = 1970-1-3 12:1:2 (DST=0) -aTimet0 = 216062 -aTm0 = 1970-1-3 12:1:2 (DST=0) -aTimetP1 = 212462 -aTmP1 = 1970-1-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-2-3 12:1:2 -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-2-3 11:1:2 (DST=0) -aTm = 1970-2-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 2894462 -aTmM1 = 1970-2-3 12:1:2 (DST=0) -aTimet0 = 2894462 -aTm0 = 1970-2-3 12:1:2 (DST=0) -aTimetP1 = 2890862 -aTmP1 = 1970-2-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-3-3 12:1:2 -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-3-3 11:1:2 (DST=0) -aTm = 1970-3-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 5313662 -aTmM1 = 1970-3-3 12:1:2 (DST=0) -aTimet0 = 5313662 -aTm0 = 1970-3-3 12:1:2 (DST=0) -aTimetP1 = 5310062 -aTmP1 = 1970-3-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-4-3 12:1:2 -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-4-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -aTm = 1970-4-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 7988462 -aTmM1 = 1970-4-3 11:1:2 (DST=0) -aTimet0 = 7992062 -aTm0 = 1970-4-3 12:1:2 (DST=0) -aTimetP1 = 7988462 -aTmP1 = 1970-4-3 11:1:2 (DST=0) - -\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\RelationalCool\tests\RelationalFolder\test_RelationalFolder.cpp(284) : Assertion -Test name: cool::RelationalFolderTest.test_gmtime_timegm -- Expected : 12 - -- Actual : 11 - -gmtime(timegm(tm,isDst=-1))==tm : hour (Month[0-11]=3) - - -Failures !!! -Run: 1 Failure total: 1 Failures: 1 Errors: 0 -Error: CppUnit Failures -[OVAL] Cppunit-result =1 diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.noTest.adjustTimeZone b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.noTest.adjustTimeZone deleted file mode 100755 index 59c485efb39cf..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.noTest.adjustTimeZone +++ /dev/null @@ -1,183 +0,0 @@ -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-1-3 12:1:2 -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-1-3 11:1:2 (DST=0) -aTm = 1970-1-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 216062 -aTmM1 = 1970-1-3 12:1:2 (DST=0) -aTimet0 = 216062 -aTm0 = 1970-1-3 12:1:2 (DST=0) -aTimetP1 = 212462 -aTmP1 = 1970-1-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-2-3 12:1:2 -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-2-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-2-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-2-3 11:1:2 (DST=0) -aTm = 1970-2-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 2894462 -aTmM1 = 1970-2-3 12:1:2 (DST=0) -aTimet0 = 2894462 -aTm0 = 1970-2-3 12:1:2 (DST=0) -aTimetP1 = 2890862 -aTmP1 = 1970-2-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-3-3 12:1:2 -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-3-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-3-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-3-3 11:1:2 (DST=0) -aTm = 1970-3-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 5313662 -aTmM1 = 1970-3-3 12:1:2 (DST=0) -aTimet0 = 5313662 -aTm0 = 1970-3-3 12:1:2 (DST=0) -aTimetP1 = 5310062 -aTmP1 = 1970-3-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-4-3 12:1:2 -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-4-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-4-3 12:1:2 (DST=1) -aTm = 1970-4-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 7988462 -aTmM1 = 1970-4-3 11:1:2 (DST=0) -aTimet0 = 7992062 -aTm0 = 1970-4-3 12:1:2 (DST=0) -aTimetP1 = 7988462 -aTmP1 = 1970-4-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-5-3 12:1:2 -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-5-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-5-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-5-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-5-3 12:1:2 (DST=1) -aTm = 1970-5-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 10580462 -aTmM1 = 1970-5-3 11:1:2 (DST=0) -aTimet0 = 10584062 -aTm0 = 1970-5-3 12:1:2 (DST=0) -aTimetP1 = 10580462 -aTmP1 = 1970-5-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-6-3 12:1:2 -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-6-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-6-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-6-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-6-3 12:1:2 (DST=1) -aTm = 1970-6-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 13258862 -aTmM1 = 1970-6-3 11:1:2 (DST=0) -aTimet0 = 13262462 -aTm0 = 1970-6-3 12:1:2 (DST=0) -aTimetP1 = 13258862 -aTmP1 = 1970-6-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-7-3 12:1:2 -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-7-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-7-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-7-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-7-3 12:1:2 (DST=1) -aTm = 1970-7-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 15850862 -aTmM1 = 1970-7-3 11:1:2 (DST=0) -aTimet0 = 15854462 -aTm0 = 1970-7-3 12:1:2 (DST=0) -aTimetP1 = 15850862 -aTmP1 = 1970-7-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-8-3 12:1:2 -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-8-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-8-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-8-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-8-3 12:1:2 (DST=1) -aTm = 1970-8-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 18529262 -aTmM1 = 1970-8-3 11:1:2 (DST=0) -aTimet0 = 18532862 -aTm0 = 1970-8-3 12:1:2 (DST=0) -aTimetP1 = 18529262 -aTmP1 = 1970-8-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-9-3 12:1:2 -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-9-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-9-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-9-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-9-3 12:1:2 (DST=1) -aTm = 1970-9-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 21207662 -aTmM1 = 1970-9-3 11:1:2 (DST=0) -aTimet0 = 21211262 -aTm0 = 1970-9-3 12:1:2 (DST=0) -aTimetP1 = 21207662 -aTmP1 = 1970-9-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-10-3 12:1:2 -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-10-3 12:1:2 (DST=1) -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-10-3 13:1:2 (DST=1) -Before calling timegm: aTm = 1970-10-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-10-3 12:1:2 (DST=1) -aTm = 1970-10-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 23799662 -aTmM1 = 1970-10-3 11:1:2 (DST=0) -aTimet0 = 23803262 -aTm0 = 1970-10-3 12:1:2 (DST=0) -aTimetP1 = 23799662 -aTmP1 = 1970-10-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-11-3 12:1:2 -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-11-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-11-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-11-3 11:1:2 (DST=0) -aTm = 1970-11-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 26481662 -aTmM1 = 1970-11-3 12:1:2 (DST=0) -aTimet0 = 26481662 -aTm0 = 1970-11-3 12:1:2 (DST=0) -aTimetP1 = 26478062 -aTmP1 = 1970-11-3 11:1:2 (DST=0) -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-12-3 12:1:2 -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-12-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-12-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-12-3 11:1:2 (DST=0) -aTm = 1970-12-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 29073662 -aTmM1 = 1970-12-3 12:1:2 (DST=0) -aTimet0 = 29073662 -aTm0 = 1970-12-3 12:1:2 (DST=0) -aTimetP1 = 29070062 -aTmP1 = 1970-12-3 11:1:2 (DST=0) - -OK (1) -[OVAL] Cppunit-result =0 diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.p1.adjustTimeZone b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.p1.adjustTimeZone deleted file mode 100755 index afa8f0956d39e..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/RelationalFolder/out.Windows.p1.adjustTimeZone +++ /dev/null @@ -1,29 +0,0 @@ -Test test_gmtime_timegm -Before setting isdst: aTm = 1970-1-3 12:1:2 -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=-1) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -After calling timegm: aTm = 1970-1-3 12:1:2 (DST=0) -Before calling timegm: aTm = 1970-1-3 12:1:2 (DST=1) -After calling timegm: aTm = 1970-1-3 11:1:2 (DST=0) -aTm = 1970-1-3 12:1:2 (DST=-1,0,+1) -aTimetM1 = 216062 -aTmM1 = 1970-1-3 12:1:2 (DST=0) -aTimet0 = 216062 -aTm0 = 1970-1-3 12:1:2 (DST=0) -aTimetP1 = 212462 -aTmP1 = 1970-1-3 11:1:2 (DST=0) - -\afs\all\cern.ch\sw\lcg\app\releases\COOL\COOL_1_2_0\src\RelationalCool\tests\RelationalFolder\test_RelationalFolder.cpp(287) : Assertion -Test name: cool::RelationalFolderTest.test_gmtime_timegm -- Expected : 12 - -- Actual : 11 - -gmtime(timegm(tm,isDst=+1))==tm : hour (Month[0-11]=0) - - -Failures !!! -Run: 1 Failure total: 1 Failures: 1 Errors: 0 -Error: CppUnit Failures -[OVAL] Cppunit-result =1 diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/coolSchemaDump.csh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/coolSchemaDump.csh deleted file mode 100755 index eb8098477c351..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/coolSchemaDump.csh +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/csh -f - -#--------------------------------------------------------------------------- -# NB: Make sure $HOME/private/authentication.xml contains YOUR credentials! -#--------------------------------------------------------------------------- - -# The path ${HOME}/private/authentication.xml is set in seal.opts.error -if ( ! -f ${HOME}/private/authentication.xml ) then - echo "ERROR! File ${HOME}/private/authentication.xml not found!" - exit 1 -endif - -#----------------------------------------------------------------------------- - -if ( "$1" == "" || "$2" != "" ) then - echo Usage: $0 dbId - echo Example: $0 '"oracle://devdb10;schema=lcg_cool;dbname=COOL_REF"'; - #echo Example: $0 '"mysql://SERVER;schema=SCHEMA;dbname=DB"'; - exit 1 -endif - -unsetenv ORACLE_HOME -unsetenv SCRAM_HOME -setenv PATH /afs/cern.ch/sw/lcg/app/spi/scram:"${PATH}" - -eval `scram runtime -csh` -setenv TNS_ADMIN ${LOCALRT}/src/RelationalCool/tests -setenv SEAL_CONFIGURATION_FILE ${LOCALRT}/src/RelationalCool/tests/seal.opts.error - -#----------------------------------------------------------------------------- -# 1. Create reference schema - -#setenv COOLTESTDB "$1" -#unitTest_RelationalCool_SchemaDump - -#----------------------------------------------------------------------------- -# 2. Dump reference schema - -set theAuth = `coolAuthentication "$1" | & grep '==>'` -set theAuth = `echo "$theAuth ==>"` -#echo "theAuth = $theAuth" - -set theUrl = `echo "$theAuth" | awk '{str=$0; sep="==> urlHidePswd = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -#echo "theUrl = $theUrl" - -if ( "$theUrl" == "" ) then - echo "ERROR! Could not dump schema for COOL database "\""$1"\" - echo "ERROR! Invalid COOL databaseId or missing authentication credentials" - exit 1 -endif - -echo Dump schema for COOL database \""$theUrl"\" - -set theTech = `echo "$theAuth" | awk '{str=$0; sep="==> technology = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -set theHost = `echo "$theAuth" | awk '{str=$0; sep="==> server = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -set theSchema = `echo "$theAuth" | awk '{str=$0; sep="==> schema = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -set theUser = `echo "$theAuth" | awk '{str=$0; sep="==> user = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -set thePswd = `echo "$theAuth" | awk '{str=$0; sep="==> password = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` -set theDbName = `echo "$theAuth" | awk '{str=$0; sep="==> dbname = "; ind=index(str,sep)+length(sep); str=substr(str,ind); sep=" ==>"; ind=index(str,sep)-1; print substr(str,0,ind);};'` - -#echo "theTech = $theTech" -#echo "theHost = $theHost" -#echo "theSchema = $theSchema" -#echo "theUser = $theUser" -#echo "thePswd = $thePswd" -#echo "theDbName = $theDbName" -#exit - -#-------- -# Oracle -#-------- -if ( "$theTech" == "oracle" ) then - - set theScript = `which $0` - set theSqlDir = `dirname ${theScript}`/sql - #echo "theScript = $theScript" - #echo "theSqlDir = $theSqlDir" - - # HACK on Windows (limit to the size of file names) - pushd $theSqlDir > /dev/null - set theSqlDir = . - #echo "theSqlDir = $theSqlDir" - - # No special treatment is needed for the user/password@host:port/service - # syntax: this is supported out-of-the-box by Oracle EasyConnect - - set theSchema = `echo $theSchema | awk '{print toupper($1)}'` - set theDbName = `echo $theDbName | awk '{print toupper($1)}'` - ###echo Dump Oracle schema - - #set theHtml = "OFF" - set theHtml = "ON" - - if ( "$theHtml" == "ON" ) then - set theOutFile = oracleRefSchema.html - set theOut = `cd ..; pwd`/$theOutFile - \rm -f ${theOut} - echo Results will be in ${theOut} - echo "

" > ${theOut} - echo Schema for COOL database \""$theUrl"\" >> ${theOut} - echo "


" >> ${theOut} - else - set theOut = /dev/stdout - endif - sqlplus -S -L -M "HTML ${theHtml}" ${theUser}/${thePswd}@${theHost} @${theSqlDir}/oracleSchemaDump.sql ${theSchema} ${theDbName} | grep -v "rows selected" >> ${theOut} - - set theTables = `sqlplus -S -L ${theUser}/${thePswd}@${theHost} @${theSqlDir}/oracleShowTables.sql ${theSchema} ${theDbName} | grep ${theDbName}_` - #echo "theTables = $theTables" - foreach aTable ( $theTables ) - #echo Describe Oracle table ${aTable} - sqlplus -S -L -M "HTML ${theHtml}" ${theUser}/${thePswd}@${theHost} @${theSqlDir}/oracleDescTable.sql ${aTable} "${theSchema}.${aTable}" >> ${theOut} - end - - # Copy the results in a directory visible from the Web - if ( "${USER}" == "avalassi" ) then - \cp ${theOut} ~/myLCG/www/tmp/${theOutFile} - echo "Results can be browsed on" - echo " http://lcgapp.cern.ch/project/CondDB/tmp/${theOutFile}" - endif - - # HACK on Windows - popd > /dev/null - -#------- -# MySQL -#------- -else if ( "$theTech" == "mysql" ) then - - # A special treatment is needed for the host:port syntax: - # the port number must be parsed out and passed explicitly - set thePort = `echo "$theHost" | awk '{str=$0; sep=":"; ind=index(str,sep); if (ind>0) print "-P" substr(str,ind+length(sep)); else print "";};'` - set theHost = `echo "$theHost" | awk '{str=$0; sep=":"; ind=index(str,sep); if (ind>0) print substr(str,0,ind-length(sep)); else print str;};'` - #echo "theHost = $theHost" - #echo "thePort = $thePort" - - ###echo Dump MySQL schema - #mysql -u${theUser} -p${thePswd} -h${theHost} ${thePort} ${theSchema} -e "drop table ${aTable};" - echo NOT YET SUPPORTED - -#-------- -# SQLite -#-------- -else if ( "$theTech" == "sqlite" ) then - - ###echo Dump SQLite schema - echo NOT YET SUPPORTED - -endif - - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/oracleRefSchema.html b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/oracleRefSchema.html deleted file mode 100644 index ea9f638bcfdcc..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/SchemaDump/oracleRefSchema.html +++ /dev/null @@ -1,2377 +0,0 @@ -

-Schema for COOL database "oracle://devdb10;schema=lcg_cool;dbname=COOL_REF" -


- - - - -SQL*Plus Report - - - -

TABLES

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-TABLE_NAME -
-COOL_REF_DB_ATTRIBUTES -
-COOL_REF_NODES -
-COOL_REF_NODES_SEQ -
-COOL_REF_TAGS -
-COOL_REF_F0002_IOVS -
-COOL_REF_F0002_IOVS_SEQ -
-COOL_REF_F0003_IOV2TAG -
-COOL_REF_F0003_IOVS -
-COOL_REF_F0003_IOVS_SEQ -
-COOL_REF_F0003_TAGS -
-COOL_REF_F0003_TAGS_SEQ -
-

- -
- - -

INDEXES

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-TABLE_NAME - -INDEX_NAME - -UNIQUENES -
-COOL_REF_DB_ATTRIBUTES - -COOL_REF_DB_ATTRIBUTES_PK - -UNIQUE -
-COOL_REF_NODES - -COOL_REF_NODES_PK - -UNIQUE -
-COOL_REF_NODES_SEQ - -COOL_REF_NODES_SEQ_PK - -UNIQUE -
-COOL_REF_TAGS - -COOL_REF_TAGS_PK - -UNIQUE -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CO_2INDX - -NONUNIQUE -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CSU_3INDX - -NONUNIQUE -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_PK - -UNIQUE -
-COOL_REF_F0002_IOVS_SEQ - -COOL_REF_F0002_IOVS_SEQ_PK - -UNIQUE -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CO_2INDX - -NONUNIQUE -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CSU_3INDX - -NONUNIQUE -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_PK - -UNIQUE -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_4INDX - -NONUNIQUE -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_PK - -UNIQUE -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_OCSU_4INDX - -UNIQUE -
-COOL_REF_F0003_IOVS_SEQ - -COOL_REF_F0003_IOVS_SEQ_PK - -UNIQUE -
-COOL_REF_F0003_TAGS - -COOL_REF_F0003_TAGS_PK - -UNIQUE -
-COOL_REF_F0003_TAGS_SEQ - -COOL_REF_F0003_TAGS_SEQ_PK - -UNIQUE -
-

- -
- - -

CONSTRAINTS

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-TABLE_NAME - -CONSTRAINT_NAME - -TYPE - -R_CONSTRAINT_NAME - -INDEX_NAME -
-COOL_REF_DB_ATTRIBUTES - -COOL_REF_DB_ATTRIBUTES_PK - -P - -  - -COOL_REF_DB_ATTRIBUTES_PK -
-COOL_REF_NODES - -COOL_REF_NODES_PK - -P - -  - -COOL_REF_NODES_PK -
-COOL_REF_NODES_SEQ - -COOL_REF_NODES_SEQ_PK - -P - -  - -COOL_REF_NODES_SEQ_PK -
-COOL_REF_TAGS - -COOL_REF_TAGS_PK - -P - -  - -COOL_REF_TAGS_PK -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_PK - -P - -  - -COOL_REF_F0002_IOVS_PK -
-COOL_REF_F0002_IOVS_SEQ - -COOL_REF_F0002_IOVS_SEQ_PK - -P - -  - -COOL_REF_F0002_IOVS_SEQ_PK -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_PK - -P - -  - -COOL_REF_F0003_IOVS_PK -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_PK - -P - -  - -COOL_REF_F0003_IOV2TAG_PK -
-COOL_REF_F0003_IOVS_SEQ - -COOL_REF_F0003_IOVS_SEQ_PK - -P - -  - -COOL_REF_F0003_IOVS_SEQ_PK -
-COOL_REF_F0003_TAGS - -COOL_REF_F0003_TAGS_PK - -P - -  - -COOL_REF_F0003_TAGS_PK -
-COOL_REF_F0003_TAGS_SEQ - -COOL_REF_F0003_TAGS_SEQ_PK - -P - -  - -COOL_REF_F0003_TAGS_SEQ_PK -
-COOL_REF_NODES - -COOL_REF_NODES_PARENT_FK - -R - -COOL_REF_NODES_PK - -  -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_O_FK - -R - -COOL_REF_F0003_IOVS_PK - -  -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_T_FK - -R - -COOL_REF_F0003_TAGS_PK - -  -
-

- -
- - -

INDEXED COLUMNS

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-TABLE_NAME - -INDEX_NAME - -COL_NAME - -COL_POS - -DESC -
-COOL_REF_DB_ATTRIBUTES - -COOL_REF_DB_ATTRIBUTES_PK - -DB_ATTRIBUTE_NAME - - 1 - -ASC -
-COOL_REF_NODES - -COOL_REF_NODES_PK - -NODE_ID - - 1 - -ASC -
-COOL_REF_NODES_SEQ - -COOL_REF_NODES_SEQ_PK - -SEQUENCE_NAME - - 1 - -ASC -
-COOL_REF_TAGS - -COOL_REF_TAGS_PK - -TAG_ID - - 1 - -ASC -
-COOL_REF_TAGS - -COOL_REF_TAGS_PK - -NODE_ID - - 2 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CO_2INDX - -CHANNEL_ID - - 1 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CO_2INDX - -OBJECT_ID - - 2 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CSU_3INDX - -CHANNEL_ID - - 1 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CSU_3INDX - -IOV_SINCE - - 2 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_CSU_3INDX - -IOV_UNTIL - - 3 - -ASC -
-COOL_REF_F0002_IOVS - -COOL_REF_F0002_IOVS_PK - -OBJECT_ID - - 1 - -ASC -
-COOL_REF_F0002_IOVS_SEQ - -COOL_REF_F0002_IOVS_SEQ_PK - -SEQUENCE_NAME - - 1 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CO_2INDX - -CHANNEL_ID - - 1 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CO_2INDX - -OBJECT_ID - - 2 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CSU_3INDX - -CHANNEL_ID - - 1 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CSU_3INDX - -IOV_SINCE - - 2 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_CSU_3INDX - -IOV_UNTIL - - 3 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_PK - -OBJECT_ID - - 1 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_4INDX - -TAG_ID - - 1 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_4INDX - -CHANNEL_ID - - 2 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_4INDX - -IOV_SINCE - - 3 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_4INDX - -IOV_UNTIL - - 4 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_PK - -TAG_ID - - 1 - -ASC -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_PK - -OBJECT_ID - - 2 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_OCSU_4INDX - -OBJECT_ID - - 1 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_OCSU_4INDX - -CHANNEL_ID - - 2 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_OCSU_4INDX - -IOV_SINCE - - 3 - -ASC -
-COOL_REF_F0003_IOVS - -COOL_REF_F0003_IOVS_OCSU_4INDX - -IOV_UNTIL - - 4 - -ASC -
-COOL_REF_F0003_IOVS_SEQ - -COOL_REF_F0003_IOVS_SEQ_PK - -SEQUENCE_NAME - - 1 - -ASC -
-COOL_REF_F0003_TAGS - -COOL_REF_F0003_TAGS_PK - -TAG_ID - - 1 - -ASC -
-COOL_REF_F0003_TAGS_SEQ - -COOL_REF_F0003_TAGS_SEQ_PK - -SEQUENCE_NAME - - 1 - -ASC -
-

- -
- - -

FOREIGN KEY COLUMNS

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-TABLE_NAME - -CONSTRAINT_NAME - -R_CONSTRAINT_NAME - -COL_NAME - -COL_POS - -R_COL_NAME - -R_COL_POS -
-COOL_REF_NODES - -COOL_REF_NODES_PARENT_FK - -COOL_REF_NODES_PK - -NODE_PARENTID - - 1 - -NODE_ID - - 1 -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_O_FK - -COOL_REF_F0003_IOVS_PK - -OBJECT_ID - - 1 - -OBJECT_ID - - 1 -
-COOL_REF_F0003_IOV2TAG - -COOL_REF_F0003_IOV2TAG_T_FK - -COOL_REF_F0003_TAGS_PK - -TAG_ID - - 1 - -TAG_ID - - 1 -
-

- -



-
- - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_DB_ATTRIBUTES

-
- - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-DB_ATTRIBUTE_NAME - -NOT NULL - -VARCHAR2(255) -
-DB_ATTRIBUTE_VALUE - -  - -VARCHAR2(4000) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_NODES

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-NODE_ID - -NOT NULL - -NUMBER(10) -
-NODE_PARENTID - -  - -NUMBER(10) -
-NODE_NAME - -  - -VARCHAR2(255) -
-NODE_FULLPATH - -  - -VARCHAR2(255) -
-NODE_DESCRIPTION - -  - -VARCHAR2(255) -
-NODE_ISLEAF - -  - -NUMBER(1) -
-NODE_INSTIME - -  - -VARCHAR2(255) -
-FOLDER_PAYLOADSPEC - -  - -VARCHAR2(4000) -
-FOLDER_VERSIONING - -  - -NUMBER(10) -
-FOLDER_IOVTABLENAME - -  - -VARCHAR2(255) -
-FOLDER_TAGTABLENAME - -  - -VARCHAR2(255) -
-FOLDER_IOV2TAGTABLENAME - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_NODES_SEQ

-
- - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-SEQUENCE_NAME - -NOT NULL - -VARCHAR2(255) -
-CURRENT_VALUE - -  - -NUMBER(10) -
-LASTMOD_DATE - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_TAGS

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-TAG_ID - -NOT NULL - -NUMBER(10) -
-NODE_ID - -NOT NULL - -NUMBER(10) -
-TAG_NAME - -  - -VARCHAR2(255) -
-TAG_DESCRIPTION - -  - -VARCHAR2(255) -
-SYS_INSTIME - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0002_IOVS

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-OBJECT_ID - -NOT NULL - -NUMBER(10) -
-CHANNEL_ID - -  - -NUMBER(10) -
-IOV_SINCE - -  - -NUMBER(20) -
-IOV_UNTIL - -  - -NUMBER(20) -
-USER_TAG_ID - -  - -NUMBER(10) -
-SYS_INSTIME - -  - -VARCHAR2(255) -
-ORIGINAL_ID - -  - -NUMBER(10) -
-NEW_HEAD_ID - -  - -NUMBER(10) -
-A_BOOL - -  - -NUMBER(1) -
-A_SHRT - -  - -NUMBER(5) -
-A_USHRT - -  - -NUMBER(5) -
-A_INT - -  - -NUMBER(10) -
-A_UINT - -  - -NUMBER(10) -
-A_LONG - -  - -NUMBER(10) -
-A_ULONG - -  - -NUMBER(10) -
-A_ULONGLONG - -  - -NUMBER(20) -
-A_FLOAT - -  - -BINARY_FLOAT -
-A_DOUBLE - -  - -BINARY_DOUBLE -
-A_STRING - -  - -VARCHAR2(4000) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0002_IOVS_SEQ

-
- - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-SEQUENCE_NAME - -NOT NULL - -VARCHAR2(255) -
-CURRENT_VALUE - -  - -NUMBER(10) -
-LASTMOD_DATE - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0003_IOV2TAG

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-TAG_ID - -NOT NULL - -NUMBER(10) -
-OBJECT_ID - -NOT NULL - -NUMBER(10) -
-CHANNEL_ID - -  - -NUMBER(10) -
-IOV_SINCE - -  - -NUMBER(20) -
-IOV_UNTIL - -  - -NUMBER(20) -
-SYS_INSTIME - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0003_IOVS

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-OBJECT_ID - -NOT NULL - -NUMBER(10) -
-CHANNEL_ID - -  - -NUMBER(10) -
-IOV_SINCE - -  - -NUMBER(20) -
-IOV_UNTIL - -  - -NUMBER(20) -
-USER_TAG_ID - -  - -NUMBER(10) -
-SYS_INSTIME - -  - -VARCHAR2(255) -
-ORIGINAL_ID - -  - -NUMBER(10) -
-NEW_HEAD_ID - -  - -NUMBER(10) -
-A_BOOL - -  - -NUMBER(1) -
-A_SHRT - -  - -NUMBER(5) -
-A_USHRT - -  - -NUMBER(5) -
-A_INT - -  - -NUMBER(10) -
-A_UINT - -  - -NUMBER(10) -
-A_LONG - -  - -NUMBER(10) -
-A_ULONG - -  - -NUMBER(10) -
-A_ULONGLONG - -  - -NUMBER(20) -
-A_FLOAT - -  - -BINARY_FLOAT -
-A_DOUBLE - -  - -BINARY_DOUBLE -
-A_STRING - -  - -VARCHAR2(4000) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0003_IOVS_SEQ

-
- - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-SEQUENCE_NAME - -NOT NULL - -VARCHAR2(255) -
-CURRENT_VALUE - -  - -NUMBER(10) -
-LASTMOD_DATE - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0003_TAGS

-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-TAG_ID - -NOT NULL - -NUMBER(10) -
-TAG_NAME - -  - -VARCHAR2(255) -
-TAG_DESCRIPTION - -  - -VARCHAR2(255) -
-SYS_INSTIME - -  - -VARCHAR2(255) -
-

- - - - - - - -SQL*Plus Report - - - -

TABLE COOL_REF_F0003_TAGS_SEQ

-
- - - - - - - - - - - - - - - - - - - - - -
-Name - -Null? - -Type -
-SEQUENCE_NAME - -NOT NULL - -VARCHAR2(255) -
-CURRENT_VALUE - -  - -NUMBER(10) -
-LASTMOD_DATE - -  - -VARCHAR2(255) -
-

- - - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/authentication.xml b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/authentication.xml deleted file mode 100755 index de4a031e76f0d..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/authentication.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/setupLocalTns.csh b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/setupLocalTns.csh deleted file mode 100644 index 04f8dd0258198..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/setupLocalTns.csh +++ /dev/null @@ -1 +0,0 @@ -setenv TNS_ADMIN /$LOCALRT/src/RelationalCool/tests diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/tnsnames.ora b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/tnsnames.ora deleted file mode 100644 index 8dd5b0863a7d6..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/tests/tnsnames.ora +++ /dev/null @@ -1,24 +0,0 @@ -# Add here the description of your private server -# myserver = -# (DESCRIPTION = -# (ADDRESS_LIST = -# (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.cern.ch)(PORT = 1521)) -# ) -# (CONNECT_DATA = -# (SERVICE_NAME = myservicename) -# ) -# ) - -# 3D Frontier test server -bd3d = - (DESCRIPTION = - (ADDRESS = (PROTOCOL = TCP)(HOST = lxfs6043.cern.ch)(PORT = 1521)) - (CONNECT_DATA = - (SID = bd3d) - ) - ) - -# Under cygwin, this path MUST start with '//' -# Under Linux, both '/' and '//' would work -IFILE = //afs/cern.ch/project/oracle/admin/tnsnames.ora - diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolEvolveSchema/RalSchemaEvolution.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolEvolveSchema/RalSchemaEvolution.h deleted file mode 100644 index 0011365a5cf65..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolEvolveSchema/RalSchemaEvolution.h +++ /dev/null @@ -1,170 +0,0 @@ -// $Id: RalSchemaEvolution.h,v 1.34 2009-12-16 17:27:48 avalassi Exp $ -#ifndef RELATIONALCOOL_RALSCHEMAEVOLUTION_H -#define RELATIONALCOOL_RALSCHEMAEVOLUTION_H 1 - -// Include files -#include -#include "CoolKernel/DatabaseId.h" -#include "CoolKernel/RecordSpecification.h" -#include "CoralBase/MessageStream.h" -#include "RelationalAccess/IConnectionService.h" - -// Local include files -#include "../../src/CoralConnectionServiceProxy.h" - -namespace cool -{ - - // Forward declarations - class RalDatabase; - class RelationalObjectTableRow; - class RelationalTableRow; - - /** @class RalSchemaEvolution RalSchemaEvolution.h - * - * Private utility class to implement COOL relational schema evolution. - * - * @author Andrea Valassi - * @date 2006-03-15 - */ - - class RalSchemaEvolution - { - - public: - - /// Constructor - RalSchemaEvolution( CoralConnectionServiceProxyPtr ppConnSvc, - const DatabaseId& dbId ); - - /// Destructor - virtual ~RalSchemaEvolution(); - - /// Evolve the schema of the full database to version 220. - /// Encapsulate schema evolution in a single transaction. - void evolveDatabase(); - - protected: - - /// Get a CORAL MessageStream - coral::MessageStream& log(); - - /// Get the RalDatabase reference - const RalDatabase& db() const { return *m_db; } - - /// --- SCHEMA EVOLUTION FROM COOL_1_3_0 TO COOL_2_0_0 - - /// Evolve the schema of the full database (130->200). - void evolveDatabase_130_to_200(); - - /// Evolve the schema of the node table (130->200). - void i_evolveNodeTable_130_200(); - - /// Evolve the schema of the global tag table (130->200). - void i_evolveGlobalTagTable_130_200(); - - /// Evolve the schema of the tag2tag table (130->200). - void i_evolveTag2TagTable_130_200(); - - /// Create the tag shared sequence (130->200). - void i_createTagSharedSequence_130_200(); - - /// Create the IOV shared sequence (130->200). - void i_createIovSharedSequence_130_200(); - - /// Evolve the IOV table schema for a given folder (130->200). - void i_evolveIovTable_130_to_200( const RelationalTableRow& row ); - - /// Create the channels table for a given folder (130->200). - void i_createChannelsTable_130_to_200( const RelationalTableRow& row ); - - /// Fill the channels tables for a given SV folder (130->200). - void i_fillChannelsTableSV_130_to_200( const RelationalTableRow& row ); - - /// Update node table with updated values for a given folder (130->200). - void i_updateNodeTable_130_to_200( const RelationalTableRow& row ); - - /// Evolve the schema and contents of the main table (130->200). - void i_evolveMainTable_130_to_200(); - - /// Alter selected SQL types in all tables (130->200, MySQL/sqlite only). - void i_alterSqlTypes_130_to_200(); - - /// Decode a 200 RecordSpecification from a 130 encoded 'extended' EALS - static const RecordSpecification - decodeRecordSpecification130( const std::string& encodedEALS ); - - /// Decode a 200 StorageType from a 130 encoded type specification - static const StorageType& - storageType130( const std::string& encodedType ); - - const std::vector - listChannels( const std::string& objectTableName ) const; - - RelationalObjectTableRow - fetchLastRow( const std::string& objectTableName, - const ChannelId& channelId ); - - const RelationalObjectTableRow - fetchRowForId( const std::string& objectTableName, - const unsigned int objectId ) const; - - void insertChannelTableRow( const std::string& channelTableName, - const ChannelId& channelId, - const unsigned int lastObjectId, - const bool hasNewData, - const std::string& channelName, - const std::string& description ) const; - - /// --- SCHEMA EVOLUTION FROM COOL_2_0_0 TO COOL_2_2_0 - - /// Evolve SQL types and the schema of individual nodes (200->220). - void evolveDatabase_200_to_220(); - - /// Alter selected SQL types in all tables (200->220, MySQL only). - void i_alterSqlTypes_200_to_220(); - - /// Evolve the schema of individual nodes (200->220). - void i_evolveNodes_200_to_220(); - - /// Fill the channels tables for a given MV folder (200->220). - void i_fillChannelsTableMV_200_to_220( const RelationalTableRow& row ); - - /// Evolve the IOV table schema for a given folder (200->220). - void i_evolveIovTable_200_to_220( const RelationalTableRow& row ); - - /// Update node table with updated values for a given folder (200->220). - void i_updateNodeTable_200_to_220( const RelationalTableRow& row ); - - /// --- SCHEMA EVOLUTION FROM COOL_2_2_0 TO COOL_2_8_1 - - /// Evolve the node table (220->281). - void evolveDatabase_220_to_281(); - - /// Update node table by replacing NULL with 0 or "" (220->281). - void i_updateNodeTable_220_to_281(); - - private: - - /// Standard constructor is private - RalSchemaEvolution(); - - /// Copy constructor is private - RalSchemaEvolution( const RalSchemaEvolution& rhs ); - - /// Assignment operator is private - RalSchemaEvolution& operator=( const RalSchemaEvolution& rhs ); - - private: - - /// RalDatabase pointer - RalDatabase* m_db; - - /// CORAL MessageStream - std::auto_ptr m_log; - - }; - -} - -#endif // RELATIONALCOOL_RALSCHEMAEVOLUTION_H diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolPrivileges/RalPrivilegeManager.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolPrivileges/RalPrivilegeManager.h deleted file mode 100644 index b4c85cecd3583..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolPrivileges/RalPrivilegeManager.h +++ /dev/null @@ -1,123 +0,0 @@ -// $Id: RalPrivilegeManager.h,v 1.5 2011-06-27 11:54:06 avalassi Exp $ -#ifndef RELATIONALCOOL_RALPRIVILEGEMANAGER_H -#define RELATIONALCOOL_RALPRIVILEGEMANAGER_H 1 - -// Include files -#include -#include "CoralBase/MessageStream.h" -#include "RelationalAccess/ITablePrivilegeManager.h" - -namespace cool -{ - - // Forward declarations - class RalDatabase; - - /** @class RalPrivilegeManager RalPrivilegeManager.h - * - * Private utility class to grant/revoke table-level object privileges - * on COOL schema objects to other users in the same server. - * - * For the moment, this does not implement any public API: the - * functionality is offered to users only via pre-built executables. - * This class uses a bare RalDatabase which means we are using the - * manual transaction mode. - * - * This class can only be used with "oracle" database technology. - * - * @author Andrea Valassi and Sven A. Schmidt - * @date 2005-07-05 - */ - - class RalPrivilegeManager - { - - /// Adopt the same Privilege list as RAL (SELECT, UPDATE, INSERT, DELETE) - typedef enum { SELECT, INSERT, UPDATE, DELETE } Privilege; - - public: - - /// Constructor from a RalDatabase pointer - RalPrivilegeManager( RalDatabase* db ); - - /// Destructor - virtual ~RalPrivilegeManager(); - - /// Grant privileges to read all data in the COOL database - void grantReaderPrivileges( const std::string& user ); - - /// Revoke privileges to read all data in the COOL database - void revokeReaderPrivileges( const std::string& user ); - - /// Grant privileges to insert new IOVs into the COOL database - /// [NB: reader privileges are also needed and must be granted explicitly] - void grantWriterPrivileges( const std::string& user ); - - /// Revoke privileges to insert new IOVs into the COOL database - void revokeWriterPrivileges( const std::string& user ); - - /// Grant privileges to tag (optionally retag) IOVs in the COOL database - /// [NB: reader privileges are also needed and must be granted explicitly] - void grantTaggerPrivileges( const std::string& user, - const bool retag ); - - /// Revoke privileges to tag and/or retag IOVs in the COOL database - void revokeTaggerPrivileges( const std::string& user ); - - protected: - - /// Get a CORAL MessageStream - coral::MessageStream& log(); - - /// List all tables that a READER must be allowed to have privileges on - /// [For SELECT privileges these are ALL the tables in the COOL database] - std::vector< std::string > i_listReaderTables( const Privilege& priv ); - - /// List all tables that a WRITER must be allowed to have privileges on - std::vector< std::string > i_listWriterTables( const Privilege& priv ); - - /// List all tables that a TAGGER must be allowed to have privileges on - std::vector< std::string > i_listTaggerTables( const Privilege& priv, - const bool retag ); - - /// Get the coral::ITablePrivilegeManager for a given table - coral::ITablePrivilegeManager& - i_tablePrivMgr( const std::string& table ); - - /// Grant a given privilege on a given table to a given user - void i_grantPrivilege( const Privilege& priv, - const std::string& table, - const std::string& user ); - - /// Revoke a given privilege on a given table to a given user - void i_revokePrivilege( const Privilege& priv, - const std::string& table, - const std::string& user ); - - private: - - /// Standard constructor is private - RalPrivilegeManager(); - - /// Copy constructor is private - RalPrivilegeManager( const RalPrivilegeManager& rhs ); - - /// Assignment operator is private - RalPrivilegeManager& operator=( const RalPrivilegeManager& rhs ); - - private: - - /// RalDatabase pointer - RalDatabase* m_db; - - /// CORAL MessageStream - std::auto_ptr m_log; - - /// Vector of four basic privileges - std::vector m_fourPrivs; - - }; - -} - -#endif // RELATIONALCOOL_RALPRIVILEGEMANAGER_H diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolReplicateDB/Replication.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolReplicateDB/Replication.h deleted file mode 100644 index 4b514a6befecd..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolReplicateDB/Replication.h +++ /dev/null @@ -1,202 +0,0 @@ -// $Id: Replication.h,v 1.20 2010-03-29 16:21:09 avalassi Exp $ - -// Include files -#include -#include "CoolKernel/pointers.h" -#include "RelationalAccess/ICursor.h" -#include "RelationalAccess/IQuery.h" - -// Local include files -#include "../../src/CoralApplication.h" -#include "../../src/RelationalTableRow.h" - -namespace cool -{ - - class IRecordSpecification; - class RalDatabase; - class RelationalFolder; - - class CursorHandle - { - - public: - - CursorHandle( std::auto_ptr& query, - boost::shared_ptr& dataBuffer ) - : m_query( query ) - // AFAIK, execution order is not guaranteed, meaning m_query->execute() - // could be called before m_query is assigned. However, using - // query->execute() won't work either, because assigning query to - // m_query (which is highly likely to happen before in the current - // initialization order) invalidates query. The ternary operator - // is there to ensure we use the right IQuery pointer. - , m_cursor( m_query.get()!=NULL ? m_query->execute() : query->execute() ) - , m_dataBuffer( dataBuffer ) - {} - - coral::ICursor& cursor() - { - return m_cursor; - } - - private: - - std::auto_ptr m_query; - coral::ICursor& m_cursor; - boost::shared_ptr m_dataBuffer; - }; - - class Replication : public CoralApplication - { - - public: - - Replication(); - - /// Replicate the source to the target database as specified by the urls. - int replicate( const std::string& sourceUrl, - const std::string& targetUrl ); - - private: - - /// Replicates all new rows in the node table since 'lastUpdate'. - void replicateNodeTable( const std::string& lastUpdate ); - - /// Replicates data in all nodes since 'lastUpdate'. - void replicateNodes( const std::string& lastUpdate ); - - /// Replicates data in all folder sets since 'lastUpdate'. - void replicateFolderSets( const std::string& lastUpdate ); - - /// Replicates data in all folders since 'lastUpdate'. - void replicateFolders( const std::string& lastUpdate ); - - /// Replicates the 'source' to the 'target' folder. - void replicateFolder( const RelationalFolder& sourceFolder, - const RelationalFolder& targetFolder, - const std::string& lastUpdate ); - - /// Replicates the global tag table. - void replicateTags(); - - /// Inserts the given rows into 'tableName' in 'db' in bulk. - /// Returns the number of inserted rows. - unsigned int bulkInsert( const RalDatabase& db, - const std::string& tableName, - boost::shared_ptr& cursorHandle ); - - /// Inserts the given rows into 'tableName' in 'db' in bulk. - /// Returns the number of inserted rows. - unsigned int bulkInsert( const RalDatabase& db, - const std::string& tableName, - const std::vector& rows ); - - /// Updates the given rows of object table 'tableName' in 'db' in bulk. - void bulkUpdateObjectTableRows( const RalDatabase& db, - const std::string& tableName, - boost::shared_ptr& cursorHandle ); - - /// Updates the given descriptions of the node table in 'db' in bulk. - void bulkUpdateNodeTableDescriptions( const RalDatabase& db, - const std::vector& rows ); - - /// Returns the current server time. - std::string serverTime( const RalDatabase& db ); - - /// Updates the main LAST_REPLICATION field of db's main table. - void updateLastReplication( const RalDatabase& db, - const std::string& lastUpdate ); - - /// Updates the main LAST_REPLICATION_SOURCE field of db's main table. - void updateLastReplicationSource( const RalDatabase& db, - const std::string& sourceUrl ); - - /// Sets the source database member variables. This implies opening the - /// the database. - void setSourceDb( const std::string& url ); - - /// Returns the source database handle. - RalDatabase& sourceDb() { return *m_sourceRalDb; } - - /// Sets the target database member variables. This implies opening the - /// the database. - void setTargetDb( const std::string& url ); - - /// Returns the target database handle. - RalDatabase& targetDb() { return *m_targetRalDb; } - - /// Fetched the time of the target's last update for the database. - std::string getLastUpdate(); - - /// Checks if the two schemas are compatible for replication - bool checkSchemaCompliance( const RalDatabase& source, - const RalDatabase& target ); - - /// Fetch node table rows inserted after 'lastUpdate'. - std::vector - newNodeTableRows( const RalDatabase& db, - const std::string& lastUpdate ); - - /// Fetch node table rows modified after 'lastUpdate'. - std::vector - modifiedNodeTableRows( const RalDatabase& db, - const std::string& lastUpdate ); - - /// Fetch node table rows with the given 'isLeaf' flag. - std::vector - fetchNodeTableRows( const RalDatabase& db, bool isLeaf ); - - /// Fetch object table rows inserted after 'lastUpdate'. - boost::shared_ptr - newObjectTableRows( const RalDatabase& db, - const RelationalFolder& folder, - const std::string& lastUpdate ); - /// Fetch payload table rows inserted after 'lastUpdate'. - boost::shared_ptr - newPayloadTableRows( const RalDatabase& db, - const RelationalFolder& folder, - const std::string& lastUpdate ); - - /// Fetch object table rows modified after 'lastUpdate'. - boost::shared_ptr - modifiedObjectTableRows( const RalDatabase& db, - const RelationalFolder& folder, - const std::string& lastUpdate ); - - /// Fetch all local tag table rows - std::vector - localTagTableRows( const RalDatabase& db, - const RelationalFolder& folder ); - - /// Fetch all iov to tag table rows - std::vector - object2TagTableRows( const RalDatabase& db, - const RelationalFolder& folder ); - - /// Fetch all global tag table rows - std::vector - globalTagTableRows( const RalDatabase& db ); - - /// Fetch all tag to tag table rows - std::vector - tag2TagTableRows( const RalDatabase& db ); - - /// Fetch all channel table rows. - std::vector - channelTableRows( const RalDatabase& db, - const RelationalFolder& folder ); - - /// Update payload specifications (payload name changes, extensions) - /// on the target. - void updatePayloadSpecifications(); - - IDatabasePtr m_sourceDb; - IDatabasePtr m_targetDb; - RalDatabase* m_sourceRalDb; - RalDatabase* m_targetRalDb; - std::auto_ptr m_cursor; - - }; - -} // namespace diff --git a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolValidateSchema/RalSchemaValidation.h b/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolValidateSchema/RalSchemaValidation.h deleted file mode 100644 index f54b57a0b64c9..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/RelationalCool/utilities/coolValidateSchema/RalSchemaValidation.h +++ /dev/null @@ -1,107 +0,0 @@ -// $Id: RalSchemaValidation.h,v 1.10 2009-12-16 17:27:49 avalassi Exp $ -#ifndef RELATIONALCOOL_RALSCHEMAVALIDATION_H -#define RELATIONALCOOL_RALSCHEMAVALIDATION_H 1 - -// Include files -#include -#include "CoolKernel/DatabaseId.h" -#include "CoolKernel/RecordSpecification.h" -#include "CoralBase/MessageStream.h" - -namespace cool -{ - - // Forward declarations - class RalDatabase; - class RelationalObjectTableRow; - class RelationalTableRow; - - /** @class RalSchemaValidation RalSchemaValidation.h - * - * Private utility class to implement COOL relational schema validation. - * - * @author Andrea Valassi - * @date 2007-10-22 - */ - - class RalSchemaValidation - { - - public: - - /// Constructor from a RalDatabase pointer (see RalPrivilegeManager) - RalSchemaValidation( RalDatabase* db ); - - /// Destructor - virtual ~RalSchemaValidation(); - - /// Validate the schema of the full database. - void validateDatabase(); - - protected: - - /// Get a CORAL MessageStream - coral::MessageStream& log(); - - /// Get the RalDatabase reference - const RalDatabase& db() const { return *m_db; } - - /// --- SCHEMA VALIDATION FOR COOL_2_8_x - - /// Validate the schema of the full database (28x). - void validateDatabase_28x(); - - /// Check SQL types of columns in all tables (220). - //void i_checkSqlTypes_220(); - - /// Check that channels tables exist for all folders (220). - /// Check that tagSequence tables exist for all nodes but SV folders (220). - void i_checkNodeTables_220(); - - /// Check the names of all nodes (222). - void i_checkNodeNames_222(); - - /// Check that for all nodes the inline payload mode is not null (28x). - /// Check that for all folder sets inlineMode is 0 and extRef == "" (28x). - /// Check that for all folders inlineMode is 0/1 and extRef ==/!= "" (28x). - /// Check that for all nodes the value of the external ref payload (28x). - /// Check that all folders with inlineMode 0/1 are version 201/280 (28x). - /// Check the schema of the channels tables of all folders (220). - void i_checkNodes_28x(); - - /// Check the schema of the channels table of a folder (220). - void i_checkChannelsTable_220( const RelationalTableRow& row ); - - private: - - /// Standard constructor is private - RalSchemaValidation(); - - /// Copy constructor is private - RalSchemaValidation( const RalSchemaValidation& rhs ); - - /// Assignment operator is private - RalSchemaValidation& operator=( const RalSchemaValidation& rhs ); - - private: - - /// RalDatabase pointer - RalDatabase* m_db; - - /// CORAL MessageStream - std::auto_ptr m_log; - - /// Fatal errors received during schema validation - bool m_fatal; - - /// Errors received during schema validation - std::vector m_errors; - - /// Warnings received during schema validation - std::vector m_warnings; - - }; - -} - -#endif // RELATIONALCOOL_RALSCHEMAVALIDATION_H diff --git a/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.C b/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.C deleted file mode 100644 index c2af2ad2773ed..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.C +++ /dev/null @@ -1,4 +0,0 @@ -int execLibLoad() -{ - return 0; -} diff --git a/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.ref b/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.ref deleted file mode 100644 index 9438b11a4905d..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5768/execLibLoad.ref +++ /dev/null @@ -1,3 +0,0 @@ - -Processing execLibLoad.C... -(int) 0 diff --git a/roottest/root/meta/genreflex/ROOT-5881/.rootrc b/roottest/root/meta/genreflex/ROOT-5881/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5881/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5881/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5881/CMakeLists.txt index c36be7554abeb..77dc4b4f414ef 100644 --- a/roottest/root/meta/genreflex/ROOT-5881/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5881/CMakeLists.txt @@ -1,18 +1,21 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(StringDict - stringIO_allClasses.h SELECTION stringIO_allClasses_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(StringDict + stringIO_allClasses.h + SELECTION stringIO_allClasses_selection.xml + FIXTURES_SETUP root-meta-genreflex-5881-dict-fixture) -ROOTTEST_GENERATE_EXECUTABLE(writeTreeBinary writeTree.cpp - LIBRARIES Core RIO Tree) +ROOTTEST_GENERATE_EXECUTABLE(writeTreeBinary + writeTree.cpp + LIBRARIES Core RIO Tree + FIXTURES_SETUP root-meta-genreflex-5881-exec-fixture) ROOTTEST_ADD_TEST(execStringInputFiles EXEC ${CMAKE_CURRENT_BINARY_DIR}/writeTreeBinary - DEPENDS ${GENERATE_REFLEX_TEST} ${GENERATE_EXECUTABLE_TEST} - FIXTURES_SETUP execStringInputFiles) + FIXTURES_REQUIRED root-meta-genreflex-5881-dict-fixture + root-meta-genreflex-5881-exec-fixture + FIXTURES_SETUP root-meta-genreflex-5881-inputfiles-fixture) ROOTTEST_ADD_TEST(execstringI - MACRO execstringI.C - OUTREF execstringI.ref - DEPENDS execStringInputFiles - FIXTURES_REQUIRED execStringInputFiles -) + MACRO execstringI.C + OUTREF execstringI.ref + FIXTURES_REQUIRED root-meta-genreflex-5881-inputfiles-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-5952/.rootrc b/roottest/root/meta/genreflex/ROOT-5952/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5952/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-5952/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-5952/CMakeLists.txt index d101397a9fe35..2ff56e608bac5 100644 --- a/roottest/root/meta/genreflex/ROOT-5952/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-5952/CMakeLists.txt @@ -1,4 +1,6 @@ ROOTTEST_ADD_TEST(5952 - COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/classes.h --verbose --select=${CMAKE_CURRENT_SOURCE_DIR}/classes_selection.xml + COMMAND ${ROOT_genreflex_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/classes.h --verbose + --select=${CMAKE_CURRENT_SOURCE_DIR}/classes_selection.xml + --output=${CMAKE_CURRENT_BINARY_DIR}/classes_rflx.cxx ${WILLFAIL_ON_WIN32} OUTREF selLog.ref) diff --git a/roottest/root/meta/genreflex/ROOT-5952/Makefile b/roottest/root/meta/genreflex/ROOT-5952/Makefile deleted file mode 100644 index f88aaac46cf90..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-5952/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -CLEAN_TARGETS += *.log dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += selLog - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -selLog.log: classes.h - $(CMDECHO) genreflex classes.h --verbose -s classes_selection.xml >$@ 2>&1 - -selLog: selLog.log - $(TestDiff) diff --git a/roottest/root/meta/genreflex/ROOT-6640/.rootrc b/roottest/root/meta/genreflex/ROOT-6640/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-6640/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-6640/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-6640/CMakeLists.txt index 370f1d52e42a4..688019d7de28d 100644 --- a/roottest/root/meta/genreflex/ROOT-6640/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-6640/CMakeLists.txt @@ -1,5 +1,8 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT6440 ROOT6440.h SELECTION ROOT6440_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(ROOT6440 + ROOT6440.h + SELECTION ROOT6440_selection.xml + FIXTURES_SETUP root-meta-genreflex-6440-fixture) ROOTTEST_ADD_TEST(ROOT6440 MACRO runROOT6440.C - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-6440-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-6640/Makefile b/roottest/root/meta/genreflex/ROOT-6640/Makefile deleted file mode 100644 index 600268ccc3d18..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-6640/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *pcm *o *rflx.* dummy* - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += ROOT6440 - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -runROOT6440.C: libROOT6440_dictrflx.$(DllSuf) -ROOT6440: ROOT6440.log diff --git a/roottest/root/meta/genreflex/ROOT-6796/.rootrc b/roottest/root/meta/genreflex/ROOT-6796/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-6796/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/ROOT-6796/CMakeLists.txt b/roottest/root/meta/genreflex/ROOT-6796/CMakeLists.txt index 3b67b6a8f83b9..260b25069062e 100644 --- a/roottest/root/meta/genreflex/ROOT-6796/CMakeLists.txt +++ b/roottest/root/meta/genreflex/ROOT-6796/CMakeLists.txt @@ -1,8 +1,9 @@ -ROOTTEST_ADD_TESTDIRS() - -ROOTTEST_GENERATE_REFLEX_DICTIONARY(attributesFromTypedef attributesFromTypedef.h SELECTION attributesFromTypedef_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(attributesFromTypedef + attributesFromTypedef.h + SELECTION attributesFromTypedef_selection.xml + FIXTURES_SETUP root-meta-genreflex-6796-fixture) ROOTTEST_ADD_TEST(attributesFromTypedef MACRO execattributesFromTypedef.C OUTREF execattributesFromTypedef.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-6796-fixture) diff --git a/roottest/root/meta/genreflex/ROOT-6796/Makefile b/roottest/root/meta/genreflex/ROOT-6796/Makefile deleted file mode 100644 index 6e0ccf9a8ef35..0000000000000 --- a/roottest/root/meta/genreflex/ROOT-6796/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *pcm *o *rflx.* dummy* *rootmap - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += --rootmap al.rootmap --rootmap-lib libattributesFromTypedef_dictrflx.$(DllSuf) - -execattributesFromTypedef.log: libattributesFromTypedef_dictrflx.$(DllSuf) - diff --git a/roottest/root/meta/genreflex/TClass/.rootrc b/roottest/root/meta/genreflex/TClass/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/TClass/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/TClass/CMakeLists.txt b/roottest/root/meta/genreflex/TClass/CMakeLists.txt index 0a0138f986cc0..97ef1bfbc44e9 100644 --- a/roottest/root/meta/genreflex/TClass/CMakeLists.txt +++ b/roottest/root/meta/genreflex/TClass/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(basic_allClasses basic_allClasses.h SELECTION basic_allClasses_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(basic_allClasses + basic_allClasses.h + SELECTION basic_allClasses_selection.xml + FIXTURES_SETUP root-meta-genreflex-TClass-fixture) ROOTTEST_ADD_TEST(execbasic MACRO execbasic.C OUTREF execbasic.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-TClass-fixture) diff --git a/roottest/root/meta/genreflex/TClass/Makefile b/roottest/root/meta/genreflex/TClass/Makefile deleted file mode 100644 index 5bc15f6d997d2..0000000000000 --- a/roottest/root/meta/genreflex/TClass/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -CLEAN_TARGETS += *.log *.so *.d *pcm *rflx* dummy*.C -TEST_TARGETS += execbasic - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Basic test ------------------------------------------------------------------- - -execbasic.log: libbasic_allClasses_dictrflx.$(DllSuf) - -# End of Basic test ------------------------------------------------------------ diff --git a/roottest/root/meta/genreflex/TClass/basic b/roottest/root/meta/genreflex/TClass/basic deleted file mode 100644 index c644e28b0db9c..0000000000000 --- a/roottest/root/meta/genreflex/TClass/basic +++ /dev/null @@ -1,133 +0,0 @@ - -Processing execbasic.C... -*** Stress TClass *** -Loading library basic.so - ---- Class class1 -Class category: foreign. - * Version: 123 - o Methods (9): - * class1 class1::class1() - * class1 class1::class1(int i, int j) - * void class1::~class1() - * int class1::getI() - * void class1::setI(int i) - * int class1::getJ() - * void class1::setJ(int i) - * class1 class1::class1(const class1&) - * class1& class1::operator=(const class1&) - o Members (2): - * int m_i [ isBasic ] - * int m_j [ isBasic isTransient ] ---- End Class class1 - ---- Class class2 -Class category: foreign. - * Version: 567 - o Methods (9): - * class2 class2::class2(int i, int j) - * class2 class2::class2() - * void class2::~class2() - * int class2::getI() - * void class2::setI(int i) - * int class2::getJ() - * void class2::setJ(int i) - * class2 class2::class2(const class2&) - * class2& class2::operator=(const class2&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * map m_map1 ---- End Class class2 - ---- Class class3 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (9): - * class3 class3::class3(int i, int j) - * class3 class3::class3() - * void class3::~class3() - * int class3::getI() - * void class3::setI(int i) - * int class3::getJ() - * void class3::setJ(int i) - * class3 class3::class3(const class3&) - * class3& class3::operator=(const class3&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * class3_1 m_class3_1_obj ---- End Class class3 - ---- Class class3_1 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (7): - * class3_1 class3_1::class3_1(int i) - * class3_1 class3_1::class3_1() - * void class3_1::~class3_1() - * int class3_1::getI() - * void class3_1::setI(int i) - * class3_1 class3_1::class3_1(const class3_1&) - * class3_1& class3_1::operator=(const class3_1&) - o Members (2): - * int m_i [ isBasic ] - * class3_2 m_class3_2_obj ---- End Class class3_1 - ---- Class class3_2 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (7): - * class3_2 class3_2::class3_2(int i) - * class3_2 class3_2::class3_2() - * void class3_2::~class3_2() - * int class3_2::getI() - * void class3_2::setI(int i) - * class3_2 class3_2::class3_2(const class3_2&) - * class3_2& class3_2::operator=(const class3_2&) - o Members (1): - * int m_i [ isBasic ] ---- End Class class3_2 - ---- Class class4 -Class category: foreign. - - id: 000-000-000-001 - - myProp: 1081983 - * Version: 1977 - o Methods (10): - * class4 class4::class4(int i, int j) - * class4 class4::class4() - * void class4::~class4() - * int class4::getI() - * void class4::setI(int i) - * int class4::getJ() - * void class4::setJ(int i) - * double* class4::getArr() - * class4 class4::class4(const class4&) - * class4& class4::operator=(const class4&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic isTransient ] - * double m_dArray [ isBasic ] ---- End Class class4 - ---- Class class5 -Class category: foreign. - * Version: -1 - o Methods (9): - * class5 class5::class5(int i, int j) - * class5 class5::class5() - * void class5::~class5() - * int class5::getI() - * void class5::setI(int i) - * int class5::getJ() - * void class5::setJ(int i) - * class5 class5::class5(const class5&) - * class5& class5::operator=(const class5&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * class3* m_class3_ptr [ isPtr ] ---- End Class class5 -(int) 0 diff --git a/roottest/root/meta/genreflex/TClass/basic.ref b/roottest/root/meta/genreflex/TClass/basic.ref deleted file mode 100644 index c644e28b0db9c..0000000000000 --- a/roottest/root/meta/genreflex/TClass/basic.ref +++ /dev/null @@ -1,133 +0,0 @@ - -Processing execbasic.C... -*** Stress TClass *** -Loading library basic.so - ---- Class class1 -Class category: foreign. - * Version: 123 - o Methods (9): - * class1 class1::class1() - * class1 class1::class1(int i, int j) - * void class1::~class1() - * int class1::getI() - * void class1::setI(int i) - * int class1::getJ() - * void class1::setJ(int i) - * class1 class1::class1(const class1&) - * class1& class1::operator=(const class1&) - o Members (2): - * int m_i [ isBasic ] - * int m_j [ isBasic isTransient ] ---- End Class class1 - ---- Class class2 -Class category: foreign. - * Version: 567 - o Methods (9): - * class2 class2::class2(int i, int j) - * class2 class2::class2() - * void class2::~class2() - * int class2::getI() - * void class2::setI(int i) - * int class2::getJ() - * void class2::setJ(int i) - * class2 class2::class2(const class2&) - * class2& class2::operator=(const class2&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * map m_map1 ---- End Class class2 - ---- Class class3 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (9): - * class3 class3::class3(int i, int j) - * class3 class3::class3() - * void class3::~class3() - * int class3::getI() - * void class3::setI(int i) - * int class3::getJ() - * void class3::setJ(int i) - * class3 class3::class3(const class3&) - * class3& class3::operator=(const class3&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * class3_1 m_class3_1_obj ---- End Class class3 - ---- Class class3_1 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (7): - * class3_1 class3_1::class3_1(int i) - * class3_1 class3_1::class3_1() - * void class3_1::~class3_1() - * int class3_1::getI() - * void class3_1::setI(int i) - * class3_1 class3_1::class3_1(const class3_1&) - * class3_1& class3_1::operator=(const class3_1&) - o Members (2): - * int m_i [ isBasic ] - * class3_2 m_class3_2_obj ---- End Class class3_1 - ---- Class class3_2 -Class category: foreign. - * Version: 1 --> Class available to the interpreter but not Selected! - o Methods (7): - * class3_2 class3_2::class3_2(int i) - * class3_2 class3_2::class3_2() - * void class3_2::~class3_2() - * int class3_2::getI() - * void class3_2::setI(int i) - * class3_2 class3_2::class3_2(const class3_2&) - * class3_2& class3_2::operator=(const class3_2&) - o Members (1): - * int m_i [ isBasic ] ---- End Class class3_2 - ---- Class class4 -Class category: foreign. - - id: 000-000-000-001 - - myProp: 1081983 - * Version: 1977 - o Methods (10): - * class4 class4::class4(int i, int j) - * class4 class4::class4() - * void class4::~class4() - * int class4::getI() - * void class4::setI(int i) - * int class4::getJ() - * void class4::setJ(int i) - * double* class4::getArr() - * class4 class4::class4(const class4&) - * class4& class4::operator=(const class4&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic isTransient ] - * double m_dArray [ isBasic ] ---- End Class class4 - ---- Class class5 -Class category: foreign. - * Version: -1 - o Methods (9): - * class5 class5::class5(int i, int j) - * class5 class5::class5() - * void class5::~class5() - * int class5::getI() - * void class5::setI(int i) - * int class5::getJ() - * void class5::setJ(int i) - * class5 class5::class5(const class5&) - * class5& class5::operator=(const class5&) - o Members (3): - * int m_i [ isBasic ] - * int m_j [ isBasic ] - * class3* m_class3_ptr [ isPtr ] ---- End Class class5 -(int) 0 diff --git a/roottest/root/meta/genreflex/XMLParsing/.rootrc b/roottest/root/meta/genreflex/XMLParsing/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/XMLParsing/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/XMLParsing/Makefile b/roottest/root/meta/genreflex/XMLParsing/Makefile deleted file mode 100644 index 68ca2b90dcdb1..0000000000000 --- a/roottest/root/meta/genreflex/XMLParsing/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog dicts/* - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += mytest - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -XMLFILES := $(wildcard experimentsSelectionXMLs/*.xml) -XMLLOGFILES := $(addprefix genreflex_,$(notdir $(patsubst %.xml,%.log,$(XMLFILES)))) -XMLSUCCESS := $(patsubst %.log,%.success,$(XMLLOGFILES)) -XMLTARGETS := $(patsubst %.log,%,$(XMLLOGFILES)) - -TEST_TARGETS += $(XMLTARGETS) - -include $(ROOTTEST_HOME)/scripts/Rules.mk - -dicts/.log: - $(CMDECHO) mkdir -p dicts; touch dicts/.log - -$(XMLLOGFILES): genreflex_%.log: experimentsSelectionXMLs/%.xml dicts/.log - $(CMDECHO) genreflex emptyHeader.h --silent -o dicts/$*.cxx -s experimentsSelectionXMLs/$*.xml >$@ 2>&1 - -$(XMLSUCCESS): %.success: %.log %.ref - $(SuccessTestDiff) && touch $@ - -$(XMLTARGETS): genreflex_%: genreflex_%.success - diff --git a/roottest/root/meta/genreflex/headersDuplicateKeys/.rootrc b/roottest/root/meta/genreflex/headersDuplicateKeys/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/headersDuplicateKeys/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/headersDuplicateKeys/CMakeLists.txt b/roottest/root/meta/genreflex/headersDuplicateKeys/CMakeLists.txt index ce1346f4230ed..f9a927f069710 100644 --- a/roottest/root/meta/genreflex/headersDuplicateKeys/CMakeLists.txt +++ b/roottest/root/meta/genreflex/headersDuplicateKeys/CMakeLists.txt @@ -1,14 +1,21 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(a1 a1.h SELECTION a1_selection.xml) -set(dependency "${dependency};${GENERATE_REFLEX_TEST}") +ROOTTEST_GENERATE_REFLEX_DICTIONARY(a1 + a1.h + SELECTION a1_selection.xml + FIXTURES_SETUP root-meta-genreflex-headersDuplicateKeys-a1-fixture) -ROOTTEST_GENERATE_REFLEX_DICTIONARY(a2 a2.h SELECTION a2_selection.xml) -set(dependency "${dependency};${GENERATE_REFLEX_TEST}") - -ROOTTEST_GENERATE_REFLEX_DICTIONARY(a3 a3.h SELECTION a3_selection.xml) -set(dependency "${dependency};${GENERATE_REFLEX_TEST}") +ROOTTEST_GENERATE_REFLEX_DICTIONARY(a2 + a2.h + SELECTION a2_selection.xml + FIXTURES_SETUP root-meta-genreflex-headersDuplicateKeys-a2-fixture) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(a3 + a3.h + SELECTION a3_selection.xml + FIXTURES_SETUP root-meta-genreflex-headersDuplicateKeys-a3-fixture) ROOTTEST_ADD_TEST(headersDuplicateKeys MACRO execduplicateHeaders.C OUTREF execduplicateHeaders.ref - DEPENDS ${dependency}) + FIXTURES_REQUIRED root-meta-genreflex-headersDuplicateKeys-a1-fixture + root-meta-genreflex-headersDuplicateKeys-a2-fixture + root-meta-genreflex-headersDuplicateKeys-a3-fixture) diff --git a/roottest/root/meta/genreflex/iorules/.rootrc b/roottest/root/meta/genreflex/iorules/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/iorules/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/iorules/CMakeLists.txt b/roottest/root/meta/genreflex/iorules/CMakeLists.txt index 7a49cdd8436ed..c05f69eeafba1 100644 --- a/roottest/root/meta/genreflex/iorules/CMakeLists.txt +++ b/roottest/root/meta/genreflex/iorules/CMakeLists.txt @@ -1,8 +1,9 @@ -ROOTTEST_ADD_TESTDIRS() - -ROOTTEST_GENERATE_REFLEX_DICTIONARY(DataModelV2genreflex DataModelV2genreflex.h SELECTION DataModelV2genreflex_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(DataModelV2genreflex + DataModelV2genreflex.h + SELECTION DataModelV2genreflex_selection.xml + FIXTURES_SETUP root-meta-genreflex-iorules-DataModelV2genreflex-fixture) ROOTTEST_ADD_TEST(DataModelV2genreflex MACRO execSimpleIoRule.C OUTREF execSimpleIoRule.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-iorules-DataModelV2genreflex-fixture) diff --git a/roottest/root/meta/genreflex/iorules/Makefile b/roottest/root/meta/genreflex/iorules/Makefile deleted file mode 100644 index e4a6f5f2fd664..0000000000000 --- a/roottest/root/meta/genreflex/iorules/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *pcm *o *rflx.* dummy* - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - - -execSimpleIoRule.log: libDataModelV2genreflex_dictrflx.$(DllSuf) - diff --git a/roottest/root/meta/genreflex/noStreamer_noInputOperator/.rootrc b/roottest/root/meta/genreflex/noStreamer_noInputOperator/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/noStreamer_noInputOperator/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/noStreamer_noInputOperator/CMakeLists.txt b/roottest/root/meta/genreflex/noStreamer_noInputOperator/CMakeLists.txt index 695b76076a192..d11acd229073d 100644 --- a/roottest/root/meta/genreflex/noStreamer_noInputOperator/CMakeLists.txt +++ b/roottest/root/meta/genreflex/noStreamer_noInputOperator/CMakeLists.txt @@ -2,49 +2,61 @@ # (>260 characters) when run in the CI (Jenkins) if(NOT MSVC OR NOT DEFINED ENV{JENKINS_HOME} OR win_broken_tests) -ROOTTEST_ADD_TESTDIRS() - # ------------------------------------------------------------------------------ # noStreamer tests # invalid noStreamer attribute ROOTTEST_ADD_TEST(invalidNoStreamerGenreflex - COMMAND ${ROOT_genreflex_CMD} foo.h -o ${CMAKE_CURRENT_BINARY_DIR}/invalidNoStreamer_rflx.cpp --selection_file=invalidNoStreamer_selection.xml + COMMAND ${ROOT_genreflex_CMD} foo.h -o ${CMAKE_CURRENT_BINARY_DIR}/invalidNoStreamer_rflx.cpp + --selection_file=invalidNoStreamer_selection.xml WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR} OUTREF invalidNoStreamerGenreflex.ref PASSRC 1) # custom streamer -ROOTTEST_GENERATE_REFLEX_DICTIONARY(customStreamer_rflx foo_custom_streamer.h SELECTION noStreamer_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(customStreamer_rflx + foo_custom_streamer.h + SELECTION noStreamer_selection.xml + FIXTURES_SETUP root-meta-genreflex-noStreamer-customStreamer-fixture) ROOTTEST_ADD_TEST(customStreamer MACRO customStreamer.C OUTREF customStreamer.ref - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-noStreamer-customStreamer-fixture) # generated streamer -ROOTTEST_GENERATE_REFLEX_DICTIONARY(noStreamer_false_rflx foo.h SELECTION noStreamer_false_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(noStreamer_false_rflx + foo.h + SELECTION noStreamer_false_selection.xml + FIXTURES_SETUP root-meta-genreflex-noStreamer-false-fixture) file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/noStreamer_false_rflx.cxx" NOSTREAMER_FALSE_RFLX) ROOTTEST_ADD_TEST(noStreamerFalseDict COMMAND ${grep_cmd} "void Foo::Streamer(TBuffer &R__b)" ${NOSTREAMER_FALSE_RFLX} WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${GENERATE_REFLEX_TEST}) + FIXTURES_REQUIRED root-meta-genreflex-noStreamer-false-fixture) # ------------------------------------------------------------------------------ # noInputOperator tests # invalid noInputOperator attribute ROOTTEST_ADD_TEST(invalidNoInpuOperatorGenreflex - COMMAND ${ROOT_genreflex_CMD} foo.h -o ${CMAKE_CURRENT_BINARY_DIR}/invalidNoInputOperator_rflx.cpp --selection_file=invalidNoInputOperator_selection.xml + COMMAND ${ROOT_genreflex_CMD} foo.h -o ${CMAKE_CURRENT_BINARY_DIR}/invalidNoInputOperator_rflx.cpp + --selection_file=invalidNoInputOperator_selection.xml WORKING_DIR ${CMAKE_CURRENT_SOURCE_DIR} OUTREF invalidNoInputOperatorGenreflex.ref PASSRC 1) # noInputOperator = true -ROOTTEST_GENERATE_REFLEX_DICTIONARY(noInputOperator_rflx foo_custom_input_operator.h SELECTION noInputOperator_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(noInputOperator_rflx + foo_custom_input_operator.h + SELECTION noInputOperator_selection.xml + NO_ROOTMAP) # noInputOperator = false -ROOTTEST_GENERATE_REFLEX_DICTIONARY(noInputOperator_false_rflx foo_custom_input_operator.h SELECTION noInputOperator_false_selection.xml NO_ROOTMAP) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(noInputOperator_false_rflx + foo_custom_input_operator.h + SELECTION noInputOperator_false_selection.xml + NO_ROOTMAP) endif() diff --git a/roottest/root/meta/genreflex/noStreamer_noInputOperator/Makefile b/roottest/root/meta/genreflex/noStreamer_noInputOperator/Makefile deleted file mode 100644 index 4917aba474f3d..0000000000000 --- a/roottest/root/meta/genreflex/noStreamer_noInputOperator/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CLEAN_TARGETS += *.log xr.* dummy* *pcm *o *rflx.* $(ALL_LIBRARIES) -TEST_TARGETS += noStreamer - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Create the dict source -# execdummy.log: foo_rflx.cpp diff --git a/roottest/root/meta/genreflex/rootPCMs/.rootrc b/roottest/root/meta/genreflex/rootPCMs/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/genreflex/rootPCMs/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/genreflex/rootPCMs/CMakeLists.txt b/roottest/root/meta/genreflex/rootPCMs/CMakeLists.txt index db47b6806d803..0aa595d07ab51 100644 --- a/roottest/root/meta/genreflex/rootPCMs/CMakeLists.txt +++ b/roottest/root/meta/genreflex/rootPCMs/CMakeLists.txt @@ -1 +1,4 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classesFindBackPCMNames_rflx classesFindBackPCMNames.h SELECTION classesFindBackPCMNames_selection.xml OPTIONS -m pcm1.pcm -m pcm2.pcm -m pcm3.pcm -m pcm4.pcm -m pcm5.pcm) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classesFindBackPCMNames_rflx + classesFindBackPCMNames.h + SELECTION classesFindBackPCMNames_selection.xml + OPTIONS -m pcm1.pcm -m pcm2.pcm -m pcm3.pcm -m pcm4.pcm -m pcm5.pcm) diff --git a/roottest/root/meta/genreflex/rootPCMs/Makefile b/roottest/root/meta/genreflex/rootPCMs/Makefile deleted file mode 100644 index 37addae007821..0000000000000 --- a/roottest/root/meta/genreflex/rootPCMs/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -CLEAN_TARGETS += *.log *.so *.d *pcm *rflx* dummy*.C -TEST_TARGETS += execFindBackPCMNames - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -GENREFLEXCXXFLAGS += -m pcm1.pcm -m pcm2.pcm -m pcm3.pcm -m pcm4.pcm -m pcm5.pcm - -execFindBackPCMNames.log: libclassesFindBackPCMNames_dictrflx.$(DllSuf) diff --git a/roottest/root/meta/iotypeioname/.rootrc b/roottest/root/meta/iotypeioname/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/iotypeioname/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/iotypeioname/CMakeLists.txt b/roottest/root/meta/iotypeioname/CMakeLists.txt index 9f867f9d8b356..bad9194dabd6f 100644 --- a/roottest/root/meta/iotypeioname/CMakeLists.txt +++ b/roottest/root/meta/iotypeioname/CMakeLists.txt @@ -1,12 +1,10 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes classes.h SELECTION classes_selection.xml) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(classes + classes.h + SELECTION classes_selection.xml + FIXTURES_SETUP root-meta-iotypeioname-dict-fixture) -#---Copy from source to binary some of the files -configure_file(example.xml . COPYONLY) - -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${GENERATE_REFLEX_TEST} - EXCLUDE execionameiotype) - -ROOTTEST_ADD_TEST(execionameiotype +ROOTTEST_ADD_TEST(ionameiotype MACRO execionameiotype.C - DEPENDS ${GENERATE_REFLEX_TEST} - OUTREF execionameiotype.ref) + COPY_TO_BUILDDIR example.xml + OUTREF execionameiotype.ref + FIXTURES_REQUIRED root-meta-iotypeioname-dict-fixture) diff --git a/roottest/root/meta/loadAllLibs/.rootrc b/roottest/root/meta/loadAllLibs/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/loadAllLibs/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/loadAllLibs/Makefile b/roottest/root/meta/loadAllLibs/Makefile deleted file mode 100644 index adf94bd2ac0c2..0000000000000 --- a/roottest/root/meta/loadAllLibs/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *rflx* -# TEST_TARGETS += cleanloadAllLibs -#execloadAllLibsAZ execloadAllLibsZA - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# runloadAllLibs: libtest_dictrflx.$(DllSuf) -# -# cleanloadAllLibs.log: runloadAllLibs -# $(CMDECHO) cat loadAllLibs.log|grep -v Wouter|grep -v NIKHEF|grep -v sourceforge -# -# cleanloadAllLibs: cleanloadAllLibs.log -# $(TestDiff) -# -# #execloadAllLibsAZ.log: libdummy_dictrflx.$(DllSuf) -# -# #cleanloadAllLibsAZ.log: execloadAllLibsAZ.log -# # $(CMDECHO) cat execloadAllLibsAZ.log|grep -v Wouter|grep -v NIKHEF|grep -v sourceforge -# -# #cleanloadAllLibsAZ: cleanloadAllLibsAZ.log -# # $(TestDiff) -# -# #cleanloadAllLibsZA.log: execloadAllLibsZA.log -# # $(CMDECHO) cat execloadAllLibsZA.log|grep -v Wouter|grep -v NIKHEF|grep -v sourceforge -# -# #cleanloadAllLibsZA: cleanloadAllLibsZA.log -# # $(TestDiff) diff --git a/roottest/root/meta/loadAllLibs/execLoadAllLibs.ref b/roottest/root/meta/loadAllLibs/execLoadAllLibs.ref deleted file mode 100644 index 78825582251e6..0000000000000 --- a/roottest/root/meta/loadAllLibs/execLoadAllLibs.ref +++ /dev/null @@ -1,3 +0,0 @@ - -Processing execLoadAllLibs.C... -Filtering out RooFit banner diff --git a/roottest/root/meta/loadAllLibs/execLoadAllLibsAZ.ref b/roottest/root/meta/loadAllLibs/execLoadAllLibsAZ.ref deleted file mode 100644 index f52e7b56a38ba..0000000000000 --- a/roottest/root/meta/loadAllLibs/execLoadAllLibsAZ.ref +++ /dev/null @@ -1,3 +0,0 @@ - -Processing execLoadAllLibsAZ.C... -Filtering out RooFit banner diff --git a/roottest/root/meta/loadAllLibs/execLoadAllLibsZA.ref b/roottest/root/meta/loadAllLibs/execLoadAllLibsZA.ref deleted file mode 100644 index 78f71694509c5..0000000000000 --- a/roottest/root/meta/loadAllLibs/execLoadAllLibsZA.ref +++ /dev/null @@ -1,3 +0,0 @@ - -Processing execLoadAllLibsZA.C... -Filtering out RooFit banner diff --git a/roottest/root/meta/method/.rootrc b/roottest/root/meta/method/.rootrc deleted file mode 100644 index 3ba11afc17620..0000000000000 --- a/roottest/root/meta/method/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/method/CMakeLists.txt b/roottest/root/meta/method/CMakeLists.txt index 05f396b409ae3..2c4ff16423ad5 100644 --- a/roottest/root/meta/method/CMakeLists.txt +++ b/roottest/root/meta/method/CMakeLists.txt @@ -1,2 +1,29 @@ -ROOTTEST_ADD_AUTOMACROS() +ROOTTEST_ADD_TEST(exactMatch + MACRO runexactMatch.C + OUTREF exactMatch.ref) + +ROOTTEST_ADD_TEST(ConstMethod + MACRO execConstMethod.cxx+ + OUTREF execConstMethod.ref) + +ROOTTEST_ADD_TEST(Constructor + MACRO execConstructor.cxx+ + OUTREF execConstructor.ref) + +ROOTTEST_ADD_TEST(CreateString + MACRO execCreateString.C + OUTREF execCreateString.ref) + +ROOTTEST_ADD_TEST(Inlined + MACRO execInlined.cxx+ + OUTREF execInlined.ref) + +ROOTTEST_ADD_TEST(ReuseMethod + MACRO execReuseMethod.cxx + OUTREF execReuseMethod.ref) + +ROOTTEST_ADD_TEST(Template + MACRO execTemplate.C + OUTREF execTemplate.ref) + ROOTTEST_ADD_TESTDIRS() diff --git a/roottest/root/meta/method/Makefile b/roottest/root/meta/method/Makefile deleted file mode 100644 index 9eb8a89e31e74..0000000000000 --- a/roottest/root/meta/method/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += exactMatch - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - - -exactMatch: exactMatch.log - $(TestDiff) diff --git a/roottest/root/meta/method/offset/.rootrc b/roottest/root/meta/method/offset/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/method/offset/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/method/offset/Makefile b/roottest/root/meta/method/offset/Makefile deleted file mode 100644 index 4b74bcb8e50b8..0000000000000 --- a/roottest/root/meta/method/offset/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += mytest - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - - diff --git a/roottest/root/meta/naming/.rootrc b/roottest/root/meta/naming/.rootrc deleted file mode 100644 index 84c31bb3db13d..0000000000000 --- a/roottest/root/meta/naming/.rootrc +++ /dev/null @@ -1,2 +0,0 @@ -Rint.History: .root_hist -ACLiC.LinkLibs: 1 diff --git a/roottest/root/meta/naming/CMakeLists.txt b/roottest/root/meta/naming/CMakeLists.txt index b1045cd9fcb50..f6f94a023ddb0 100644 --- a/roottest/root/meta/naming/CMakeLists.txt +++ b/roottest/root/meta/naming/CMakeLists.txt @@ -1,8 +1,30 @@ -ROOTTEST_ADD_AUTOMACROS(DEPENDS namingMatches.cxx - EXCLUDE execCheckNaming) - ROOTTEST_ADD_TEST(execCheckNaming MACRO execCheckNaming.C OUTREF execCheckNaming${ref_suffix}) +ROOTTEST_ADD_TEST(ClassEditNormalize + MACRO execClassEditNormalize.C + OUTREF execClassEditNormalize.ref) + +ROOTTEST_COMPILE_MACRO(namingMatches.cxx + FIXTURES_SETUP root-meta-naming-namingMatches-fixture) + +ROOTTEST_ADD_TEST(NamingMatches + MACRO execNamingMatches.cxx+ + OUTREF execNamingMatches.ref + FIXTURES_REQUIRED root-meta-naming-namingMatches-fixture) + +ROOTTEST_ADD_TEST(NamingMatchesNoHeader + MACRO execNamingMatchesNoHeader.cxx+ + OUTREF execNamingMatchesNoHeader.ref + FIXTURES_REQUIRED root-meta-naming-namingMatches-fixture) + +ROOTTEST_ADD_TEST(ParamPack + MACRO execParamPack.C + OUTREF execParamPack.ref) + +ROOTTEST_ADD_TEST(ResolveTypedef + MACRO execResolveTypedef.cxx + OUTREF execResolveTypedef.ref) + ROOTTEST_ADD_TESTDIRS() diff --git a/roottest/root/meta/naming/Makefile b/roottest/root/meta/naming/Makefile deleted file mode 100644 index e42156f50e2a5..0000000000000 --- a/roottest/root/meta/naming/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog *rflx* - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += execCheckNaming - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -execCheckNaming.log: execCheckNaming.C - -execNamingMatches.clog: namingMatches_cxx.$(DllSuf) -execNamingMatchesNoHeader.clog: namingMatches_cxx.$(DllSuf) diff --git a/roottest/root/meta/naming/issue-18363/CMakeLists.txt b/roottest/root/meta/naming/issue-18363/CMakeLists.txt index e95fdbc1dcb2a..32c526cbd85ab 100644 --- a/roottest/root/meta/naming/issue-18363/CMakeLists.txt +++ b/roottest/root/meta/naming/issue-18363/CMakeLists.txt @@ -1,6 +1,9 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(templateDict Objects.h SELECTION selection.xml FIXTURES_SETUP template_lib) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(templateDict + Objects.h + SELECTION selection.xml + FIXTURES_SETUP root-meta-naming-18363-templateDict-fixture) ROOTTEST_ADD_TEST(templateName MACRO templateNameTest.C OUTREF templateNameTest.ref - FIXTURES_REQUIRED template_lib) + FIXTURES_REQUIRED root-meta-naming-18363-templateDict-fixture) diff --git a/roottest/root/meta/race-12552/CMakeLists.txt b/roottest/root/meta/race-12552/CMakeLists.txt index 2ac9fbd8ca94d..ff9e145f42377 100644 --- a/roottest/root/meta/race-12552/CMakeLists.txt +++ b/roottest/root/meta/race-12552/CMakeLists.txt @@ -1,8 +1,13 @@ if(NOT MSVC) - ROOTTEST_GENERATE_REFLEX_DICTIONARY(libUser User.hpp SELECTION User.xml LIBNAME libUser NO_ROOTMAP) - set(depends ${GENERATE_REFLEX_TEST}) + ROOTTEST_GENERATE_REFLEX_DICTIONARY(libUser + User.hpp + SELECTION User.xml + LIBNAME libUser + NO_ROOTMAP + FIXTURES_SETUP root-meta-race-12552-fixture) - ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) + ROOTTEST_ADD_TEST(dlopenrace + MACRO exec_dlopenrace.C + FIXTURES_REQUIRED root-meta-race-12552-fixture) endif() -ROOTTEST_ADD_TESTDIRS() diff --git a/roottest/root/meta/rootmap/.rootrc b/roottest/root/meta/rootmap/.rootrc deleted file mode 100644 index 6ebe75fd4ec5a..0000000000000 --- a/roottest/root/meta/rootmap/.rootrc +++ /dev/null @@ -1 +0,0 @@ -Rint.History: .root_hist diff --git a/roottest/root/meta/rootmap/CMakeLists.txt b/roottest/root/meta/rootmap/CMakeLists.txt index 58f48d013db11..84b2abdc2a945 100644 --- a/roottest/root/meta/rootmap/CMakeLists.txt +++ b/roottest/root/meta/rootmap/CMakeLists.txt @@ -1,6 +1,10 @@ +ROOTTEST_COMPILE_MACRO(spaces.C + FIXTURES_SETUP root-meta-rootmap-spaces-fixture) + ROOTTEST_ADD_TEST(runspaces MACRO runspaces.C + COPY_TO_BUILDDIR spaces.rootmap OUTREF spaces.ref - DEPENDS spaces.C) + FIXTURES_REQUIRED root-meta-rootmap-spaces-fixture) ROOTTEST_ADD_TESTDIRS() diff --git a/roottest/root/meta/rootmap/Makefile b/roottest/root/meta/rootmap/Makefile deleted file mode 100644 index 6581229be0d9a..0000000000000 --- a/roottest/root/meta/rootmap/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += spaces - -# Search for Rules.mk in roottest/scripts -# Algorithm: Find the current working directory and remove everything after -# '*roottest/'. Append the path for Rules.mk from within roottest, which -# should be 'scripts/Rules.mk'. The roottest path is saved in the -# ROOTTEST_HOME variable for use by the SUBDIRECTORIES variable and is -# exported to eliminate the overhead of findding the path again during -# recursive calls of gmake. -# Since all makefiles should be under roottest or one of its -# subdirectories and all recursions of gmake are called by -# 'cd [DIR]; gmake ...' -# this algorithm should not fail in finding /roottest/ in the -# current working directory. -# Issues: This algorithm will fail if a makefile is called from outside the -# roottest folder, as in executing 'gmake -f ~/roottest/Makefile' from -# the home directory. - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk - - -# The name of this target should be changed according to the test being run. Any name changes -# should also be reflected in the TEST_TARGETS variable above. - -mytest: - $(CMDECHO) echo mytest > /dev/null - - -# Outputs a message if the FAIL variable is null - -testWithFailure: -ifeq ($(FAIL),) - $(WarnFailTest) -endif - - -# Remember that sometest.log can be made automatically from -# from runsometest.C -# This target attempts to create a log file (which should be the output of running the test), and -# compares its output with a prebuilt reference file. The reference file should be copied from -# the log files produced during what is considered a successful run of the test. The testWithDiff -# files should be renamed according to the test being run. -# By default the TestDiff variable is set to compare the .log and .ref files -# To run a diff and ignore whitespacing use $(TestDiffW) - -testWithDiff: testWithDiff.log testWithDiff.ref - $(TestDiff) - -spaces.log: spaces_C.$(DllSuf) runspaces.C - $(CMDECHO) $(CALLROOTEXE) -q -b -l runspaces.C 2>&1 | grep -v 'duplicate entry' > spaces.log - -spaces: spaces.log - $(TestDiff) diff --git a/roottest/root/meta/rootmap/duplicateWarning/CMakeLists.txt b/roottest/root/meta/rootmap/duplicateWarning/CMakeLists.txt index 89b9ab66deebd..65a6a3aa5d5a6 100644 --- a/roottest/root/meta/rootmap/duplicateWarning/CMakeLists.txt +++ b/roottest/root/meta/rootmap/duplicateWarning/CMakeLists.txt @@ -1,6 +1,4 @@ -configure_file(rfile1.rootmap . COPYONLY) -configure_file(rfile2.rootmap . COPYONLY) - ROOTTEST_ADD_TEST(myclassduplicated COMMAND ${ROOT_root_CMD} -b -q -l + COPY_TO_BUILDDIR rfile1.rootmap rfile2.rootmap PASSREGEX "Warning in : While processing ./rfile[12]\.rootmap, class myclassduplicated was found to be associated to libdup[12]\.so although it is already associated to libdup[12]\.so") diff --git a/roottest/root/meta/tclass/CMakeLists.txt b/roottest/root/meta/tclass/CMakeLists.txt index 1f6e760dd087b..386e0b35e3365 100644 --- a/roottest/root/meta/tclass/CMakeLists.txt +++ b/roottest/root/meta/tclass/CMakeLists.txt @@ -47,6 +47,7 @@ ROOTTEST_ADD_TEST(execState ROOTTEST_ADD_TEST(execSharedPtr MACRO execSharedPtr.C + OUTREF execSharedPtr.ref ERRREF execSharedPtr.eref) ROOTTEST_ADD_TEST(execMTInit @@ -137,8 +138,8 @@ endif() ROOTTEST_ADD_TEST(TClassAtTearDown MACRO execTClassAtTearDown.C - COPY_TO_BUILDDIR empty.root - OUTREF execTClassAtTearDown.ref) + COPY_TO_BUILDDIR empty.root + OUTREF execTClassAtTearDown.ref) ROOTTEST_GENERATE_EXECUTABLE(TFileTearDown TFileTearDown.cxx LIBRARIES Core RIO Hist Rint diff --git a/roottest/root/meta/tclass/Makefile b/roottest/root/meta/tclass/Makefile deleted file mode 100644 index e7384b424e738..0000000000000 --- a/roottest/root/meta/tclass/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# This is a template for all makefiles. - -#Set the list of files to be deleted by clean (Targets can also be specified).: -CLEAN_TARGETS += $(ALL_LIBRARIES) *.log *.clog myclass.root pairs.root tmpltd32.root tmpltd.root - -# Set the list of target to make while testing. By default, mytest is the -# only target added. If the name of the target is changed in the rules then -# the name should be changed accordingly in this list. - -TEST_TARGETS += classref tempParse pairs - -ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell git rev-parse --show-toplevel)/roottest/ - ifeq ($(strip $(ROOTTEST_HOME)),) - export ROOTTEST_HOME := $(shell expr $(CURDIR) : '\(.*/roottest/\)') - endif - ifeq ($(strip $(ROOTTEST_HOME)),) - $(error The head of roottest was not found. Set ROOTTEST_HOME) - endif -endif - -include $(ROOTTEST_HOME)/scripts/Rules.mk -include $(ROOTTEST_HOME)/scripts/Reflex.mk - -myclass.root: RunMyClass_C.$(DllSuf) - $(CMDECHO) $(CALLROOTEXE) -b -l -q RunMyClass.C+ > myclass_root.log - -classref.log: myclass.root - -classref: classref.log - $(TestDiff) - -usedBits.log: usedBits_C.$(DllSuf) - -usedBits: usedBits.log - $(TestDiff) - -tempParse.log: tempParse_C.$(DllSuf) - -tempParse: tempParse.log - $(TestDiff) - -pairs: pairs.clog - $(TestDiff) - -execProperties.success: EXTRA_DIFFOPTS += -w - -execInterpClassNew.log: classlib_cxx.$(DllSuf) - -execReadTmplt.clog: execTmpltD.success execTmpltD32.success - -execState.log: libState_cxx.$(DllSuf) - -execSimpleVector.log: libsimpleVector_dictrflx.$(DllSuf) - -execBrowseNonAccessibleType.log: execBrowseNonAccessibleType.C - -execDuplicate.log: libDuplicate_cxx.$(DllSuf) diff --git a/roottest/root/meta/tclass/execSharedPtr.ref b/roottest/root/meta/tclass/execSharedPtr.ref index 2c4fe507d8f35..be4babcc95a9f 100644 --- a/roottest/root/meta/tclass/execSharedPtr.ref +++ b/roottest/root/meta/tclass/execSharedPtr.ref @@ -1,6 +1,3 @@ Processing execSharedPtr.C... -Error in : The method get is called without an object. -Error in : Not enough arguments provided for operator= (0 instead of the minimum 1) -Error in : Not enough arguments provided for swap (0 instead of the minimum 1) (int) 0 diff --git a/roottest/root/meta/tclass/issue-6767/CMakeLists.txt b/roottest/root/meta/tclass/issue-6767/CMakeLists.txt index 87a2a90c92ae2..bf7afb6a0a25f 100644 --- a/roottest/root/meta/tclass/issue-6767/CMakeLists.txt +++ b/roottest/root/meta/tclass/issue-6767/CMakeLists.txt @@ -1,9 +1,10 @@ ROOTTEST_GENERATE_DICTIONARY(libRepro - repro.h - LINKDEF reproLinkDef.h - NO_ROOTMAP NO_CXXMODULE) + repro.h + LINKDEF reproLinkDef.h + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-tclass-6767-dict-fixture) ROOTTEST_ADD_TEST(reproducer MACRO repro.C OUTREF repro.ref - DEPENDS ${GENERATE_DICTIONARY_TEST}) + FIXTURES_REQUIRED root-meta-tclass-6767-dict-fixture) diff --git a/roottest/root/meta/tclass/issue-6840/CMakeLists.txt b/roottest/root/meta/tclass/issue-6840/CMakeLists.txt index 79e6a593f75b7..225047d42ab82 100644 --- a/roottest/root/meta/tclass/issue-6840/CMakeLists.txt +++ b/roottest/root/meta/tclass/issue-6840/CMakeLists.txt @@ -1,23 +1,27 @@ ROOTTEST_GENERATE_DICTIONARY(libPairs - pairtest.h - LINKDEF pairLinkDef.h - NO_ROOTMAP NO_CXXMODULE) - -ROOTTEST_ADD_TEST(pairCalculation - MACRO execPair.C - OUTREF execPair.ref - DEPENDS libPairs-build pairWriteFile) + pairtest.h + LINKDEF pairLinkDef.h + NO_ROOTMAP NO_CXXMODULE + FIXTURES_SETUP root-meta-tclass-6840-dict-fixture) ROOTTEST_ADD_TEST(pairWriteFile MACRO pairWrite.C OUTREF pairWrite.ref - DEPENDS libPairs-build) + FIXTURES_REQUIRED root-meta-tclass-6840-dict-fixture + FIXTURES_SETUP root-meta-tclass-6840-pairWriteFile-fixture) +ROOTTEST_ADD_TEST(pairCalculation + MACRO execPair.C + OUTREF execPair.ref + FIXTURES_REQUIRED root-meta-tclass-6840-pairWriteFile-fixture) -ROOTTEST_GENERATE_EXECUTABLE(emulatePairs emulatePairs.cpp LIBRARIES Core RIO Tree) +ROOTTEST_GENERATE_EXECUTABLE(emulatePairs + emulatePairs.cpp + LIBRARIES Core RIO Tree + FIXTURES_SETUP root-meta-tclass-6840-emulatePairs-fixture) ROOTTEST_ADD_TEST(emulatePairsTest EXEC ./emulatePairs OUTCNVCMD sed -e s:0x[0-9a-fA-F]*:pointervalue:g -e s:->[0-9a-fA-F]*:pointervalue:g OUTREF emulatePairs.ref - DEPENDS libPairs-build emulatePairs-build) + FIXTURES_REQUIRED root-meta-tclass-6840-dict-fixture root-meta-tclass-6840-emulatePairs-fixture) diff --git a/roottest/root/meta/tclass/tempParse.C b/roottest/root/meta/tclass/tempParse.C old mode 100755 new mode 100644 diff --git a/roottest/root/meta/tclass/usedBits.C b/roottest/root/meta/tclass/usedBits.C deleted file mode 100644 index 07f6148a083f2..0000000000000 --- a/roottest/root/meta/tclass/usedBits.C +++ /dev/null @@ -1,51 +0,0 @@ -#include "TObject.h" -#include "TClass.h" - -class top : public TObject { -public: - enum { k15 = BIT(15), k16 = BIT(16) }; - static UInt_t LoadUsedBits(TClass *cl) { cl->RegisterUsedBits(k15|k16); return 2; } - ClassDef(top,1); -}; - -class bottomOne : public top { -public: - enum { k17 = BIT(17) }; - static UInt_t LoadUsedBits(TClass *cl) { cl->RegisterUsedBits(k17); return 1; } - ClassDef(bottomOne,1); -}; - -class bottomTwo : public top { -public: - enum { k17 = BIT(16) }; - static UInt_t LoadUsedBits(TClass *cl) { cl->RegisterUsedBits(k17); return 1; } - ClassDef(bottomTwo,1); -}; - -void usedBits(int level = 2) { - - switch (level) { - case 0 : - top::LoadUsedBits( top::Class() ); - bottomOne::LoadUsedBits( bottomOne::Class() ); - bottomTwo::LoadUsedBits( bottomTwo::Class() ); - break; - case 1: - top::Class()->LoadUsedBits(); - bottomOne::Class()->LoadUsedBits(); - bottomTwo::Class()->LoadUsedBits(); - break; - case 2: - break; - } - - if (level<2) { - top::Class()->CheckUsedBits(); - bottomOne::Class()->CheckUsedBits(); - bottomTwo::Class()->CheckUsedBits(); // Should issue an error! - } else { - top::Class(); - bottomOne::Class(); - bottomTwo::Class(); - } -} diff --git a/roottest/root/meta/tclass/usedBits.ref b/roottest/root/meta/tclass/usedBits.ref deleted file mode 100644 index 4a9b71fad1d3d..0000000000000 --- a/roottest/root/meta/tclass/usedBits.ref +++ /dev/null @@ -1,4 +0,0 @@ - -Processing runusedBits.C... -Error in : "bottomTwo" registered some bits already used by its base class "top": - bit: 16 = 1 diff --git a/roottest/root/meta/tuple/CMakeLists.txt b/roottest/root/meta/tuple/CMakeLists.txt index 0bd56919896e3..9ec3a9bd99dc2 100644 --- a/roottest/root/meta/tuple/CMakeLists.txt +++ b/roottest/root/meta/tuple/CMakeLists.txt @@ -1,6 +1,11 @@ -ROOTTEST_GENERATE_REFLEX_DICTIONARY(libConfigType ConfigType.hpp SELECTION ConfigType_selection.xml LIBNAME libConfigType NO_ROOTMAP) -set(depends ${GENERATE_REFLEX_TEST}) +ROOTTEST_GENERATE_REFLEX_DICTIONARY(libConfigType + ConfigType.hpp + SELECTION ConfigType_selection.xml + LIBNAME libConfigType + NO_ROOTMAP + FIXTURES_SETUP root-meta-tuple-dict-fixture) -ROOTTEST_ADD_AUTOMACROS(DEPENDS ${depends}) -ROOTTEST_ADD_TESTDIRS() +ROOTTEST_ADD_TEST(configtype_unload + MACRO exec_configtype_unload.C + FIXTURES_REQUIRED root-meta-tuple-dict-fixture)