Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I5f4464435f1346207f2f9b497369795eb82b58b6
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Change-Id: Ib0d9b533d72c899b77c9a7bd1daa9b4a55b7221c
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
* When the framework logs an unexpected sleep time,
display the units in the same format. Typically,
it has been returning a float and an 'e'.
ex. unexpected time.sleep() result - slept for 0.000107049942017s instead of ~4.88758087158e-05s!
* Defer logger interpolation.
Change-Id: I543ad6d41c7f263d61615341437f80973c0017de
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Add 2/3 support to binarytomac and mactobinary and move to vpp_mac.py
Change-Id: I3dc7e4a24486aee22140c781aae7e44e58935877
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
if a tunnel's destination address is reachable through the tunnel
(see example config belwo) then search for and detect a recursion
loop and don't stack the adjacency. Otherwise this results in a
nasty surprise.
DBGvpp# loop cre
DBGvpp# set int state loop0 up
DBGvpp# set int ip addr loop0 10.0.0.1/24
DBGvpp# create gre tunnel src 10.0.0.1 dst 1.1.1.1
DBGvpp# set int state gre0 up
DBGvpp# set int unnum gre0 use loop0
DBGvpp# ip route 1.1.1.1/32 via gre0
DBGvpp# sh ip fib 1.1.1.1
ipv4-VRF:0, fib_index:0, flow hash:[src dst sport dport proto ] locks:[src:plugin-hi:2, src:default-route:1, ]
1.1.1.1/32 fib:0 index:11 locks:4 <<< this is entry #11
src:CLI refs:1 entry-flags:attached, src-flags:added,contributing,active,
path-list:[14] locks:2 flags:shared,looped, uPRF-list:12 len:1 itfs:[2, ]
path:[14] pl-index:14 ip4 weight=1 pref=0 attached-nexthop: oper-flags:recursive-loop,resolved, cfg-flags:attached,
1.1.1.1 gre0 (p2p)
[@0]: ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11: <<<< and the midchain forwards via entry #11
[@2]: dpo-drop ip4
src:recursive-resolution refs:1 src-flags:added, cover:-1
forwarding: unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:12 to:[0:0]]
[0] [@6]: ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11:
[@2]: dpo-drop ip4
DBGvpp# sh adj 1
[@1] ipv4 via 0.0.0.0 gre0: mtu:9000 4500000000000000fe2fb0cc0a0000010101010100000800
stacked-on entry:11:
[@2]: dpo-drop ip4
flags:midchain-ip-stack midchain-looped <<<<< this is a loop
counts:[0:0]
locks:4
delegates:
children:
{path:14}
Change-Id: I39b82bd1ea439be4611c88b130d40289fa0c1b59
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Change-Id: If7835e9b80ec9402404bfc8d271eb11a10ef992b
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>
|
|
The test reader thread could get stuck in case an unexpected Exception
was raised during test runs in parent thread. Catch the Exception, close
the thread and raise the Exception to avoid this.
Change-Id: I3a9298d593c334d96d04b6207d604b684572a2ac
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
|
|
This patch is a followup to: https://gerrit.fd.io/r/#/c/16307/ which is
currently causing ubuntu1804 to complain.
See: https://logs.fd.io/production/vex-yul-rot-jenkins-1/vpp-beta-verify-master-ubuntu1804/3837/console-timestamp.log.gz
s/RuntimeError/ for details.
==============================================================================
L2BD arp termination Test Case
==============================================================================
12:02:21,850 Couldn't stat : /tmp/vpp-unittest-TestL2bdArpTerm-_h44qo/stats.sock
L2BD arp term - add 5 hosts, verify arp responses OK
L2BD arp term - delete 3 hosts, verify arp responses OK
L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses OK
L2BD arp term - 2 IP4 addrs per host OK
L2BD arp term - create and update 10 IP4-mac pairs OK
L2BD arp/ND term - hosts with both ip4/ip6 OK
L2BD ND term - Add and Del hosts, verify ND replies OK
L2BD ND term - Add and update IP+mac, verify ND replies OK
L2BD arp term - send garps, verify arp event reports OK
L2BD arp term - send duplicate garps, verify suppression OK
L2BD arp term - disable ip4 arp events,send garps, verify no events OK
L2BD ND term - send NS packets verify reports OK
L2BD ND term - send duplicate ns, verify suppression OK
L2BD ND term - disable ip4 arp events,send ns, verify no events OK
==============================================================================
TEST RESULTS:
Scheduled tests: 14
Executed tests: 14
Passed tests: 14
==============================================================================
Test run was successful
Change-Id: If66f22412f8aa36b183131cd22af4b3e7a20da46
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
15999 renamed VPP_TEST_FAILED_DIR, but not in all files. Fix this in the
one remaining file.
Change-Id: I159cdc86bfd5dd33af74256830873a8d081f1a73
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
|
|
There are a few tests that fail on ARM and thus we can't enable testing
in CI. Skip the failing tests until they're fixed so that we catch new
failures in CI (when we enable testing for the remaining tests).
Change-Id: Ie896ef5c449ef965029633e38d317a8d5ac26352
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
|
|
* Simplify conditional import. Remove global variable.
* Fix vpp_l2 import side effect.
Change-Id: I3945cf2a0cf8844004af2cd636f92d73ddc60f93
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: Id8669bbadd1d6b2054865a310a654e9b38d1667d
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
Change-Id: I7d2597f2a9589f2463e213da6ca67b1b7593095e
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
xrange is not supported. Use six.range.
py27 runtests: commands[5] | stestr --test-path ./test run --slowest test_ip4 test_ip6
==============================================================================
IPv4 disabled
==============================================================================
==============================================================================
ICMP Echo Test Case
==============================================================================
{0} test.test_ip4.TestIPDisabled.test_ip_disabled [5.256819s] ... ok
07:24:41,902 Couldn't stat : /tmp/vpp-unittest-TestICMPEcho-hU4IsB/stats.sock
{1} test.test_ip4.TestICMPEcho.test_icmp_echo [0.367035s] ... ok
==============================================================================
IPv4 Deaggregate Routes
==============================================================================
==============================================================================
IPv4 Input Exceptions
==============================================================================
07:24:47,314 Couldn't stat : /tmp/vpp-unittest-TestIPDeag-eE1VgC/stats.sock
{1} test.test_ip4.TestIPDeag.test_ip_deag [5.895646s] ... ok
{0} test.test_ip4.TestIPInput.test_ip_input [5.819001s] ... ok
==============================================================================
IPv4 longest Prefix Match
... output truncated ...
==============================
Failed 4 tests - output below:
==============================
test.test_ip4.TestIPv4FibCrud.test_3_add_new_routes
---------------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4.py", line 509, in test_3_add_new_routes
self.deleted_routes.remove(x)
ValueError: list.remove(x): x not in list
test.test_ip4.TestIPv4FibCrud.test_2_del_routes
-----------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4.py", line 478, in test_2_del_routes
self.configured_routes.remove(x)
ValueError: list.remove(x): x not in list
test.test_ip4_vrf_multi_instance.TestIp4VrfMultiInst.test_ip4_vrf_03
--------------------------------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 465, in test_ip4_vrf_03
self.create_vrf_and_assign_interfaces(1)
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 189, in create_vrf_and_assign_interfaces
pg_if.set_table_ip4(vrf_id)
File "/vpp/test/vpp_interface.py", line 322, in set_table_ip4
self.sw_if_index, 0, self.ip4_table_id)
File "/vpp/test/vpp_papi_provider.py", line 264, in sw_interface_set_table
'vrf_id': table_id})
File "/vpp/test/vpp_papi_provider.py", line 196, in api
raise UnexpectedApiReturnValueError(msg)
test.vpp_papi_provider.UnexpectedApiReturnValueError: API call failed, expected 0 return value instead of -114 in sw_interface_set_table_reply(_0=91, context=1007, retval=-114)
test.test_ip4_vrf_multi_instance.TestIp4VrfMultiInst.test_ip4_vrf_02
--------------------------------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 445, in test_ip4_vrf_02
self.reset_vrf_and_remove_from_vrf_list(1)
File "/vpp/test/test_ip4_vrf_multi_instance.py", line 208, in reset_vrf_and_remove_from_vrf_list
self.vapi.reset_fib(vrf_id, is_ipv6=0)
File "/vpp/test/vpp_papi_provider.py", line 1137, in reset_fib
'is_ipv6': is_ipv6,
File "/vpp/test/vpp_papi_provider.py", line 196, in api
raise UnexpectedApiReturnValueError(msg)
test.vpp_papi_provider.UnexpectedApiReturnValueError: API call failed, expected 0 return value instead of -3 in reset_fib_reply(_0=259, context=1198, retval=-3)
======
Totals
======
Ran: 57 tests in 266.0000 sec.
- Passed: 53
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 4
Sum of execute time for each test: 157.3925 sec.
==============
Worker Balance
==============
- Worker 0 (29 tests) => 0:03:52.608995
- Worker 1 (28 tests) => 0:04:08.615473
Test id Runtime (s)
--------------------------------------------- -----------
test.test_ip_mcast.TestIPMcast.test_ip6_mcast 8.535
test.test_ip4.TestIPPunt.test_ip_punt 8.082
test.test_ip6.TestIP6Punt.test_ip_punt 6.582
test.test_ip6.TestIPDeag.test_ip_deag 6.175
test.test_ip6.TestIPv6.test_ns 6.171
test.test_ip4.TestIPDeag.test_ip_deag 5.896
test.test_ip6.TestIPv6.test_fib 5.846
test.test_ip4.TestIPInput.test_ip_input 5.819
test.test_ip6.TestIPv6.test_rs 5.737
test.test_ip4.TestIPv4.test_fib 5.267
ERROR: InvocationError for command '/vpp/.tox/py27/bin/stestr --test-path ./test run --slowest test_ip4 test_ip6' (exited with code 1)
______________________________________________________ summary ______________________________________________________
ERROR: py27: commands failed
Change-Id: Id9f6ecb4897386f790d82ab908963e4971a3aac8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: I92f415bf253d6e051ec9d94ebeb98f081b2a0293
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Change-Id: Ia5d45db73e4bdb32214ed4f365d5eec8e28115f3
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Add memcmp_s, strcmp_s, strncmp_s, strcpy_s, strncpy_s, strcat_s, strncat_s,
strtok_s, strnlen_s, and strstr_s C11 safe string API. For migrating extant
unsafe API, add also the corresponding macro version of each safe API,
clib_memcmp, clib_strcmp, etc.
In general, the benefits of the safe string APIs are to provide null pointer
checks, add additional argument to specify the string length of the passed
string rather than relying on the null terminated character, and src/dest
overlap checking for the the string copy operations.
The macro version of the API takes the same number of arguments as the unsafe
API to provide easy migration. However, it does not usually provide the full
aformentioned benefits. In some cases, it is necessary to move to the safe
API rather than using the macro in order to avoid some unpredictable problems
such as accessing memory beyond what it is intended due to the lack of the
passed string length.
dbarach: add a "make test" vector, and a doxygen file header cookie.
Change-Id: I5cd79b8928dcf76a79bf3f0b8cbc1a8f24942f4c
Signed-off-by: Steven <sluong@cisco.com>
Signed-off-by: Dave Barach <dave@barachs.net>
|
|
==============================================================================
L2BD arp termination Test Case
==============================================================================
12:02:21,850 Couldn't stat : /tmp/vpp-unittest-TestL2bdArpTerm-_h44qo/stats.sock
L2BD arp term - add 5 hosts, verify arp responses OK
L2BD arp term - delete 3 hosts, verify arp responses OK
L2BD arp term - recreate BD1, readd 3 hosts, verify arp responses OK
L2BD arp term - 2 IP4 addrs per host OK
L2BD arp term - create and update 10 IP4-mac pairs OK
L2BD arp/ND term - hosts with both ip4/ip6 OK
L2BD ND term - Add and Del hosts, verify ND replies OK
L2BD ND term - Add and update IP+mac, verify ND replies OK
L2BD arp term - send garps, verify arp event reports OK
L2BD arp term - send duplicate garps, verify suppression OK
L2BD arp term - disable ip4 arp events,send garps, verify no events OK
L2BD ND term - send NS packets verify reports OK
L2BD ND term - send duplicate ns, verify suppression OK
L2BD ND term - disable ip4 arp events,send ns, verify no events OK
==============================================================================
TEST RESULTS:
Scheduled tests: 14
Executed tests: 14
Passed tests: 14
==============================================================================
Test run was successful
Change-Id: I6bb1ced11b88080ffaa845d22b0bc471c4f91683
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
This prints the format strings required to rerun the failed test next to
the failures.
Change-Id: I973d8ae025f026129826356bce265b1e70086d2f
Signed-off-by: Klement Sekera <ksekera@cisco.com>
|
|
Change-Id: Ib78c747fa3e304f7158f8182d060e11e4e778400
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Also split tests into smaller groups
Change-Id: I35809607b7a59029606bb34b90cfeffd1985fe60
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Instead of waiting for notification from binary api.
Change-Id: I5ecab857d6bcdbed62d6bb06709570c4cf6b19ea
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
self.assertTrue(packet.haslayer(msg_type))
File "/usr/lib/python2.7/unittest/case.py", line 422, in assertTrue
raise self.failureException(msg)
AssertionError: 0 is not true
* Scapy packet.haslayer() returns 1 or 0.
Replace with assertEqual(packet.haslayer(), 1) to fix tracebacks.
* Scapy has multiple layers called TCP/UDP
Specify the module name to prevent namespace collisions.
* Remove duplicate import.
Change-Id: I600f9f330075cd40e1da50f8b2ceb24f645f2c20
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: Icb1767b31421aa1e427498adc82d79307835ee1a
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Change-Id: Ia15b40f9d91daf3a325cb8d707b22a1dbc68d9cc
Signed-off-by: Klement Sekera <ksekera@cisco.com>
|
|
First argument of a classmethod should be named 'cls'.
Change-Id: Iff4b8d856e57c13a3404dbf6780c1d4add45b36a
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
First argument of a method should be named 'self'.
Change-Id: I7260916ce9d96108202b650dbf7ac8ce4b3aafdc
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: Id4a20066fc5be716c61a497dfcb4d00dc1dbb28d
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Change-Id: Ibea87f21b3403045cc0d865903b94396fe670e79
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
|
|
Change-Id: I6e0b7cf37c1a9ac66f8ac011db29504e57844ee9
Signed-off-by: Matus Fabian <matfabia@cisco.com>
|
|
Change-Id: Idebd110cbf5f0ddc5d9da5a1975b5d278825d131
Signed-off-by: Florin Coras <fcoras@cisco.com>
|
|
Change-Id: Ic6d011065bf062a84fdccdb1726ed3e5ed99cfbc
Signed-off-by: Neale Ranns <nranns@cisco.com>
|
|
Change-Id: I790f7785e183cc9aaffd5b593617c4e12a32e20d
Signed-off-by: Pavel Kotucek <pavel.kotucek@pantheon.tech>
|
|
instead of using build-root, use /test/venv directory for virtualenv
similarly, don't pollute build-root with test-built binaries
Change-Id: I1e63c04037eaee718b27b34ef16c9eb0252afa53
Signed-off-by: Klement Sekera <ksekera@cisco.com>
|
|
Previously all types are compound. This adds support for aliases,
so one can do things like:
typedef u32 interface_index;
or
typedef u8 ip4_address[4];
Change-Id: I0455cad0123fc88acb491d2a3ea2725426bdb246
Signed-off-by: Ole Troan <ot@cisco.com>
Signed-off-by: Klement Sekera <ksekera@cisco.com>
|
|
Change-Id: I192c33d36f43ae2df0dda509e118f2b920d561ac
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
This replaces dictionary.iteritems() on Python 2 and dictionary.items() on Python 3.
Change-Id: I58a3ded7d284c59e28d484b0c285aac435bfc229
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change to binascii.hexlify() for consistent bahavior.
Change-Id: Ie430cdd1ffeb6510db4aa037546e42d85992093b
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
This fixes the change from https://gerrit.fd.io/r/#/c/16175/
...
======
Totals
======
Ran: 856 tests in 2123.0000 sec.
- Passed: 667
- Skipped: 157
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 32
Sum of execute time for each test: 1641.0832 sec.
==============
Worker Balance
==============
- Worker 0 (416 tests) => 0:35:06.788054
- Worker 1 (440 tests) => 0:31:13.814911
Test id Runtime (s)
-------------------------------------------------------------------------------------- -----------
test.test_vcl.VCLCutThruTestCase.test_ldp_cut_thru_bi_dir_nsock 120.382
test.test_vcl.VCLThruHostStackGroupBTestCase.test_ldp_thru_host_stack_bi_dir_nsock 60.368
test.test_vcl.VCLIpv6ThruHostStackGroupBTestCase.test_ldp_thru_host_stack_bi_dir_nsock 60.356
test.test_igmp.TestIgmp.test_igmp_host 47.411
test.test_reassembly.TestFIFReassembly.test_fif6 38.561
test.test_reassembly.TestFIFReassembly.test_fif4 37.045
test.test_gbp.TestGBP.test_gbp 30.041
test.test_dhcp.TestDHCP.test_dhcp_proxy 29.339
test.test_vcl.VCLCutThruTestCase.test_ldp_cut_thru_iperf3 20.489
test.test_neighbor.ARPTestCase.test_arp 19.004
Change-Id: Ic1565f14962f157d5041230de3aeeab0b85f21e1
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Split one big suite into smaller suites when not running tests in
parallel. This results in all tests being executed in one iteration.
Change-Id: I0d3d357a95d9cc596b606d5911a5819e8ffdeee5
Signed-off-by: juraj.linkes <juraj.linkes@pantheon.tech>
|
|
Use assert(Not)Equal()
Use assert{Greater,Less}[Equal]
Change-Id: I7c14570b8dce463ee13a67e9c1f10beb1a0308a8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
This reverts commit 72f0004ac5f6e201cbe042593d76df6f2491d743.
Reason for revert: Traceback (most recent call last):
File "/home/ksekera/vpp/test/test_ipsec_ah.py", line 36, in
setUpClass
super(TemplateIpsecAh, cls).setUpClass()
File "/home/ksekera/vpp/test/template_ipsec.py", line 105, in
setUpClass
super(TemplateIpsec, cls).setUpClass()
File "/home/ksekera/vpp/test/framework.py", line 459, in setUpClass
cls.quit()
File "/home/ksekera/vpp/test/framework.py", line 475, in quit
six.input("When done debugging, press ENTER to kill the "
AttributeError: 'module' object has no attribute 'input'
Change-Id: Idf0bbfea231730b37bae5dcb4557a0f82ab1b810
Signed-off-by: Ole Troan <ot@cisco.com>
|
|
Remove methods that only call super.
py27 runtests: commands[5] | stestr --test-path ./test run --slowest test_fib
==============================================================================
FIB Test Case
==============================================================================
==============================================================================
IPv6 Test Case
==============================================================================
12:19:23,856 Couldn't stat : /tmp/vpp-unittest-TestFIB-BcLbkQ/stats.sock
{1} test.test_fib.TestFIB.test_fib [0.216340s] ... ok
==============================================================================
IPv4 Test Case
==============================================================================
{0} test.test_ip6.TestIPv6.test_fib [5.328127s] ... ok
12:19:33,921 Couldn't stat : /tmp/vpp-unittest-TestIPv4-AoGvoK/stats.sock
{1} test.test_ip4.TestIPv4.test_fib [5.071083s] ... ok
======
Totals
======
Ran: 3 tests in 34.0000 sec.
- Passed: 3
- Skipped: 0
- Expected Fail: 0
- Unexpected Success: 0
- Failed: 0
Sum of execute time for each test: 10.6155 sec.
==============
Worker Balance
==============
- Worker 0 (1 tests) => 0:00:05.328127
- Worker 1 (2 tests) => 0:00:10.251002
Test id Runtime (s)
------------------------------- -----------
test.test_ip6.TestIPv6.test_fib 5.328
test.test_ip4.TestIPv4.test_fib 5.071
test.test_fib.TestFIB.test_fib 0.216
______________________________________________________ summary ______________________________________________________
py27: commands succeeded
congratulations :)
vagrant@vpp:/vpp$
Change-Id: Ia07fe13affe2672ea2df774678312c6db8ea63fb
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Add the ability to specify a specific python library version
based on the interpreter/platform/etc.
Change-Id: I027acdf22ad839b5cff63b319f0aa100b0f336c8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Do not use locals() for string formatting.
Change-Id: I2e811f479198159b4005fa69c09ad903944d8ae3
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Change-Id: I39b5a8e368f0e0b5c83203141d01f22d909b6f9d
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Raw input does not exist in python3 use six.input.
Change-Id: Ie461696ff869057bcc3969a7571602dde570f5b8
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
Use six.reprlib. Uses repr for python 2 and reprlib for python 3.
Change-Id: Ia343a492d533bd511ed57166381e10a37e452d36
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
When a command fails, CalledProcessError is raised. testing with except: masks other failures.
Change-Id: I7e3a6739411cb6a4c13e96dd123aff9159213fea
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|
|
first argument of a classmethod should be named 'cls'
Change-Id: I1462be1edbfd42cbc6ad3f93d73f23b70d95e70c
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
|