diff options
author | Dave Brolley <brolley@redhat.com> | 2009-12-21 20:17:26 -0500 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-12-21 20:17:26 -0500 |
commit | e9fb9b955c80d8181e997bdd3477a52c4f34f0ce (patch) | |
tree | 8e0c379ec8a1f7441191e731405b60ee8135f3e5 | |
parent | d6df3d15c244688928d8ca46d779d658fa27583b (diff) | |
parent | 4e275917e8ef91778cd1ba0d469c8f00c776f2eb (diff) | |
download | systemtap-steved-e9fb9b955c80d8181e997bdd3477a52c4f34f0ce.tar.gz systemtap-steved-e9fb9b955c80d8181e997bdd3477a52c4f34f0ce.tar.xz systemtap-steved-e9fb9b955c80d8181e997bdd3477a52c4f34f0ce.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
-rw-r--r-- | parse.cxx | 35 | ||||
-rw-r--r-- | testsuite/buildok/semicolon.stp | 18 | ||||
-rw-r--r-- | testsuite/systemtap.apps/mysql.exp | 39 | ||||
-rw-r--r-- | testsuite/systemtap.apps/stap-tcl.sh | 2 | ||||
-rw-r--r-- | testsuite/systemtap.apps/xulrunner.exp | 18 |
5 files changed, 80 insertions, 32 deletions
@@ -1207,6 +1207,7 @@ parser::parse_stmt_block () statement* parser::parse_statement () { + statement *ret; const token* t = peek (); if (t && t->type == tok_operator && t->content == ";") { @@ -1215,34 +1216,42 @@ parser::parse_statement () return n; } else if (t && t->type == tok_operator && t->content == "{") - return parse_stmt_block (); + return parse_stmt_block (); // Don't squash semicolons. else if (t && t->type == tok_keyword && t->content == "if") - return parse_if_statement (); + return parse_if_statement (); // Don't squash semicolons. else if (t && t->type == tok_keyword && t->content == "for") - return parse_for_loop (); + return parse_for_loop (); // Don't squash semicolons. else if (t && t->type == tok_keyword && t->content == "foreach") - return parse_foreach_loop (); + return parse_foreach_loop (); // Don't squash semicolons. + else if (t && t->type == tok_keyword && t->content == "while") + return parse_while_loop (); // Don't squash semicolons. else if (t && t->type == tok_keyword && t->content == "return") - return parse_return_statement (); + ret = parse_return_statement (); else if (t && t->type == tok_keyword && t->content == "delete") - return parse_delete_statement (); - else if (t && t->type == tok_keyword && t->content == "while") - return parse_while_loop (); + ret = parse_delete_statement (); else if (t && t->type == tok_keyword && t->content == "break") - return parse_break_statement (); + ret = parse_break_statement (); else if (t && t->type == tok_keyword && t->content == "continue") - return parse_continue_statement (); + ret = parse_continue_statement (); else if (t && t->type == tok_keyword && t->content == "next") - return parse_next_statement (); - // XXX: "do/while" statement? + ret = parse_next_statement (); else if (t && (t->type == tok_operator || // expressions are flexible t->type == tok_identifier || t->type == tok_number || t->type == tok_string)) - return parse_expr_statement (); + ret = parse_expr_statement (); // XXX: consider generally accepting tok_embedded here too else throw parse_error ("expected statement"); + + // Squash "empty" trailing colons after any "non-block-like" statement. + t = peek (); + if (t && t->type == tok_operator && t->content == ";") + { + next (); // Silently eat trailing ; after statement + } + + return ret; } diff --git a/testsuite/buildok/semicolon.stp b/testsuite/buildok/semicolon.stp new file mode 100644 index 00000000..0ec41956 --- /dev/null +++ b/testsuite/buildok/semicolon.stp @@ -0,0 +1,18 @@ +#! stap -p4 + +# Test that semicolons are really optional (in non-block-like context). +# PR11038. + +global x = 0; +probe begin +{ + if (x) log("true") else log("false") + if (x) { log("true") } else { log("false") } + if (x) log("true"); else log("false") + if (x) log("true") else log("false"); +} + +probe end +{ + x = 1; +} diff --git a/testsuite/systemtap.apps/mysql.exp b/testsuite/systemtap.apps/mysql.exp index 497949c0..d057b6ae 100644 --- a/testsuite/systemtap.apps/mysql.exp +++ b/testsuite/systemtap.apps/mysql.exp @@ -269,11 +269,11 @@ RELEASE=\$(grep 'handler__unlock__done' $testsuite/stap-mysql-markers.log | wc - COMMAND=\$(grep 'command__start' $testsuite/stap-mysql-markers.log | wc -l) QUERY=\$(grep 'query__start' $testsuite/stap-mysql-markers.log | wc -l) RDLOCK=\$(grep 'handler__rdlock__start' $testsuite/stap-mysql-markers.log | wc -l) -SELECT=\$(grep 'select_start' $testsuite/stap-mysql-markers.log | wc -l) +SELECT=\$(grep 'select__start' $testsuite/stap-mysql-markers.log | wc -l) OKAY=\$(grep 'All.*tests were successful' $testsuite/stap-mysql.log | wc -l) echo ACQUIRE=\$ACQUIRE RELEASE=\$RELEASE COMMAND=\$COMMAND QUERY=\$QUERY RDLOCK=\$RDLOCK SELECT=\$SELECT OKAY=\$OKAY -if \[ \$ACQUIRE -gt 10000 -a \$RELEASE -gt 1000 -a \$COMMAND -gt 12000 -a \$QUERY -gt 13000 -a \$RDLOCK -gt 3000 \] ; then +if \[ \$ACQUIRE -gt 10000 -a \$RELEASE -gt 1000 -a \$COMMAND -gt 12000 -a \$QUERY -gt 13000 -a \$RDLOCK -gt 3000 -a \$SELECT -gt 2000 \] ; then echo PASS: mysql markers \$1 else echo FAIL: mysql markers \$1 @@ -285,8 +285,13 @@ else echo FAIL: mysql tests \$1 fi -$mysqldir/bin/mysqladmin shutdown -u root --socket=stap-mysql/mysql.sock -kill \$STAPPID +mv $testsuite/stap-mysql.log $testsuite/stap-mysql-\$1.log +cat $testsuite/stap-mysql-markers.log >> $testsuite/stap-mysql-\$1.log +rm $testsuite/stap-mysql-markers.log + +$mysqldir/bin/mysqladmin shutdown -u root --socket=$testsuite/stap-mysql/mysql.sock +kill -9 \$STAPPID +kill -9 $testsuite/stap-mysql/mysql.pid \} ##### end run_tests ##### @@ -305,24 +310,34 @@ mkdir mysql mv $mysqlrelease mysql/src fi -if \[ ! -f mysql/install/bin/mysql \] ; then -cd mysql -mkdir bld -cd bld +if \[ ! -d mysql/bld \] ; then +mkdir -p mysql/bld +cd mysql/bld # Force the use of dtrace sed -i -e 's/HAVE_DTRACE_DASH_G=\"no\"/HAVE_DTRACE_DASH_G=\"yes\"/' ../src/configure ../src/configure --enable-dtrace --prefix=$mysqldir for i in \$(find . -name Makefile) ; do sed -i -e 's/^CXXFLAGS =/& -g/' \$i done +fi + +cd mysql/bld -make -j2 +J=\$(getconf _NPROCESSORS_CONF) +make -j\$J cp ./abi_check.out ../../src/include/mysql.h.pp -make -j2 +make -j\$J make install -fi - run_tests uprobe + +# for i in \$(find . -name Makefile) ; do +# sed -i -e 's/^CFLAGS = .*$/& -DEXPERIMENTAL_UTRACE_SDT /' \$i +# sed -i -e 's/^CXXFLAGS = .*$/& -DEXPERIMENTAL_UTRACE_SDT /' \$i +# done +# for i in sql storage mysys ; do (cd \$i ; make clean) ; done +# make -i -j2 +# make install +# run_tests utrace " ########## End /tmp/stap-mysql.sh ########## close $fp diff --git a/testsuite/systemtap.apps/stap-tcl.sh b/testsuite/systemtap.apps/stap-tcl.sh index 919f632d..c3a7f6b7 100644 --- a/testsuite/systemtap.apps/stap-tcl.sh +++ b/testsuite/systemtap.apps/stap-tcl.sh @@ -15,6 +15,8 @@ fi if [ ! -d tcl/src ] ; then tar -x -z -f tcl$tclrelease-src.tar.gz mv tcl$tclrelease tcl/src + sed -i '/runAllTests/i\ +singleProcess true' tcl/src/tests/all.tcl fi cd tcl/src/unix diff --git a/testsuite/systemtap.apps/xulrunner.exp b/testsuite/systemtap.apps/xulrunner.exp index be2db0c7..7a6b934a 100644 --- a/testsuite/systemtap.apps/xulrunner.exp +++ b/testsuite/systemtap.apps/xulrunner.exp @@ -4,13 +4,15 @@ set test "xulrunner" global env -if {! [info exists env(SYSTEMTAP_TEST_SDT)]} { - unsupported "xulrunner (\"SYSTEMTAP_TEST_SDT\" not in env)" +if {! [info exists env(SYSTEMTAP_TESTAPPS)] || ( + ! [string match "tcl" $env(SYSTEMTAP_TESTAPPS)] && + ! [string match "all" $env(SYSTEMTAP_TESTAPPS)])} { + untested "$test sdt app" return } ########## Create /tmp/stap-xul.stp ########## -set xulrelease "1.9.1.3" +set xulrelease "1.9.1.4" set xuldir "[pwd]/xul/" set testsuite "[pwd]" @@ -76,13 +78,13 @@ fi \} ##### end run_tests ##### -if \[ ! -r xulrunner-$xulrelease-source.tar \] ; then -wget ftp://ftp.mozilla.org/pub/mozilla.org/xul/releases/$xulrelease/source/xulrunner-$xulrelease-source.tar.bz2 -bunzip2 xulrunner-$xulrelease-source.tar.bz2 +if \[ ! -r xulrunner-$xulrelease.source.tar.bz2 \] ; then +wget ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/$xulrelease/source/xulrunner-$xulrelease.source.tar.bz2 fi if \[ ! -d xul/src \] ; then -tar -x -f xulrunner-$xulrelease-source.tar +bunzip2 xulrunner-$xulrelease.source.tar.bz2 +tar -x -f xulrunner-$xulrelease.source.tar mkdir xul xulrelease=$xulrelease mv mozilla-\${xulrelease%.\[0-9\]} xul/src @@ -101,6 +103,8 @@ CXXFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ CFLAGS='-g -I$env(SYSTEMTAP_INCLUDES)' \ PATH=$env(SYSTEMTAP_PATH)/:\$PATH \ ../src/configure --prefix=$xuldir --enable-dtrace --enable-application=xulrunner +sed -i '/include.*rules.mk/a\ +PROGOBJS+=./mozjs-dtrace.o' xul/bld/js/src/Makefile J=\$(getconf _NPROCESSORS_CONF) make -j \$J fi |