Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  test.sh

  Sprache: Shell
 

#!/bin/bash

#
# This script runs the full set of tests for product config:
# 1. Build the product-config tool.
# 2. Run the unit tests.
# 3. Run the product config for every product available in the current
#    source tree, for each of user, userdebug and eng.
#       - To restrict which products or variants are run, set the
#         PRODUCTS or VARIANTS environment variables.
#       - Products for which the make based product config fails are
#         skipped.
#

# The PRODUCTS variable is used by the build, and setting it in the environment
# interferes with that, so unset it.  (That should probably be fixed)
products=$PRODUCTS
variants=$VARIANTS
unset PRODUCTS
unset VARIANTS

# Don't use lunch from the user's shell
unset TARGET_PRODUCT
unset TARGET_BUILD_VARIANT

function die() {
    format=$1
    shift
    printf "$format\nStopping...\n" $@ >&2
    exit 1;
}

[[ -f build/make/envsetup.sh ]] || die "Run this script from the root of the tree."
: ${products:=$(build/soong/soong_ui.bash --dumpvar-mode all_named_products | sed -e "s/ /\n/g" | sort -u )}
: ${variants:="user userdebug eng"}
: ${CKATI_BIN:=prebuilts/build-tools/$(build/soong/soong_ui.bash --dumpvar-mode HOST_PREBUILT_TAG)/bin/ckati}

function if_signal_exit() {
    [[ $1 -lt 128 ]] || exit $1
}

build/soong/soong_ui.bash --build-mode --all-modules --dir="$(pwd)" product-config-test product-config \
    || die "Build failed."

echo
echo Running unit tests
java -jar out/host/linux-x86/testcases/product-config-test/product-config-test.jar
unit_tests=$?
if_signal_exit $unit_tests

failed_baseline_checks=
for product in $products ; do
    for variant in $variants ; do
        echo
        echo "Checking: lunch $product-$variant"

        TARGET_PRODUCT=$product \
            TARGET_BUILD_VARIANT=$variant \
            build/soong/soong_ui.bash --dumpvar-mode TARGET_PRODUCT &> /dev/null
        exit_status=$?
        if_signal_exit $exit_status
        if [ $exit_status -ne 0 ] ; then
            echo "*** Combo fails with make, skipping product-config test run for $product-$variant"
        else
            rm -rf out/config/$product-$variant
            TARGET_PRODUCT=$product TARGET_BUILD_VARIANT=$variant product-config \
                            --ckati_bin $CKATI_BIN \
                            --error 1000
            exit_status=$?
            if_signal_exit $exit_status
            if [ $exit_status -ne 0 ] ; then
                failed_baseline_checks="$failed_baseline_checks $product-$variant"
            fi
            if [ "$CHECK_FOR_RULES" != "" ] ; then
                # This is a little bit of sleight of hand for good output formatting at the
                # expense of speed. We've already run the command once without
                # ALLOW_RULES_IN_PRODUCT_CONFIG, so we know it passes there. We run it again
                # with ALLOW_RULES_IN_PRODUCT_CONFIG=error to see if it fails, but that will
                # cause it to only print the first error. But we want to see all of them,
                # so if it fails we run it a third time with ALLOW_RULES_IN_PRODUCT_CONFIG=warning,
                # so we can see all the warnings.
                TARGET_PRODUCT=$product \
                    TARGET_BUILD_VARIANT=$variant \
                    ALLOW_RULES_IN_PRODUCT_CONFIG=error \
                    build/soong/soong_ui.bash --dumpvar-mode TARGET_PRODUCT &> /dev/null
                exit_status=$?
                if_signal_exit $exit_status
                if [ $exit_status -ne 0 ] ; then
                    TARGET_PRODUCT=$product \
                        TARGET_BUILD_VARIANT=$variant \
                        ALLOW_RULES_IN_PRODUCT_CONFIG=warning \
                        build/soong/soong_ui.bash --dumpvar-mode TARGET_PRODUCT > /dev/null
                    failed_rule_checks="$failed_rule_checks $product-$variant"
                fi
            fi
        fi
    done
done

echo
echo
echo "------------------------------"
echo SUMMARY
echo "------------------------------"

echo -n "Unit tests        "
if [ $unit_tests -eq 0 ] ; then echo PASSED ; else echo FAILED ; fi

echo -n "Baseline checks   "
if [ "$failed_baseline_checks" = "" ] ; then echo PASSED ; else echo FAILED ; fi
for combo in $failed_baseline_checks ; do
    echo "                   ... $combo"
done

echo -n "Rules checks      "
if [ "$failed_rule_checks" = "" ] ; then echo PASSED ; else echo FAILED ; fi
for combo in $failed_rule_checks ; do
    echo "                   ... $combo"
done


Messung V0.5 in Prozent
C=90 H=96 G=93

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-28) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik