Re: [Vala] testrunner.sh on OpenIndiana



All but three pass now. My patch below. Comments might help someone.

/control-flow/bug736774-2
ERROR:/export/home/agrellum/vala-0.36.6/tests/_test/main.c:111:control_flow_bug736774_2_main:
assertion failed: (keep != "test")
control_flow.bug736774_2.check: line 2: 17168 Abort                   (core
dumped) ./test /control-flow/bug736774-2

/dbus/enum-string-marshalling
main.vala:17.42-17.57: error: The type name `UnixOutputStream' could not be
found
    public abstract void test3 (FooEnum e1, UnixOutputStream output_stream,
FooEnum e2) throws DBusError;
                                            ^^^^^^^^^^^^^^^^
Loaded package
`/export/home/agrellum/vala-0.36.6/tests/./../vapi/glib-2.0.vapi'
Loaded package
`/export/home/agrellum/vala-0.36.6/tests/./../vapi/gobject-2.0.vapi'
Loaded package
`/export/home/agrellum/vala-0.36.6/tests/./../vapi/gio-2.0.vapi'

/dbus/filedescriptor-errors/server
Conversion from character set '646' to 'UTF-8' is not supported

Patch:

--- /export/home/agrellum/vala-0.36.6/tests/testrunner.sh.orig
+++ /export/home/agrellum/vala-0.36.6/tests/testrunner.sh
@@ -29,7 +29,12 @@
 export G_DEBUG=fatal_warnings

 VALAC=$topbuilddir/compiler/valac$EXEEXT
-VALAFLAGS="$VALAFLAGS --vapidir $vapidir --disable-warnings --main main
--save-temps -X -g -X -O0 -X -pipe -X -lm -X -DGETTEXT_PACKAGE=\"valac\" -X
-Werror=return-type -X -Werror=init-self -X -Werror=implicit -X
-Werror=sequence-point -X -Werror=return-type -X -Werror=uninitialized -X
-Werror=pointer-arith -X -Werror=int-to-pointer-cast -X
-Werror=pointer-to-int-cast -X -Wformat -X -Werror=format-security -X
-Werror=format-nonliteral -X -Werror=redundant-decls -X
-Werror=int-conversion"
+#VALAFLAGS="$VALAFLAGS --vapidir $vapidir --disable-warnings --main main
--save-temps -X -g -X -O0 -X -pipe -X -lm -X -DGETTEXT_PACKAGE=\"valac\" -X
-Werror=return-type -X -Werror=init-self -X -Werror=implicit -X
-Werror=sequence-point -X -Werror=return-type -X -Werror=uninitialized -X
-Werror=pointer-arith -X -Werror=int-to-pointer-cast -X
-Werror=pointer-to-int-cast -X -Wformat -X -Werror=format-security -X
-Werror=format-nonliteral -X -Werror=redundant-decls -X
-Werror=int-conversion"
+# OpenIndiana add -v flag for extra logging
+# Hardcoded --cc flag for now; Use ./configure CC=gcc when building vala
+# System can have many CC's and gcc may not be default
+# Remove -X -Werror=int-conversion; Not an option with gcc (GCC) 4.9.4
OpenIndiana build
+VALAFLAGS="$VALAFLAGS -v --cc=gcc --vapidir $vapidir --disable-warnings
--main main --save-temps -X -g -X -O0 -X -pipe -X -lm -X
-DGETTEXT_PACKAGE=\"valac\" -X -Werror=return-type -X -Werror=init-self -X
-Werror=implicit -X -Werror=sequence-point -X -Werror=return-type -X
-Werror=uninitialized -X -Werror=pointer-arith -X
-Werror=int-to-pointer-cast -X -Werror=pointer-to-int-cast -X -Wformat -X
-Werror=format-security -X -Werror=format-nonliteral -X
-Werror=redundant-decls"
 VAPIGEN=$topbuilddir/vapigen/vapigen$EXEEXT
 VAPIGENFLAGS="--vapidir $vapidir"

@@ -114,26 +119,32 @@
 }

 testdir=_test
-rm -rf $testdir
-mkdir $testdir
-cd $testdir
-
-echo -n -e "TEST: Building...\033[72G"
-
-cat << "EOF" > checkall
+
+# Added
+echo "Use gmake check &> test.log for hard coded log file"
+# Changed echo -n -e to printf; No echo -options SunOS; just use newline
+printf "TEST: Building...\n"
+
+for testfile in "$@"; do
+    PACKAGES=gio-2.0
+    SOURCEFILES=
+    cd $builddir
+    rm -rf $testdir
+    mkdir $testdir
+    cd $testdir
+
+    cat << "EOF" > checkall
 all=0
 fail=0
 EOF

-cat << "EOF" > main.vala
+    cat << "EOF" > main.vala
 void main (string[] args) {
     switch (args[1]) {
 EOF

-PACKAGES=gio-2.0
-SOURCEFILES=
-for testfile in "$@"; do
-    rm -f prepare check
+    # Changed; entire $testdir is removed inside loop now
+    #rm -f prepare check
     echo 'set -e' >> prepare

     case "$testfile" in
@@ -172,7 +183,8 @@
                         INHEADER=0
                     fi
                 else
-                    if echo "$line" | grep -q "^[A-Za-z]\+:"; then
+                    # Changed "^[A-Za-z]\+:" to "^[A-Za-z]*:"
+                    if echo "$line" | grep -q "^[A-Za-z]*:"; then
                         sourceend
                         PART=$(($PART + 1))
                         INHEADER=1
@@ -189,24 +201,28 @@
     esac

     cat prepare check > $ns.check
+    # Changed echo -n -e and echo -e to printf
+    # Changed [72G to [50G TEST RESULT SUMMARY all one line and < 80
chars.
     cat << EOF >> checkall
-echo -n -e "  /$testpath: \033[72G"
+printf "  /$testpath: \033[50G"
 ((all++))
 if bash $ns.check &>log; then
-    echo -e "\033[0;32mOK\033[m"
+    printf "\033[0;32mOK\033[m"
 else
     ((fail++))
-    echo -e "\033[0;31mFAIL\033[m"
+    printf "\033[0;31mFAIL\033[m"
     cat log
 fi
 EOF
-done
-
+# Moved to end
+#done
+
+# Adds space between RESULT and Summary
 cat << "EOF" >> checkall
 if [ $fail -eq 0 ]; then
-    echo "All $all tests passed"
+    echo " All $all tests passed"
 else
-    echo "$fail of $all tests failed"
+    echo " $fail of $all tests failed"
     exit 1
 fi
 EOF
@@ -217,23 +233,21 @@
 }
 EOF

-cat $SOURCEFILES >> main.vala
-
-if $VALAC $VALAFLAGS -o test$EXEEXT $([ -z "$PACKAGES" ] || echo $PACKAGES
| xargs -n 1 echo -n " --pkg") main.vala &>log; then
-    echo -e "\033[0;32mOK\033[m"
-else
-    echo -e "\033[0;31mFAIL\033[m"
-    cat log
-
-    cd $builddir
-    exit 1
-fi
-
-if bash checkall; then
-    cd $builddir
-    rm -rf $testdir
-else
-    cd $builddir
-    exit 1
-fi
-
+    # cat $SOURCEFILES does not catch empty; hangs waiting for stdin
+    if [ -n "$SOURCEFILES" ]
+    then
+        cat $SOURCEFILES >> main.vala
+        # Changed echo -n " --pkg" to printf "%s" " --pkg="
+        if ! $VALAC $VALAFLAGS -o test$EXEEXT $([ -z "$PACKAGES" ] || echo
$PACKAGES | xargs -n 1 printf "%s" " --pkg=") main.vala &>log; then
+            # Only show extra logging for failed compiles; checkall shows
failed test anyway
+            cat log
+        fi
+    fi
+
+    # Just run checkall; do not exit even on fails; finish all tests
+    bash checkall
+
+done
+
+# Added; finish in build directory
+cd $builddir


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]