On Sun, Jun 09, 2019 at 11:48:49PM +0530, Shekhar Sharma wrote:
> This patch adds the netns feature to the 'nft-test.py' file.
>
> Signed-off-by: Shekhar Sharma <[email protected]>
> ---
> The version history of the patch is :
> v1: add the netns feature
> v2: use format() method to simplify print statements.
> v3: updated the shebang
> v4: resent the same with small changes
>
> tests/py/nft-test.py | 98 ++++++++++++++++++++++++++++++++++++--------
> 1 file changed, 80 insertions(+), 18 deletions(-)
>
> diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py
> index 4e18ae54..c9f65dc5 100755
> --- a/tests/py/nft-test.py
> +++ b/tests/py/nft-test.py
[..]
> @@ -245,6 +251,8 @@ def table_delete(table, filename=None, lineno=None):
> return -1
>
> cmd = "delete table %s" % table
> + if netns:
> + cmd = "ip netns exec ___nftables-container-test {}".format(cmd)
Can we pass the netns name via the netns argument? Then we don't have to
have instances of ___nftables-container-test in the command literals.
Just make netns part of your string format. You can also change the
default arg value to "".
Please fix all occurrences.
> ret = execute_cmd(cmd, filename, lineno)
> if ret != 0:
> reason = "%s: I cannot delete table %s. Giving up!" % (cmd, table)
[..]
> @@ -1208,6 +1262,9 @@ def run_test_file(filename, force_all_family_option,
> specific_file):
> filename_path = os.path.join(TESTS_PATH, filename)
> f = open(filename_path)
> tests = passed = total_unit_run = total_warning = total_error = 0
> + if netns:
> + execute_cmd("ip netns add ___nftables-container-test", filename, 0)
> +
netns is not defined here.
>
> for lineno, line in enumerate(f):
> sys.stdout.flush()
> @@ -1327,6 +1384,8 @@ def run_test_file(filename, force_all_family_option,
> specific_file):
> else:
> if tests == passed and tests > 0:
> print(filename + ": " + Colors.GREEN + "OK" + Colors.ENDC)
> + if netns:
> + execute_cmd("ip netns del ___nftables-container-test", filename,
> 0)
netns is not defined here.