diff --git a/Utilities/ReleaseScripts/test/BuildFile.xml b/Utilities/ReleaseScripts/test/BuildFile.xml index 3107c6ccb9ac9..52984d549a8bf 100644 --- a/Utilities/ReleaseScripts/test/BuildFile.xml +++ b/Utilities/ReleaseScripts/test/BuildFile.xml @@ -1,6 +1,12 @@ + + + + + + diff --git a/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp new file mode 100644 index 0000000000000..59f77053aefc6 --- /dev/null +++ b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.cpp @@ -0,0 +1,26 @@ +#include +#include +#include + +class ScheduleItems { +public: + ScheduleItems() {} + void initMisc(); +}; + +void ScheduleItems::initMisc() { std::cout << "ScheduleItems::initMisc() called" << std::endl; } + +void my_setenv(const char* env, const char* value) { + setenv(env, value, 1); + std::cout << "setenv() called" << std::endl; + std::cout << env << "=" << std::getenv(env) << std::endl; +} + +int main() { + my_setenv("FOO", "1"); + ScheduleItems obj; + obj.initMisc(); + my_setenv("FOO", "2"); + my_setenv("FOO", "3"); + return 0; +} diff --git a/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh new file mode 100755 index 0000000000000..061324ff032b0 --- /dev/null +++ b/Utilities/ReleaseScripts/test/gdb/test-cmsTraceFunction-setenv.sh @@ -0,0 +1,9 @@ +#!/bin/bash -ex +g++ -o test-cmsTraceFunction-setenv $(dirname $0)/test-cmsTraceFunction-setenv.cpp +cmsTraceFunction --startAfterFunction ScheduleItems::initMisc setenv ./test-cmsTraceFunction-setenv 2>&1 | grep setenv > setenv.log +rm -f test-cmsTraceFunction-setenv +setenv_count=$(grep '^setenv() called' setenv.log | wc -l) +break_setenv=$(grep 'Breakpoint .* in setenv ()' setenv.log | wc -l) +if [ ${setenv_count} != 3 ] || [ ${break_setenv} != 2 ] ; then + exit 1 +fi diff --git a/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh b/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh new file mode 100755 index 0000000000000..eefff31e722bd --- /dev/null +++ b/Utilities/ReleaseScripts/test/gdb/test-gdb-python.sh @@ -0,0 +1,10 @@ +#!/bin/bash -ex +gdb_python=$(gdb -q -ex 'python exec("import sys;print(sys.executable)")' -ex quit) +cmssw_python=$(scram tool tag python3 PYTHON3_BASE)/bin +cmssw_python=$(realpath ${cmssw_python})/python +if [ "${gdb_python}" != "${cmssw_python}" ] ; then + echo "python used by GDB and CMSSW are not same" + exit 1 +else + echo "CMSSW/GDB python OK" +fi