polserver/testsuite/escript/filemod/xml.src
Kevin Eady 3ccf701ce9
Format testsuite scripts, pol-core support modules (#713)
* Format escript testsuite

* Manual formatting for escript testsuite
- Add format-off to places where formatter does what it should, but we don't like the results
- Manually change places where formatter outputs weird things _without_ format-off, so next format-all would show changes if not fixed

* Update .err files; add update_err.py helper script

Use the format `:line:col: message` for all .err file checks. This
allows us to change the file names without needing to edit the .err
contents.

Note that `in/inc0{1,2}.err` need have error messages between POSIX and
Windows, so their messages are a bit more "generic" than the other errs.

* Format pol testsuite

* Manual formatting for pol testsuite

* Format pol-core modules

* Manual formatting for pol-core modules

* Additional format pol-core modules

Use FormatterLineWidth=10000 since module functions must be on one line
because of the parse_modules target

* Address Discord comments

- Support multi-line module function declarations in parse_modules

* Format on df07831
2024-10-04 10:29:55 +02:00

67 lines
1.7 KiB
Text

use file;
program XMLTest()
print( "itertest..." );
itertest();
print( "membertest..." );
membertest();
print( "scopetest..." );
scopetest();
print( "not existing file..." );
notexistingtest();
print( "invalid file..." );
invalidtest();
endprogram
function itertest()
var xml := OpenXMLFile( "filemod/xmltest.xml" );
print( xml );
parsenode( xml, "" );
endfunction
function parsenode( node, i )
foreach blubb in node
print( i + cstr( blubb ) + " [" + blubb.type + "] (" + cstr( _blubb_iter ) + ")" );
parseattrib( blubb, i + "-" );
parsenode( blubb, i + " " );
endforeach
endfunction
function parseattrib( node, i )
foreach ele in ( node.attributes )
print( i + cstr( ele ) + " (" + _ele_iter + ")" );
endforeach
endfunction
function membertest()
var xml := OpenXMLFile( "filemod/xmltest.xml" );
var root := xml[2];
print( "root= " + root );
print( "firstchild= " + root.firstxmlchild() );
print( "firstchildstring= " + root.firstxmlchild( "nodetwo" ) );
print( "firstsibling= " + root.firstxmlchild().nextxmlsibling() );
var node := root.firstxmlchild( "nodetwo" );
print( "attributes= " + node.attributes.propnames() );
print( "attributes= " + node.attributes["j"] );
endfunction
function scopetest()
var elem := scopeloose();
print( "root= " + elem );
print( "firstchild= " + elem.firstxmlchild() );
endfunction
function scopeloose()
var xml := OpenXMLFile( "filemod/xmltest.xml" );
return xml[2].clonenode();
endfunction
function notexistingtest()
var xml := OpenXMLFile( "filemod/xmltestnotexisting.xml" );
print( typeof( xml ) );
endfunction
function invalidtest()
var xml := OpenXMLFile( "filemod/xmlinvalid.xml" );
print( typeof( xml ) );
endfunction