neutron/tools/misc-sanity-checks.sh
Maru Newby 30c6f56365 Add script to copy neutron api tests from tempest
This change adds a script to automate the copying of api tests from
tempest in the style of oslo_incubator.  The target path will be
neutron/tests/tempest and no manual modifications should be made to
this path until such time as neutron api test development is frozen in
tempest and development can proceed in the neutron tree.  Until that
occurs, a policy of manual once-daily synchronization is suggested.

The target path includes the name 'tempest' as a clear indication that
this is not part of neutron, and that once development is allowed to
proceed, its contents should be rewritten and removed until there is
nothing left.

So long as the tests exist in both the tempest and neutron trees,
testing effort will be duplicated.  The larger goal is to have the
tests in question removed from tempest as per the qa guidelines [1],
so this should be temporary.

1: https://wiki.openstack.org/wiki/QA/Tempest-test-removal

Change-Id: I3cd55983e610a1d61aae565f88fe5017edba1090
2015-03-06 19:57:27 +00:00

74 lines
2.4 KiB
Bash

#! /bin/sh
# Copyright (C) 2014 VA Linux Systems Japan K.K.
# Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
TMPDIR=`mktemp -d /tmp/${0##*/}.XXXXXX` || exit 1
export TMPDIR
trap "rm -rf $TMPDIR" EXIT
FAILURES=$TMPDIR/failures
check_opinionated_shell () {
# The purpose of this function is to avoid casual introduction of more
# bash dependency. Please consider alternatives before committing code
# which uses bash specific features.
# Check that shell scripts are not bash opinionated (ignore comments though)
# If you cannot avoid the use of bash, please change the EXPECTED var below.
OBSERVED=$(grep -E '^([[:space:]]*[^#[:space:]]|#!).*bash' \
tox.ini tools/* | wc -l)
EXPECTED=7
if [ ${EXPECTED} -ne ${OBSERVED} ]; then
echo "Bash usage has been detected!" >>$FAILURES
fi
}
check_no_symlinks_allowed () {
# Symlinks break the package build process, so ensure that they
# do not slip in, except hidden symlinks.
if [ $(find . -type l ! -path '*/.*' | wc -l) -ge 1 ]; then
echo "Symlinks are not allowed!" >>$FAILURES
fi
}
check_pot_files_errors () {
# The job neutron-propose-translation-update does not update from
# transifex since our po files contain duplicate entries where
# obsolete entries duplicate normal entries. Prevent obsolete
# entries to slip in
find neutron -type f -regex '.*\.pot?' \
-print0|xargs -0 -n 1 msgfmt --check-format \
-o /dev/null
if [ "$?" -ne 0 ]; then
echo "PO files syntax is not correct!" >>$FAILURES
fi
}
# Add your checks here...
check_opinionated_shell
check_no_symlinks_allowed
check_pot_files_errors
# Fail, if there are emitted failures
if [ -f $FAILURES ]; then
cat $FAILURES
exit 1
fi