5cdbb2deb6bd3a6ed4e318a18b19b489f27683c7
[integration/test.git] / csit / suites / distribution / size.robot
1 *** Settings ***
2 Documentation     Suite for testing ODL distribution zip file size.
3 ...
4 ...               Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
5 ...
6 ...               This program and the accompanying materials are made available under the
7 ...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 ...               and is available at http://www.eclipse.org/legal/epl-v10.html
9 ...
10 ...
11 ...               Variables needed to be rovided on pybot invocation:
12 ...               ${BUNDLEFOLDER} (directory name of ODL installation, as it is suffxed by the distribution version).
13 ...               This suite assumes the .zip file is stll present on ${ODL_SYSTEM_IP} in ${WORKSPACE} directory.
14 Suite Setup       SetupUtils.Setup_Utils_For_Setup_And_Teardown
15 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
16 Test Teardown     SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
17 Default Tags      critical    distribution    size
18 Resource          ${CURDIR}/../../libraries/SetupUtils.robot
19 Resource          ${CURDIR}/../../libraries/SSHKeywords.robot
20
21 *** Variables ***
22 ${BUNDLE_PREFIX}    distribution-karaf    # BUNDLEFOLDER may contain -SNAPSHOT part, which is not present in the archive name.
23 ${BUNDLE_SUFFIX}    .zip
24 ${DISTRIBUTION_SIZE_LIMIT}    469762048    # == 7 * 64 MiB, Nexus limit is 8 * 64 MiB.
25
26 *** Test Cases ***
27 Distribution_Size
28     [Documentation]    Run "ls" on ODL_SYSTEM, parse file size and compare to ${DISTRIBUTION_SIZE_LIMIT}.
29     SSHKeywords.Open_Connection_To_ODL_System
30     # TODO: 'du -b' is shorter, but gives less info. Is that better than ls?
31     ${ls_output} =    SSHKeywords.Execute_Command_Should_Pass    command=bash -c 'ls -lAn ${WORKSPACE}/${BUNDLE_PREFIX}*${BUNDLE_SUFFIX}'
32     ${size} =    SSHKeywords.Execute_Command_Should_Pass    command=echo '${ls_output}' | cut -d ' ' -f 5
33     # The following probably fails of there were multiple *.zip files listed.
34     BuiltIn.Should_Be_True    ${size} < ${DISTRIBUTION_SIZE_LIMIT}    Distribution size ${size} is not smaller than limit ${DISTRIBUTION_SIZE_LIMIT}.