remoting/server/tests/run-declarative-tests
author Jan Lahoda <jlahoda@netbeans.org>
Sun, 08 Jan 2017 20:11:29 +0100
changeset 1036 3b6996b67a7c
parent 768 a30e0d530397
permissions -rwxr-xr-x
Fixing license headers for scripts
     1 #!/bin/bash -x
     2 
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     4 #
     5 # Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
     6 #
     7 # Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     8 # Other names may be trademarks of their respective owners.
     9 #
    10 # The contents of this file are subject to the terms of either the GNU
    11 # General Public License Version 2 only ("GPL") or the Common
    12 # Development and Distribution License("CDDL") (collectively, the
    13 # "License"). You may not use this file except in compliance with the
    14 # License. You can obtain a copy of the License at
    15 # http://www.netbeans.org/cddl-gplv2.html
    16 # or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    17 # specific language governing permissions and limitations under the
    18 # License.  When distributing the software, include this License Header
    19 # Notice in each file and include the License file at
    20 # nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    21 # particular file as subject to the "Classpath" exception as provided
    22 # by Oracle in the GPL Version 2 section of the License file that
    23 # accompanied this code. If applicable, add the following below the
    24 # License Header, with the fields enclosed by brackets [] replaced by
    25 # your own identifying information:
    26 # "Portions Copyrighted [year] [name of copyright owner]"
    27 #
    28 # Contributor(s):
    29 #
    30 # The Original Software is NetBeans. The Initial Developer of the Original
    31 # Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
    32 # Microsystems, Inc. All Rights Reserved.
    33 #
    34 # If you wish your version of this file to be governed by only the CDDL
    35 # or only the GPL Version 2, indicate your decision by adding
    36 # "[Contributor] elects to include this software in this distribution
    37 # under the [CDDL or GPL Version 2] license." If you do not indicate a
    38 # single choice of license, a recipient has the option to distribute
    39 # your version of this file under either the CDDL, the GPL Version 2 or
    40 # to extend the choice of license to its licensees as provided above.
    41 # However, if you add GPL Version 2 code and therefore, elected the GPL
    42 # Version 2 license, then the option applies only if the new code is
    43 # made subject to such option by the copyright holder.
    44 
    45 do_index() {
    46     rm -rf cache
    47     mkdir -p cache
    48     for g in `pwd`/data/*; do
    49         NAME=`basename $g`;
    50         PROJECTS=`find $PWD/data/group1/ -maxdepth 1 -mindepth 1 -type d`
    51         USERDIR="`pwd`/cache/userdir"
    52         rm -rf "$USERDIR"
    53         (cd ../indexer; ant "-Drun.args=--nosplash --nogui -J-Xmx128m --category-id '$NAME' --category-name '$NAME-display-name' --cache-target ../tests/cache/temp.zip --category-root-dir '$g' --category-projects '$PROJECTS'" "-Dtest.user.dir=$USERDIR" "$@" run)
    54         (cd cache; unzip temp.zip; rm temp.zip)
    55         rm -rf "$USERDIR"
    56     done
    57 }
    58 
    59 #XXX: copied from cmdline/test/scripted/harness
    60 write_passed_results_file() {
    61       cat >$RESULT_FILE <<EOF
    62 <?xml version="1.0" encoding="UTF-8" ?>
    63 <testsuite errors="0" failures="0" hostname="foo" name="$TEST_NAME" tests="1" time="0" timestamp="`date`">
    64   <properties/>
    65   <testcase classname="$TEST_NAME" name="main" time="0" />
    66 </testsuite>
    67 EOF
    68 }
    69 
    70 write_failure_results_file() {
    71       cat >$RESULT_FILE <<EOF
    72 <?xml version="1.0" encoding="UTF-8" ?>
    73 <testsuite errors="0" failures="1" hostname="foo" name="$TEST_NAME" tests="1" time="0" timestamp="`date`">
    74   <properties/>
    75   <testcase classname="$TEST_NAME" name="main" time="0">
    76     <failure message="Test failed" type="junit.framework.AssertionFailedError"><![CDATA[$1]]></failure>
    77   </testcase>
    78 </testsuite>
    79 EOF
    80 }
    81 
    82 do_index "$@"
    83 
    84 (cd ../web/web.main; ant jar)
    85 OUT=`mktemp`;
    86 trap "rm $OUT" EXIT
    87 java -jar ../web/web.main/dist/web.main.jar --port 0 cache >"$OUT" &
    88 
    89 trap "kill %1" EXIT
    90 
    91 while [ -z "$PORT" ] ; do
    92      sleep 1s;
    93      PORT=`cat "$OUT" | grep "Running on port: " | cut -d ':' -f 2 | tr -d ' '`;
    94 done
    95 
    96 rm -rf results
    97 mkdir results
    98 
    99 for tc in `find testcases -name "*.tc" -type d`; do
   100     REQUEST=`cat $tc/request | grep -v '^#'`;
   101     TEST_NAME=`echo ${tc#testcases/} | tr '/' '-'`;
   102     RESULT_FILE="`pwd`/results/TEST-$TEST_NAME.xml"
   103     if wget -O - "http://localhost:${PORT}$REQUEST" | diff -w - $tc/response; then
   104         write_passed_results_file
   105     else
   106         write_failure_results_file
   107     fi;
   108 done
   109 
   110 exit 0