Andreas Scheuring 93929b09a3 Tests for guest image tools
Adding Testcases for the functions used by guest-image-tools. The
tests are executed by python and integrated into the py27 and py35
test jobs.

Sometimes the guest image tools call external commands
(like ip, zneconf,...). for this case dummy versions of those
executeables are placed in a faked root directory. The test takes
care of exectuing those commands in this directory, therefore the
dummy (bash) executables are chosen over the real ones.
However those dummy executeables cannot replace mocks where a lot
of assertions can be done. As workaround the dummy executeable just
check if it was called with a certain list of arguments. The test
needs to exactly pass those arguments in order to succeed.

Ideally those tests would be functional tests running on a real
system z envrionement. Doing so we could verify if the real
operations are working as well.

Change-Id: I35d0840c2e4bb9d216d57a5927f20b3f0ff182c0
2017-03-06 17:47:15 +01:00

40 lines
1.3 KiB
Bash
Executable File

#! /bin/bash
# Copyright 2017 IBM Corp. 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.
# This is a test wrapper. It's only job is to help executing certain functions
# of other shell scripts.
# This script is called from the projects root directory. Therefore all paths
# must be specified relative to it.
# Manual execution
# nova_dpm/tests/unit/guest_image_tools/test_wrapper.sh <method_name> <args>
source guest_image_tools/usr/bin/dpm_guest_image_tools_common
# $1 = The function to be called
# $2,3... = the parameters for the function
func="$1"
# Remove the first argument from $@
shift 1
# Make sure only defined function are called
if [[ $(type -t $func) == "function" ]]; then
# Call function with arguments passed in as $2,3,...
$func "$@"
exit $?
else
exit 1
fi