diff options
Diffstat (limited to 'testing')
-rw-r--r-- | testing/012/indexpage.xml | 2 | ||||
-rw-r--r-- | testing/012_cite.dox | 2 | ||||
-rw-r--r-- | testing/069/069__link__variadic__template_8cpp.xml | 2 | ||||
-rw-r--r-- | testing/069_link_variadic_template.cpp | 2 | ||||
-rw-r--r-- | testing/070/070__ref__variadic__template_8cpp.xml | 2 | ||||
-rw-r--r-- | testing/070_ref_variadic_template.cpp | 2 | ||||
-rw-r--r-- | testing/071/namespace_a_namespace_1_1_0d0.xml | 8 | ||||
-rw-r--r-- | testing/078/078__xml__namespace__members__in__file__scope_8h.xml | 4 | ||||
-rw-r--r-- | testing/082_decl_def.cpp | 2 | ||||
-rw-r--r-- | testing/083_decl_def.cpp | 2 | ||||
-rwxr-xr-x | testing/runtests.py | 88 | ||||
-rwxr-xr-x | testing/testsqlite3.py | 2 |
12 files changed, 83 insertions, 35 deletions
diff --git a/testing/012/indexpage.xml b/testing/012/indexpage.xml index 227e52c..3ee0fc8 100644 --- a/testing/012/indexpage.xml +++ b/testing/012/indexpage.xml @@ -7,7 +7,7 @@ </briefdescription> <detaileddescription> <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[3]</ref> for more info.</para> - <para>Oter references with crosreference see <ref refid="citelist_1CITEREF_Be09" kindref="member">[1]</ref> and <ref refid="citelist_1CITEREF_BertholdHeinzVigerske2009" kindref="member">[2]</ref> for more info. </para> + <para>Other references with cross references see <ref refid="citelist_1CITEREF_Be09" kindref="member">[1]</ref> and <ref refid="citelist_1CITEREF_BertholdHeinzVigerske2009" kindref="member">[2]</ref> for more info. </para> </detaileddescription> </compounddef> </doxygen> diff --git a/testing/012_cite.dox b/testing/012_cite.dox index 4b5e40d..6cec0cf 100644 --- a/testing/012_cite.dox +++ b/testing/012_cite.dox @@ -5,5 +5,5 @@ /** \mainpage * See \cite knuth79 for more info. * - * Oter references with crosreference see \cite Be09 and \cite BertholdHeinzVigerske2009 for more info. + * Other references with cross references see \cite Be09 and \cite BertholdHeinzVigerske2009 for more info. */ diff --git a/testing/069/069__link__variadic__template_8cpp.xml b/testing/069/069__link__variadic__template_8cpp.xml index 08c3667..02cffe1 100644 --- a/testing/069/069__link__variadic__template_8cpp.xml +++ b/testing/069/069__link__variadic__template_8cpp.xml @@ -301,7 +301,7 @@ <ref refid="class_test_1a64d85df31d518e39726467315a9b05e3" kindref="member">variadic template method</ref> </para> <para>Links to the variadic template function overloads: <itemizedlist><listitem><para><ref refid="069__link__variadic__template_8cpp_1aa7e4936a17759246bce60256cf224e16" kindref="member">First overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1ad6fc2d2a6cb8980f3e0eaacbd2ae41fe" kindref="member">Second overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">Third overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1aed64c596fea5f4f5e719006539922f7c" kindref="member">Fourth overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a0ad18d95a1dc2dbacee657c43f719187" kindref="member">Fifth overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a2331eedd0a1db9da5de0ad0faef78a4e" kindref="member">Sixth overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a72bd94e61df947347f98a2a6214e9342" kindref="member">Seventh overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a0bd03c39aa36ae51d2b8d87e04cf7eab" kindref="member">Eighth overload</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1abb1e0338f72ae46a1240ada65d6a397c" kindref="member">Ninth overload</ref></para></listitem></itemizedlist> -The followings are interpreted the same: <itemizedlist><listitem><para><ref refid="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">without template argument</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">with template argument</ref></para></listitem></itemizedlist> +The following are interpreted the same: <itemizedlist><listitem><para><ref refid="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">without template argument</ref></para></listitem><listitem><para><ref refid="069__link__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">with template argument</ref></para></listitem></itemizedlist> See the <ref refid="class_test" kindref="compound">test</ref> class. </para> </detaileddescription> <location file="069_link_variadic_template.cpp"/> diff --git a/testing/069_link_variadic_template.cpp b/testing/069_link_variadic_template.cpp index 89ab57c..fa4a08b 100644 --- a/testing/069_link_variadic_template.cpp +++ b/testing/069_link_variadic_template.cpp @@ -28,7 +28,7 @@ * @li \link func(int,const Args**... args) Eighth overload\endlink * @li \link func(int,Args...) Ninth overload\endlink * - * The followings are interpreted the same: + * The following are interpreted the same: * @li \link func(int,const Args&... args) without template argument\endlink * @li \link func<Args...>(int,const Args&... args) with template argument\endlink * diff --git a/testing/070/070__ref__variadic__template_8cpp.xml b/testing/070/070__ref__variadic__template_8cpp.xml index cebe079..828319c 100644 --- a/testing/070/070__ref__variadic__template_8cpp.xml +++ b/testing/070/070__ref__variadic__template_8cpp.xml @@ -301,7 +301,7 @@ <ref refid="class_test_1a64d85df31d518e39726467315a9b05e3" kindref="member">variadic template method</ref> </para> <para>References to the variadic template function overloads: <itemizedlist><listitem><para><ref refid="070__ref__variadic__template_8cpp_1aa7e4936a17759246bce60256cf224e16" kindref="member">First overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1ad6fc2d2a6cb8980f3e0eaacbd2ae41fe" kindref="member">Second overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">Third overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1aed64c596fea5f4f5e719006539922f7c" kindref="member">Fourth overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a0ad18d95a1dc2dbacee657c43f719187" kindref="member">Fifth overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a2331eedd0a1db9da5de0ad0faef78a4e" kindref="member">Sixth overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a72bd94e61df947347f98a2a6214e9342" kindref="member">Seventh overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a0bd03c39aa36ae51d2b8d87e04cf7eab" kindref="member">Eighth overload</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1abb1e0338f72ae46a1240ada65d6a397c" kindref="member">Ninth overload</ref></para></listitem></itemizedlist> -The followings are interpreted the same: <itemizedlist><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">without template argument</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">with template argument</ref></para></listitem></itemizedlist> +The following are interpreted the same: <itemizedlist><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">without template argument</ref></para></listitem><listitem><para><ref refid="070__ref__variadic__template_8cpp_1a708a5bf22646ed7233fe61b83182811a" kindref="member">with template argument</ref></para></listitem></itemizedlist> See the <ref refid="class_test" kindref="compound">test</ref> class. </para> </detaileddescription> <location file="070_ref_variadic_template.cpp"/> diff --git a/testing/070_ref_variadic_template.cpp b/testing/070_ref_variadic_template.cpp index 376cebe..fa558b7 100644 --- a/testing/070_ref_variadic_template.cpp +++ b/testing/070_ref_variadic_template.cpp @@ -28,7 +28,7 @@ * @li \ref func(int,const Args**... args) "Eighth overload" * @li \ref func(int,Args...) "Ninth overload" * - * The followings are interpreted the same: + * The following are interpreted the same: * @li \ref func(int,const Args&... args) "without template argument" * @li \ref func<Args...>(int,const Args&... args) "with template argument" * diff --git a/testing/071/namespace_a_namespace_1_1_0d0.xml b/testing/071/namespace_a_namespace_1_1_0d0.xml index 14f5a51..d439723 100644 --- a/testing/071/namespace_a_namespace_1_1_0d0.xml +++ b/testing/071/namespace_a_namespace_1_1_0d0.xml @@ -3,24 +3,24 @@ <compounddef id="namespace_a_namespace_1_1_0d0" kind="namespace" language="C++"> <compoundname>ANamespace::@0</compoundname> <sectiondef kind="enum"> - <memberdef kind="enum" id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45d" prot="public" static="no" strong="yes"> + <memberdef kind="enum" id="namespace_a_namespace_1_1_0d0_1a96ab6574751fdf6a53ceec8a3896c45d" prot="public" static="no" strong="yes"> <type/> <name>Boolean</name> - <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45daf8320b26d30ab433c5a54546d21f414c" prot="public"> + <enumvalue id="namespace_a_namespace_1_1_0d0_1a96ab6574751fdf6a53ceec8a3896c45daf8320b26d30ab433c5a54546d21f414c" prot="public"> <name>False</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> </enumvalue> - <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45daf827cf462f62848df37c5e1e94a4da74" prot="public"> + <enumvalue id="namespace_a_namespace_1_1_0d0_1a96ab6574751fdf6a53ceec8a3896c45daf827cf462f62848df37c5e1e94a4da74" prot="public"> <name>True</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> </enumvalue> - <enumvalue id="071__enum__in__anon__ns_8cpp_1a96ab6574751fdf6a53ceec8a3896c45da2767828026039e8ba7b38973cbb701f2" prot="public"> + <enumvalue id="namespace_a_namespace_1_1_0d0_1a96ab6574751fdf6a53ceec8a3896c45da2767828026039e8ba7b38973cbb701f2" prot="public"> <name>FileNotFound</name> <briefdescription> </briefdescription> diff --git a/testing/078/078__xml__namespace__members__in__file__scope_8h.xml b/testing/078/078__xml__namespace__members__in__file__scope_8h.xml index 1198549..078c5ad 100644 --- a/testing/078/078__xml__namespace__members__in__file__scope_8h.xml +++ b/testing/078/078__xml__namespace__members__in__file__scope_8h.xml @@ -4,7 +4,7 @@ <compoundname>078_xml_namespace_members_in_file_scope.h</compoundname> <innernamespace refid="namespace_namespace">Namespace</innernamespace> <sectiondef kind="enum"> - <memberdef kind="enum" id="078__xml__namespace__members__in__file__scope_8h_1add172b93283b1ab7612c3ca6cc5dcfea" prot="public" static="no" strong="yes"> + <memberdef kind="enum" id="namespace_namespace_1add172b93283b1ab7612c3ca6cc5dcfea" prot="public" static="no" strong="yes"> <type/> <name>Enum</name> <briefdescription> @@ -18,7 +18,7 @@ </memberdef> </sectiondef> <sectiondef kind="func"> - <memberdef kind="function" id="078__xml__namespace__members__in__file__scope_8h_1a0f1fe1a972c7c4196988a1bdde63ec77" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> + <memberdef kind="function" id="namespace_namespace_1a0f1fe1a972c7c4196988a1bdde63ec77" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual"> <type>void</type> <definition>void Namespace::foo</definition> <argsstring>()</argsstring> diff --git a/testing/082_decl_def.cpp b/testing/082_decl_def.cpp index ef57836..6dbc3c5 100644 --- a/testing/082_decl_def.cpp +++ b/testing/082_decl_def.cpp @@ -1,4 +1,4 @@ -// objective: test for declation and definition order independence: decl first +// objective: test for declaration and definition order independence: decl first // check: namespace_n.xml // config: INPUT = $INPUTDIR/decl_def.h $INPUTDIR/082_decl_def.cpp #include "test.h" diff --git a/testing/083_decl_def.cpp b/testing/083_decl_def.cpp index 1241be6..64efc3e 100644 --- a/testing/083_decl_def.cpp +++ b/testing/083_decl_def.cpp @@ -1,4 +1,4 @@ -// objective: test for declation and definition order independence: def first +// objective: test for declaration and definition order independence: def first // check: namespace_n.xml // config: INPUT = $INPUTDIR/083_decl_def.cpp $INPUTDIR/decl_def.h #include "test.h" diff --git a/testing/runtests.py b/testing/runtests.py index fa3c186..a4118b8 100755 --- a/testing/runtests.py +++ b/testing/runtests.py @@ -2,9 +2,38 @@ from __future__ import print_function import argparse, glob, itertools, re, shutil, os, sys +import subprocess config_reg = re.compile('.*\/\/\s*(?P<name>\S+):\s*(?P<value>.*)$') + +def xopen(fname, mode='r', encoding='utf-8'): + '''Unified file opening for Python 2 an Python 3. + + Python 2 does not have the encoding argument. Python 3 has one. + ''' + + if sys.version_info[0] == 2: + return open(fname, mode=mode) # Python 2 without encoding + else: + return open(fname, mode=mode, encoding=encoding) # Python 3 with encoding + +def xpopen(cmd, cmd1="",encoding='utf-8-sig', getStderr=False): + '''Unified file pipe opening for Python 2 an Python 3. + + Python 2 does not have the encoding argument. Python 3 has one. and + ''' + + if sys.version_info[0] == 2: + return os.popen(cmd).read() # Python 2 without encoding + else: + if (getStderr): + proc = subprocess.run(cmd1,encoding=encoding,capture_output=True) # Python 3 with encoding + return proc.stderr + else: + proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding=encoding) # Python 3 with encoding + return proc.stdout.read() + class Tester: def __init__(self,args,test): self.args = args @@ -25,7 +54,7 @@ class Tester: elif not os.path.isfile(expected_file): return (True,'%s absent' % expected_file) else: - diff = os.popen('diff -b -w -u %s %s' % (got_file,expected_file)).read() + diff = xpopen('diff -b -w -u %s %s' % (got_file,expected_file)) if diff and not diff.startswith("No differences"): return (True,'Difference between generated output and reference:\n%s' % diff) return (False,'') @@ -67,7 +96,7 @@ class Tester: def get_config(self): config = {} - with open(self.args.inputdir+'/'+self.test,'r') as f: + with xopen(self.args.inputdir+'/'+self.test,'r') as f: for line in f.readlines(): m = config_reg.match(line) if m: @@ -84,7 +113,7 @@ class Tester: shutil.rmtree(self.test_out,ignore_errors=True) os.mkdir(self.test_out) shutil.copy(self.args.inputdir+'/Doxyfile',self.test_out) - with open(self.test_out+'/Doxyfile','a') as f: + with xopen(self.test_out+'/Doxyfile','a') as f: print('INPUT=%s/%s' % (self.args.inputdir,self.test), file=f) print('STRIP_FROM_PATH=%s' % self.args.inputdir, file=f) print('EXAMPLE_PATH=%s' % self.args.inputdir, file=f) @@ -113,6 +142,7 @@ class Tester: print('HTML_FILE_EXTENSION=.xhtml', file=f) if (self.args.pdf): print('GENERATE_LATEX=YES', file=f) + print('LATEX_BATCHMODE=YES', file=f) print('LATEX_OUTPUT=%s/latex' % self.test_out, file=f) if self.args.subdirs: print('CREATE_SUBDIRS=YES', file=f) @@ -154,7 +184,7 @@ class Tester: print('Non-existing file %s after \'check:\' statement' % check_file) return # convert output to canonical form - data = os.popen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)).read() + data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)).read() if data: # strip version data = re.sub(r'xsd" version="[0-9.-]+"','xsd" version=""',data).rstrip('\n') @@ -162,7 +192,7 @@ class Tester: print('Failed to run %s on the doxygen output file %s' % (self.args.xmllint,self.test_out)) return out_file='%s/%s' % (self.test_out,check) - with open(out_file,'w') as f: + with xopen(out_file,'w') as f: print(data,file=f) shutil.rmtree(self.test_out+'/out',ignore_errors=True) os.remove(self.test_out+'/Doxyfile') @@ -204,7 +234,7 @@ class Tester: else: check_file = check_file[0] # convert output to canonical form - data = os.popen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)).read() + data = xpopen('%s --format --noblanks --nowarning %s' % (self.args.xmllint,check_file)) if data: # strip version data = re.sub(r'xsd" version="[0-9.-]+"','xsd" version=""',data).rstrip('\n') @@ -212,7 +242,7 @@ class Tester: msg += ('Failed to run %s on the doxygen output file %s' % (self.args.xmllint,self.test_out),) break out_file='%s/%s' % (self.test_out,check) - with open(out_file,'w') as f: + with xopen(out_file,'w') as f: print(data,file=f) ref_file='%s/%s/%s' % (self.args.inputdir,self.test_id,check) (failed_xml,xml_msg) = self.compare_ok(out_file,ref_file,self.test_name) @@ -235,10 +265,12 @@ class Tester: index_xsd.append(glob.glob('%s/index.xsd' % (xmlxsd_output))) index_xsd.append(glob.glob('%s/*/*/index.xsd' % (xmlxsd_output))) index_xsd = ' '.join(list(itertools.chain.from_iterable(index_xsd))).replace(self.args.outputdir +'/','').replace('\\','/') - exe_string = '%s --noout --schema %s %s %s' % (self.args.xmllint,index_xsd,index_xml,redirx) + exe_string = '%s --noout --schema %s %s' % (self.args.xmllint,index_xsd,index_xml) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) exe_string += ' %s more "%s/temp"' % (separ,xmlxsd_output) - xmllint_out = os.popen(exe_string).read() + xmllint_out = xpopen(exe_string,exe_string1,getStderr=True) if xmllint_out: xmllint_out = re.sub(r'.*validates','',xmllint_out).rstrip('\n') else: @@ -259,10 +291,12 @@ class Tester: compound_xsd.append(glob.glob('%s/compound.xsd' % (xmlxsd_output))) compound_xsd.append(glob.glob('%s/*/*/compound.xsd' % (xmlxsd_output))) compound_xsd = ' '.join(list(itertools.chain.from_iterable(compound_xsd))).replace(self.args.outputdir +'/','').replace('\\','/') - exe_string = '%s --noout --schema %s %s %s' % (self.args.xmllint,compound_xsd,compound_xml,redirx) + exe_string = '%s --noout --schema %s %s' % (self.args.xmllint,compound_xsd,compound_xml) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) exe_string += ' %s more "%s/temp"' % (separ,xmlxsd_output) - xmllint_out = os.popen(exe_string).read() + xmllint_out = xpopen(exe_string,exe_string1,getStderr=True) if xmllint_out: xmllint_out = re.sub(r'.*validates','',xmllint_out).rstrip('\n') else: @@ -292,11 +326,13 @@ class Tester: tests.append(glob.glob('%s/*.xml' % (docbook_output))) tests.append(glob.glob('%s/*/*/*.xml' % (docbook_output))) tests = ' '.join(list(itertools.chain.from_iterable(tests))).replace(self.args.outputdir +'/','').replace('\\','/') - exe_string = '%s --nonet --postvalid %s %s' % (self.args.xmllint,tests,redirx) + exe_string = '%s --nonet --postvalid %s' % (self.args.xmllint,tests) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) exe_string += ' %s more "%s/temp"' % (separ,docbook_output) failed_docbook=False - xmllint_out = os.popen(exe_string).read() + xmllint_out = xpopen(exe_string,exe_string1,getStderr=True) xmllint_out = self.cleanup_xmllint_docbook(xmllint_out) if xmllint_out: msg += (xmllint_out,) @@ -310,10 +346,12 @@ class Tester: redirx=' 2> %s/temp >nul:'%html_output else: redirx='2>%s/temp >/dev/null'%html_output - exe_string = '%s --path dtd --nonet --postvalid %s/*xhtml %s %s ' % (self.args.xmllint,html_output,redirx,separ) - exe_string += 'more "%s/temp"' % (html_output) + exe_string = '%s --path dtd --nonet --postvalid %s/*xhtml' % (self.args.xmllint,html_output) + exe_string1 = exe_string + exe_string += ' %s' % (redirx) + exe_string += ' %s more "%s/temp"' % (separ,html_output) failed_html=False - xmllint_out = os.popen(exe_string).read() + xmllint_out = xpopen(exe_string,exe_string1,getStderr=True) xmllint_out = self.cleanup_xmllint(xmllint_out) if xmllint_out: msg += (xmllint_out,) @@ -325,15 +363,25 @@ class Tester: latex_output='%s/latex' % self.test_out if (sys.platform == 'win32'): redirl='>nul: 2>temp' + mk='make.bat' else: redirl='>/dev/null 2>temp' - exe_string = 'cd %s %s echo "q" | make %s %s' % (latex_output,separ,redirl,separ) - exe_string += 'more temp' - latex_out = os.popen(exe_string).read() + mk='make' + cur_directory = os.getcwd() + os.chdir(latex_output) + exe_string = mk + exe_string1 = exe_string + exe_string += ' %s' % (redirl) + exe_string += ' %s more temp' % (separ) + latex_out = xpopen(exe_string,exe_string1,getStderr=True) + os.chdir(cur_directory); if latex_out.find("Error")!=-1: msg += ("PDF generation failed\n For a description of the problem see 'refman.log' in the latex directory of this test",) failed_html=True - elif open(latex_output + "/refman.log",'r').read().find("Emergency stop")!= -1: + elif xopen(latex_output + "/refman.log",'r').read().find("Error")!= -1: + msg += ("PDF generation failed\n For a description of the problem see 'refman.log' in the latex directory of this test",) + failed_html=True + elif xopen(latex_output + "/refman.log",'r').read().find("Emergency stop")!= -1: msg += ("PDF generation failed\n For a description of the problem see 'refman.log' in the latex directory of this test",) failed_html=True elif not self.args.keep: diff --git a/testing/testsqlite3.py b/testing/testsqlite3.py index e8ab16c..b4227b4 100755 --- a/testing/testsqlite3.py +++ b/testing/testsqlite3.py @@ -6,7 +6,7 @@ import sys import getopt # map XML attributes/elements to SQL rows -# --POC: iterate through the children and attributes of the memberdef elelement +# --POC: iterate through the children and attributes of the memberdef element # and search it in doxygen_sqlite3.db g_conn=None |